在eclipse上开发hadoop2.5.2程序的快捷方法

Posted wj_hubei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在eclipse上开发hadoop2.5.2程序的快捷方法相关的知识,希望对你有一定的参考价值。

  本文仍然使用MapReduce的经典例子 WordCount来测试eclipse的开发环境。

  与大部分教程不同的是,本文使用的hadoop是2.5.2的版本,相较于之前的0.X版本,hadoop 2.X有较大改动

  在jar包方面,Hadoop 2.x 版本中 jar 不再集中在一个 hadoop-core*.jar 中,而是分成多个 jar,如使用 Hadoop 2.5.2 运行 WordCount 实例至少需要如下三个 jar:

  • $HADOOP_HOME/share/hadoop/common/hadoop-common-2.5.2.jar
  • $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.5.2.jar
  • $HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar

  实际上,通过命令 hadoop classpath 我们可以得到运行 Hadoop 程序所需的全部 classpath 信息。如下图所示:

 

  弄清楚jar包的添加后下面开始编译hadoop程序

  编译MapReduce程序常见的有两种方法:

  1、使用命令行编译、打包MapReduce程序

  2、安装eclipse插件编译MapReduce程序

  

下面介绍一种比较快捷的编译方法

  在eclipse中新建Java程序之后,导入相应的jar包,这样在编写MapReduce程序时,就可以直接import jar包。这种方法相较于前面两张方法要快捷。需要导入哪些jar包需根据程序用到的Java类来确定,要注意的是包的路径,因为与0.X有所不同,可以按照上述方法先查看jar包的路径。jar包的导入如下:

  右键所创建的Java工程--->Properties,然后选择Java Build Path,再选择Libraries项,点击 Add External JARs 添加所需的jar包

 

打包JAR文件

  编辑好Java程序之后,将MapReduce工程打包成JAR文件,然后发送到hadoop的Master节点上即可运行MapReduce程序。步骤如下:

  右键Java工程--->Export--->JAR file。

  选择JAR file之后,点击 Next按钮,进入JAR文件过滤对话框

   注意:只选择src文件夹就可以,不能把classpath和project文件添加到JAR文件中。

 然后在Select the export destination 下的JAR file中选择JAR文件的存放目录与JAR的文件名。

 

部署运行

1、将生成的JAR包发送到Hadoop集群的Master节点的$HADOOP_HOME目录下面

2、运行MapReduce程序,使用的命令行为:

  hadoop jar  jar_name.jar package_name.classname  /inputfile_dir  /outputfile_dir

  注意:在运行MapReduce程序之前应确保inputfile_dir存在,outputfile_dir不存在。

 

在将JAR文件发送到Hadoop集群是的Master节点时,可使用 SSH Secure File Transfer Client 将windows下的JAR文件发送的linux下的Master节点上

 

使用下面命令查看生成的结果文件

hadoop fs -text /outputfile_dir/part-r-00000

 

参考:

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0  

使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS    

 

以上是关于在eclipse上开发hadoop2.5.2程序的快捷方法的主要内容,如果未能解决你的问题,请参考以下文章

hadoop学习笔记——WIN7+eclipse+hadoop2.5.2部署

配置oozie4.10+hadoop2.5.2

hadoop2.5.2学习13-MR之新浪微博-DF的实现

Hadoop2.5.2集群部署(完全分布式)

设置hdfs和hbase副本数。hadoop2.5.2 hbase0.98.6

第一次部署Hadoop2.5.2集群,部署完后一切正常,但是当关闭后集群用start-dfs.sh重启h后namenode会都死掉