如何在Cloudera 4上编译WordCount.java?

Cha*_*ion 4 java hadoop javac word-count cloudera

我正在尝试在Cloudera 4的Linux(CentOS)安装上编译一个简单的WordCount.java map-reduce示例.当我引用任何hadoop类时,我一直在遇到编译器错误,但我无法弄清楚哪个罐子是/ usr/lib/hadoop下的数百个我需要添加到我的类路径来编译.任何帮助将不胜感激!我最喜欢的是一个用于字数统计的java文件(以防万一我找到的那个由于某种原因是坏的)以及编译和运行它的相关命令.

我试图使用javac而不是Eclipse来做到这一点.我的主要问题是Cloudera 4安装的Hadoop库究竟是什么,我需要包含这些库以便编译经典的WordCount示例.基本上,我需要将Java MapReduce API类(Mapper,Reducer等)放在我的类路径中.

Ben*_*ich 5

我有一个构建我的hadoop类的脚本.尝试:

#!/bin/bash

program=`echo $1 | awk -F "." '{print $1}'`

if [ ! -d "${program}_classes" ]
    then    mkdir ${program}_classes/;
fi

javac -classpath /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar:/usr/lib/hadoop/client/h\
adoop-mapreduce-client-core-2.0.0-cdh4.0.1.jar -d ${program}_classes/ $1

jar -cvf ${program}.jar -C ${program}_classes/ .;
Run Code Online (Sandbox Code Playgroud)

你可能错过了关键的罐子:

 /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar
Run Code Online (Sandbox Code Playgroud)

/usr/lib/hadoop/client/hadoop-mapreduce-client-core-2.0.0-cdh4.0.1.jar
Run Code Online (Sandbox Code Playgroud)