TypechoJoeTheme

IT技术分享

统计

使用MyEclipse 2015 Stable 2.0 编译运行MapReduce程序

2015-12-05
/
0 评论
/
648 阅读
/
正在检测是否收录...
12/05

在Ubuntu中使用命令行,运行Hadoop的MapReduce程序非常方便,下面我们介绍如何使用MyEclipse/Eclipse编译运行MapReduce程序。

一、下载插件

首先去GitHub上下载MyEclipse插件包 hadoop2x-eclipse-plugin

也可下载我自己编译的2.7.1版本。编译方法参见手动编译Hadoop-2.X.X-Eclipse-Plugin源代码,生成Jar文件

百度网盘地址:

二、安装MyEclipse

请参见 MyEclipse 2015下载安装与配置——Windows J2EE开发序列之二

Linux下的安装方式类似。

三、Ubuntu下安装Hadoop-Plugin

将hadoop-eclipse-plugin-2.7.1.jar复制到 MyEclipse 安装目录的 plugins 文件夹中,重启MyEclipse。

然后依次点击Windows-->Preference

myeclipse-run-mapreduce-1

然后点击左侧的Hadoop Map/Reduce,出现如下错误:

Unable to create the selected preference page. org/apache/hadoop/eclipse/preferences/MapReducePreferencePage : Unsupported major.minor version 52.0

myeclipse-run-mapreduce-2

表示JDK版本不正确,我编译该插件用的JDK8u_66,所以需要将MyEclipse的JDK版本修改为JDK8

需要修改以下三个地方:

1、Windows-->Preferences-->Java-->Installed JREs,如果没有对应版本,请选择右侧Add进行添加。

myeclipse-run-mapreduce-3

2、Windows-->Ant-->Editor-->Runtime-->Global Entries,将下面的jar包移除,然后添加对应版本的tool.jar

myeclipse-run-mapreduce-4

3、打开MyEclipse/Eclipse安装目录,编辑myeclipse.ini/eclipse.ini,将-vm下的路径换成对应的java路径

myeclipse-run-mapreduce-5

至此,问题解决了,现在重新打开Hadoop Map/Reduce,可以选择Hadoop的安装路径了

myeclipse-run-mapreduce-6

四、配置 Hadoop-Plugin

将视图切换到Map/Reduce下(记得不是Java下哟)。在 Window 菜单下选择 Open Perspective -> Other,弹出一个窗体,从中选择 Map/Reduce 选项即可进行切换。

myeclipse-run-mapreduce-7

在控制台New一个新的Location

myeclipse-run-mapreduce-8

在弹出来的 General 选项面板中进行 Master 的设置,设置要和 Hadoop 的配置一致。(如我使用的Hadoop伪分布式配置,设置了 fs.defaultFS 为 hdfs://192.168.1.101:9090,则 DFS Master 那的 Post 也应改为 9090),其中Location name随便填,如果是远程的Hadoop,请将Use M/R Master host前面的勾去掉,在下面的Host处填写远程的IP

myeclipse-run-mapreduce-9

然后切换到高级选项。这里切记需要与 Hadoop 的配置一致(即自己手动修改过的xml配置文件中的内容,都要相应的在这里设置一下),最后点击finish完成即可。

五、Windows下安装Hadoop-Plugin

基本和Ubuntu的安装方法一样。

首先将hadoop-eclipse-plugin-2.6.0.jar复制到 MyEclipse 安装目录的 plugins 文件夹中,重启MyEclipse。

然后依次点击Windows-->Preference

myeclipse-run-mapreduce-10

将Ubuntu中Hadoop-2.7.1的安装目录拷一份到Windows下,下面的地址就填写这个地址。

myeclipse-run-mapreduce-11

之后和Ubuntu中的操作一样。操作完成,如果配置都正确的话,可以看到DFS location下已经有相应文件了,代表已经和远程连接成功。

myeclipse-run-mapreduce-16

六、创建一个Map/Reduce工程

依次点击File-->New-->Project

myeclipse-run-mapreduce-12

选择Map/Reduce Project

myeclipse-run-mapreduce-13

输入工程名即可

myeclipse-run-mapreduce-14

可以看到项目一件导入了很多包

myeclipse-run-mapreduce-15

下面在src下建立JAVA文件,然后编写MapReduce程序即可。

七、问题解决

在Windows版本的MyEclipse/Eclipse开发中,\hadoop-2.7.1\bin目录下需要几个Windows平台对应的文件,这些文件在GitHub上有提供,不过可能没有对应最新2.7.1的版本。如果缺少这些文件,可能出现native等问题:

1、HADOOP_HOME不存在

java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:303)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:328)
at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows(GenericOptionsParser.java:440)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:486)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:170)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
at so.dun.mutitable.MutiTable.main(MutiTable.java:129)
解决办法:配置环境变量
HADOOP_HOME="C:\Users\bean\Workspaces\MyEclipse\hadoop-2.7.1"

并将%HADOOP_HOME%/bin;加入到Path中,具体可参见Java Platform JDK 的安装与配置中的环境配置方法。

需要重启MyEclipse/Eclipse才能生效。

2、winutils.exe不存在

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:356)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:371)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:364)
at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows(GenericOptionsParser.java:440)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:486)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:170)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
at so.dun.mutitable.MutiTable.main(MutiTable.java:129)

这时需要将原来在Ubuntu编译过的源码包中hadoop-2.7.1-src\hadoop-common-project\hadoop- common\src\main\native\native.sln文件在Windows下用Visual Studio 2015(2010以上版本)编译,得到相应的本地文件。如果不想自己编译,或者没有相应平台,可以下载我编译好的文件。

Hadoop-common-2.7.1-bin 64位下载:

hadoop-common-2.7.1-bin.zip 提取码:pafa
解压后,将hadoop.dll文件放到Windows/System32目录下,其他文件复制到\hadoop-2.7.1\bin下(是Windows中的目录),然后重启MyEclipse/Eclipse。

3、NativeIO$Windows.createDirectoryWithMode0

org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V

这个问题是由于hadoop-common-2.7-bin下的文件和hadoop版本不兼容导致的,请下载相应的版本,或者自己动手编译。如果用的是hadoop-2.7.1 x64位,可以下载我上面提供的自己编译的软件包。

朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/1120/(转载时请注明本文出处及文章链接)