Hadoop集群链接_Eclipse开发环境:成功运行mapreduce所遇问题

来源:互联网 发布:nga数据库6.0 编辑:程序博客网 时间:2024/05/16 08:36

这个哥们讲解的如何连接集群步骤非常详细!:http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.html


但是在搭建时,我的不可能和作者一样顺利遇到了各种奇葩问题,最重要是每个人的都不一样,先把我自己遇到的贴出来吧

  一般情况下链接上集群很容易,可以看到并创建浏览hdfs上的文件,但是你想成功运行mapreduce很麻烦,我反正遇到了下面的一些问题


总结:1、“C:\Windows\System32\drivers\etc\hosts”中自定义的主机名及子节点名字:

            2、 下载winutil.exe和hadoop.dll,放到本地$HADOOP_HOME/bin目录下面,配置环境变量,设置PATH后加%HADOOP_HOME%\bin;

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

                     C:\Windows\System32下缺少hadoop.dll,把这个文件拷贝到C:\Windows\System32下面即可。

           4、记得运行mapreduce时 记得配置下面的环境变量,虽然我自己本机的环境变量早就配置好了,但是感觉没有用,花了很长时间最后修改了这里的环境

                 变量后就能运行了;我的64位的系统就配置好了,但是我家里的32位的系统就是这样搞得,怎么也不行,可以连接上,但是mapreduce就是运行不了

              

           4、


        1. 首先把hadoop-eclipse-plugin-2.5.1.jar(具体版本视你的hadoop版本而定)放到eclipse安装目录的plugins文件夹中,如果重新打开eclipse后看到有如下视图,则说明你的hadoop插件已经安装成功了:

下载地址:http://dldx.csdn.net/fd.php?i=630479209731312&s=90f7a89c9bbe37a28cb423d440f99fea&bcsi_scan_f1bc5ce382b7f0db=0&bcsi_scan_filename=fd.php
    

其中的“hadoop installation directory”配置项用于指向你的hadoop安装目录,在windows下你只需要把下载到的hadoop-2.5.1.tar.gz包解压到某个位置,然后指向这个位置即可。      

 

 2.配置相关参数,点击 Windows-->Show View-->Other --> Map/Reduce Location,打开Hadoop的MapReduce View

  

点击Ok之后,出现如下

   3:上一步你不应该看到hadoopLoc,应该什么都没有,右键点击空白处-->NewHadoop Location,你会看到一个填写MapReduceLocation参数的一个界面:

其中:

Location Name

这个不用在意,就是对这个MapReduce的标示,只要能帮你记忆即可

Map/ReduceMaster部分相关定义:

Host:上一节搭建的集群中JobTracker所在的机器的IP地址

port:JobTracker的端口

两个参数就是 mapred-site.xml中mapred.job.tracker的ip和端口

注:之前可能在配置mpared-site.xml时没有配置mapred.job.tracker的端口。可以自己配置,如图:

 

DFS Master部分:

Host:就是上一节集群搭建中Namenode所在机器IP

Port:就是namenode的端口

这两个参数是在 core-site.xml里fs.default.name里面的ip和端口

 

4: “C:\Windows\System32\drivers\etc\hosts”中自定义的主机名及子节点名字:    

192.168.244.133hadoop.nameNode1

192.168.244.134hadoop.dataNode1

192.168.244.135hadoop.dataNode3

 

5填写完以上信息以后,关闭Eclipse,然后重新启动。

这时如果在eclipse中能看到如下“DFSLocations”,就说明eclipse已经成功连上远程的hadoop了(注意,别忘了把你的视图切换到Map/Reduce视图,而不是默认的Java视图):
  

 

运行时的异常处理

1  java.lang.NullPointerException

   下载winutil.exe和hadoop.dll,放到本地$HADOOP_HOME/bin目录下面,配置环境变量,设置PATH后加%HADOOP_HOME%\bin;

 

2  java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

    C:\Windows\System32下缺少hadoop.dll,把这个文件拷贝到C:\Windows\System32下面即可。

  运行如果还报同样错的话:

我们在继续分析:

   我们在出现错误的的atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)我们来看这个类NativeIO的557行,如图所示:

      

 

   Windows的唯一方法用于检查当前进程的请求,在给定的路径的访问权限,所以我们先给以能进行访问,我们自己先修改源代码,returntrue 时允许访问。我们下载对应hadoop源代码,hadoop-2.5.1-src.tar.gz解压,hadoop-2.5.1-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project,然后修改return true如图所示:

    

 

如果觉得下载jar包麻烦,可以直接将NativeIO类粘贴到工程下,并修改对应行代码就行。(注意修改包名)


0 1
原创粉丝点击