Hadoop下怎么使用C程序啊?或者说,怎么使用C调用Hadoop的接口来编写程序呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop下怎么使用C程序啊?或者说,怎么使用C调用Hadoop的接口来编写程序呢?相关的知识,希望对你有一定的参考价值。

hadoop有个C++的接口,没有c的。需要自己编译链接库文件。你可以在网上找找,有个wordcount的例子。但是具体讲哪些类的好像没见过。

c语言或者其他语言的程序可以使用streaming方式来运行。
streaming的执行方法如下:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar [options]
Options:
-input <path> 任务的输入路径
-output <path> 任务的输出路径,需要是一个还不存在的目录。否则任务不能执行。
-mapper <cmd|JavaClassName> mapper的程序(可以是java的类,也可以是编译好的其他语言的程序)
-combiner <JavaClassName> Combiner的程序
-reducer <cmd|JavaClassName> reducer的程序
-file <file> 程序运行所需要的文件或目录,会在执行任务前拷贝到所有节点机器上
-inputformat TextInputFormat(default)|SequenceFileAsTextInputFormat|JavaClassName Optional.输入文件的格式一般保持默认(默认可以不写这个参数)即可。
-outputformat TextOutputFormat(default)|JavaClassName Optional.输出文件的格式
-partitioner JavaClassName 这个是决定根据key值制定处理数据用哪个reducer的那个类。
-numReduceTasks <num> reducer的数目(这只是任务分配的数目,具体能否并行执行还看hadoop配置的最大并发reducer数目)
-inputreader <spec> 这个参数没用过。。。。。
-cmdenv <n>=<v> 运行程序需要的一些环境变量
-mapdebug <path> 远程调试用,不明白是怎么用的。。。
-reducedebug <path> 远程调试用
实际使用中至少需要指定输入、输出目录和mapper程序
例子:$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar -input test -output out -mapper cat

注意:hadoop-streaming.jar默认并不在$HADOOP_HOME中,你可以在$HADOOP_HOME/contrib/streaming/中找到这个jar包,或者直接使用$HADOOP_HOME/contrib/streaming/hadoop-0.20.2-streaming.jar
参考技术A 我擅长java的,c++的抱歉啦~~

用eclipse编写Java源程序时,出现一个黄色的灯泡和感叹号是怎么回事啊?请前辈们指导下,谢谢了!

这是警告的意思。一般只要你用集合没有用泛型就会出来。或者有些过时的方法也会这样的情况发生。 参考技术A 有警告,不去理他也是能运行的,但是如果做大项目这些也是要处理的!

以上是关于Hadoop下怎么使用C程序啊?或者说,怎么使用C调用Hadoop的接口来编写程序呢?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse提示找不到头文件,是怎么回事啊

怎么使用API函数啊,要怎么去查,去学习?

linux下c编程怎么编译

到底怎么在Linux里编写c程序啊?

C语言的运行文件完了,怎么会自动关闭窗口啊?

用eclipse编写Java源程序时,出现一个黄色的灯泡和感叹号是怎么回事啊?请前辈们指导下,谢谢了!