windows中Eclipse构建普通的MapReduce项目-详细步骤及常见问题-很好

http://www.chinacloud.cn/show.aspx?id=24658&cid=12

注意: 里面有些图片不能正常显示,基本不影响使用;

另外:这个文件也很好,供参考: https://blog.csdn.net/u011026329/article/details/52900638

 

Eclipse构建普通的MapReduce项目-详细步骤及常见问题

[日期:2016-12-30]

来源:大讲台  作者:

[字体: 中小]

  前面的任务中我们已经搭建了一个伪分布模式的Hadoop运行环境。小讲知道,我们绝大多数同学都习惯在Eclipse中做Java开发,这个课程就是教大家如果搭建一个基于Eclipse IDEHadoop开发环境。

  闲话少说,走起!

1.1JDK安装配置

  如果jdk已经安装成功,这里可以直接跳过jdk安装。

  安装jdk的位数需要与Windows系统位数一致,课程中我们使用的是64Windows系统,所以我们需要下载安装64位的jdk。如果大家使用32Windows系统,那么就需要下载安装32位的jdk

jdk下载、安装这里就不在多讲,大家自己完成。下面我们来配置jdk环境变量。

 

 

 

  如果出现以下结果,说明jdk配置成功。

 

1.2 安装Eclipse

  下载安装Eclipse 开发软件,这里就不再啰嗦,相信大家都能搞的定!

1.3 eclipse上安装hadoop插件

  课程中我们是以Hadoop2.2.0版本的插件为例,对于初学者建议大家按照课程操作。我们也提供了Hadoop2.6.0版本的插件,大家有兴趣也可以安装这个版本试一试。

1.3.1 下载hadoop插件

Hadoop2.2.0版本的插件下载地址为:hadoop-eclipse-plugin-2.2.0.jar

Hadoop2.6.0版本的插件下载地址为:hadoop-eclipse-plugin-2.6.0.jar

1.3.2 把插件放到eclipse/plugins目录下

 

3、重启eclipse

4、配置Hadoopinstallation directory

  如果插件安装成功,打开Windows—Preferences后,在窗口左侧会有Hadoop Map/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。

 

Hadoop不同版本在Windows下运行补丁:

Hadoop2.2.0版本:如果Windows下安装的是32jdk,需下载hadoop2.232位版Windows运行包

Hadoop2.2.0版本:如果Windows下安装的是64jdk,需下载:hadoop2.264位版Windows运行包

Hadoop2.6.0版本:如果Windows下安装的是64jdk,需下载:hadoop2.6.064位版Windows运行包

  解压下载的补丁,将里面hadoop.dllwinutils.exe两个文件放到Hadoop 安装bin目录下,比如:D:\hadoop-2.2.0\bin,安装包的名称不一定要跟课程一样。(Hadoop安装包需要提前下载到Windows系统下)

  与此同时,还需要将hadoop.dllwinutils.exe这两个文件放入到C:\Windows\System32目录下。

5、配置Map/ReduceLocations

  打开Windows—showview—Other

 

  选择Map/Reduce,点击OK

  在右下方看到如下图所示

 

  点击Map/ReduceLocation选项卡,点击右边小象图标,打开Hadoop Location配置窗口:

  输入LocationName,任意名称即可.配置Map/Reduce MasterDFS MastrerHostPort配置成与core-site.xml的设置一致即可。

 

  在上面hostname配置的时候,需要添加一条hostname 的解析。Windows下,以管理员的身份打开C:\Windows\System32\drivers\etc\hosts文件。

 

 

  点击"Finish"按钮,关闭窗口。

  点击左侧的DFSLocations—>djt002(上一步配置的location name),如果连接成功,在project explorerDFS Locations下会展现hdfs集群中的文件。

 

1.4Hadoop环境配置

  在Windows下,配置hadoop环境变量。

 

 

 

1.5 构建Map/Reduce项目

  我们通过以下几个步骤可以轻松开发MapReduce程序。

1、首先打开eclipse,我们选择File---New---Other,点击后出现如下界面。

 

2、选中Map/Reduce Project,点击下一步出现如下界面。

 

3、在Project name 后面输入项目名称比如hadoop,点击 Finish 完成 Map/Reduce 项目的创建。

 

  对于初学者如果不知道导入哪些Hadoop jar包,可以把Hadoop 安装目录下的所有jar都导入项目中。

4、在 src 目录下创建一个包名比如com.hadoop.test,然后编写一个MapReduce示例程序WordCount也可直接点击下载。

 

  这里我们需要下载log4j.properties文件放到src目录下,这样程序运行时可以打印日志,便于调试程序。

