我对hadoop域以及C / C++编程还很陌生。我主要来自Java域。有几个C++程序实现了贪心算法,最近邻居算法等算法。尽管我不希望将整个C++程序转换为mapreduce,但我正在使用hadoop并行化算法部分。是否可以从C++程序环境中调用mapreduce程序(将实现某些算法)?
谢谢,
Aarthi
最佳答案
是的,这很有可能。
您需要编写两个类; MapTask
实现一个映射函数来处理key
/ value
对,生成一组中间key
/ value
对和ReduceTask
,它们实现了reduce函数以合并与同一中间键关联的所有中间值。
class map_task
{
public:
typedef std::string key_type;
typedef std::ifstream value_type;
typedef std::string intermediate_key_type;
typedef unsigned intermediate_value_type;
map_task(job::map_task_runner &runner);
void operator()(key_type const &key, value_type const &value);
};
class reduce_task
{
public:
typedef std::string key_type;
typedef size_t value_type;
reduce_task(job::reduce_task_runner &runner);
template<typename It>
void operator()(typename map_task::intermediate_key_type const &key, It it, It ite)
};
关于java - C/C++程序可以调用mapreduce程序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27925638/