Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

前提条件:搭建好Hadoop系统


新建文件夹:input  和  output

hdfs dfs -mkdir /input
hdfs dfs -mkdir /output

查看文件系统

hdfs dfs -ls /

Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

配置hadoop的架包路径,修改~/.bashrc

vim ~/.bashrc

添加(路径以自己的系统中的安装路径为准)

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.5
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

 然后source一下使其生效

source ~/.bashrc
或者
.  ~/.bashrc

 接下来需要编译代码,以及打包

找到已经写好的MapReduce代码(conf是我的配置文件,工程需要)

Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

 开始编译

javac LocationOfCars.java

 Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

打包

jar -cvf LocationOfCars.jar ./LocationOfCars*.class

 Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

可以将包拷贝到自己的专有文件夹下,比如我的 jar 文件夹

Centos下命令行编译MapReduce代码(Java)并打包在Hadoop中执行

 在此路径下来执行代码(我的代码需要一个输入路径,三个输出路径(三个MR)

hadoop jar LocationOfCars.jar LocationOfCars /input /output/out1 output/out2 output/out3

这样就可以执行了


 

本节完......