java - 在 hadoop 集群上运行 mapreduce java 程序

标签 java hadoop mapreduce cluster-computing

我正在学习在 hadoop 集群上工作。我在 hadoop 流媒体上工作了一段时间,我在 perl/python 中编写了 map-reduce 脚本并运行了这项工作。 但是,我没有找到运行 java map reduce 作业的任何好的解释。 例如: 我有以下程序-

http://www.infosci.cornell.edu/hadoop/wordcount.html

有人能告诉我如何实际编译这个程序并运行这个作业吗?

最佳答案

创建一个目录来保存编译后的类:

mkdir WordCount_classes

编译你的类:

javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar -d WordCount_classes WordCount.java

从编译后的类创建一个 jar 文件:

jar -cvf $HOME/code/hadoop/WordCount.jar -C WordCount_classes/ .

为您的输入创建一个目录并将所有输入文件复制到其中,然后按如下方式运行您的作业:

bin/hadoop jar $HOME/code/WordCount.jar WordCount ${INPUTDIR} ${OUTPUTDIR}

作业的输出将放在 ${OUTPUTDIR} 目录中。此目录由 Hadoop 作业创建,因此在运行作业之前确保它不存在。

参见 here一个完整的例子。

关于java - 在 hadoop 集群上运行 mapreduce java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493802/

相关文章:

java - AES - 在 Java 中用密文存储 IV

hadoop - map task 的输入拆分正在运行其他 map task

java - 由于 ClosedChannelException (DFSOutputStream.checkClosed) 而导致的 Spark 作业失败

hadoop - reducer 的默认数量

r - 使用 R 的非常慢/卡住的 hadoop 流式传输

java - 是否有逐步执行流程的任何模式/方式?

java - 将点转换为按钮

hadoop - MapReduce2 中如何基于 vcores 和内存创建容器?

java - 使用 ArrayList 进行 Heapify

hadoop - 在 Amazon EMR 上使用 Hadoop 流处理整个文件