5、将自己创建的djt.txt文件上传至HDFS文件系统的/dajiangtai目录下。

  将djt.txt文件上传至HDFS有两种方式:

  第一种:在Hadoop集群下创建一个djt.txt文件,然后通过命令行将djt.txt文件上传至HDFS/dajiangtai目录下。

 

  第二种:在Windows下创建djt.txt文件,通过Eclipse连接HDFS,然后鼠标放到dajiangtai目录上右键点击,选择Upload files to HDFS,选中本地的djt.txt文件上传至/dajiangtai目录下。

 

 

6、右键点击Eclipse中的Wordcount程序,选择Run as,接着选择RunConfigurations

 

 

 

7、查看Wordcount运行结果。

 

  如果上面的Wordcount程序能正常运行,那么我们后面开发运行MapReduce程序就轻松多了。当然大家的Eclipse不使用hadoop插件也可以,MapReduce程序可以读取本地文件直接运行。Hadoop插件只不过是方便我们查看在hdfs上面的运行结果。

  常见错误及解决办法

1.错误:java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

  错误原因:未正确配置环境变量

  解决办法:配置环境变量HADOOP_HOMED:\hadoop-2.2.0,另在Path变量后添加;%HADOOP_HOME%\bin

2.错误:Couldnot locate executable D:\hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries.

  错误原因:本地Hadoop运行目录的bin目录下中没有winutils.exe或者32/64位版本不匹配

  解决办法:下载相应的winutils.exehadoop.dll放到Hadoop运行目录的bin文件夹下,注意选择正确的32/64位版本

3.错误:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

  错误原因:本地Hadoop运行目录的bin目录下中没有hadoop.dll或者32/64位版本不匹配

  解决办法:下载相应的hadoop.dll放到Hadoop运行目录的bin文件夹下,注意选择正确的32/64位版本

4.错误:DEBUGorg.apache.hadoop.util.NativeCodeLoader - Failed to load native-hadoop witherror: java.lang.UnsatisfiedLinkError: HADOOP_HOME\bin\hadoop.dll: Can't loadAMD 64-bit .dll on a IA 32-bit platform

  错误原因:本地Hadoop运行目录的bin目录下中没有hadoop.dll版本不匹配,有32位和64位版

  解决办法:下载正确的32/64位版本的hadoop.dll放到Hadoop运行目录的bin文件夹下

5.错误:org.apache.hadoop.security.AccessControlException:org.apache.hadoop.security .AccessControlException: Permission denied:user=Administrator, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x

  解决办法:其实这个错误的原因很容易看出来,用户在hadoop上执行写操作时被权限系统拒绝。有以下几种解决办法,可以分别试一试。

1)在系统的环境变量里面,添加一个的用户变量:HADOOP_USER_NAME,它的值为HADOOP环境下的用户名,比如hadoop(修改完重启eclipse,不然可能不生效)

2)将当前Windows系统的登录帐号修改为hadoop环境下的用户名,比如hadoop

3)使用HDFS的命令行接口修改相应目录的权限: 比如要上传的文件路径为hdfs://djt002:9000/user/xxx.txt,则使用hadoop fs -chmod 777 /user 修改权限。如果要上传的文件路径为hdfs://djt002:9000/java/xxx.txt,则要使用hadoop fs -chmod 777 /java或者hadoopfs -chmod 777 / 修改权限,此时需要先在HDFS里面建立Java目录。

4)关闭hadoop环境下的防火墙。

6.错误:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V

  解决办法:下载正确的32/64位版本的hadoop.dllwinutils.exe拷贝到C:\Windows\System32目录下即可。

1.7 如果还有问题怎么办?

  我们可以通过以下步骤来排查:

1)首先确保Windows下,系统位数、jdk位数、hadoop安装包位数保持一致,否则肯定会报错。比如,64位的Windows系统,需要安装64位的jdk以及下载64位的hadoop安装包(课程中有下载)

  如果不知道hadoop位数是否正确,可以双击下面的文件。

 

  如果不出错,说明文件没有问题。如果hadoopbin目录下没有hadoop.dllwinutils.exe这两个文件,在课程中下载。

2)确保jdk以及hadoop的环境变量配置正确(前面已经讲解)

3)确保Linux下的防火墙已经关闭。

 

4)如果出现Eclipse访问不了hdfs,可以按照上面第5个问题的解决办法。

5)检查C:\Windows\System32目录下是否存在hadoop.dllwinutils.exe文件。

6)如果以上方法还是有错误,可能是系统或者Eclipse版本的原因造成的,最糟糕的情况可能需要换一个干净的Windows系统了。

  好了,是不是已经搞定了,那就让我们一起Hadoop!

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值