您的位置:首页 > 编程语言 > Java开发

win7 Eclipse连接Hadoop

2014-07-02 17:16 260 查看
conf.set("fs.defaultFS","hdfs://192.168.1.201:9000");
conf.set("mapred.job.tracker","192.168.1.201:9001");
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.address", "192.168.1.201:8032");
上面为Hadoop2配置:hadoop2却是没有了jt,新增了yarn。这个要如何使用呢?最简单的想法,同样指定其配置,试试。

同时需用往C:\Windows\System32加入hadoop.dll文件(该文件是远程连接Hadoop的动态库)

2014-04-03
21:20:21,568 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
        at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
        at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
        at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
        at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
        at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:345)
        at org.fansy.hadoop.mr.WordCount.getConf(WordCount.java:104)
        at org.fansy.hadoop.mr.WordCount.runJob(WordCount.java:84)
        at org.fansy.hadoop.mr.WordCount.main(WordCount.java:47)

上面的错误为在Hadoop中执行的时候缺少winutils.exe下载放入$HADOOP_HOME/bin目录中,再运行

会出现不能写入的权限问题:

调整的权限主要有/tmp
以及运行wordcount的输入、输出目录。命令如下: $HADOOP_HOME/bin/hadoop fs -chmod -R 777 /tmp 。

接着运行会出现如下错误:

ERROR
[main] security.UserGroupInformation (UserGroupInformation.java:doAs(1494)) - PriviledgedActionException as:Administrator (auth:SIMPLE) cause:java.io.IOException:
Failed to run job : Application application_1396459813671_0001 failed 2 times due to AM Container
for appattempt_1396459813671_0001_000002 exited with  exitCode: 1 due to: Exception from
container-launch: 
org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control

该错误需要修改jar包的几个文件(分为3步)

1. 修改MRapps.java
、YARNRunner.java的源码,然后打包替换原来的jar包中的相应class文件,这两个jar我已经打包。(这两个jar包已经上传)然后替换集群中相应的jar吧,同时需要注意替换。

2. 修改mapred-default.xml
,添加:(这个只需在eclipse中导入的jar包修改即可,修改后的jar包不用上传到集群,这个文件在hadoop-mapreduce-client-core-2.2.0.jar文件中)

<property>

        <name>mapred.remote.os</name>

        <value>Linux</value>

        <description>

                Remote MapReduce framework's OS, can be either Linux or Windows

        </description>

</property>

修改后在运行,会出现如下错

Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

修改hadoop-mapreduce-client-core-2.2.0.jar文件中的mapred-default.xml

<property>

        <name>mapreduce.application.classpath</name>

        <value>

                $HADOOP_CONF_DIR,

                $HADOOP_COMMON_HOME/share/hadoop/common/*,

                $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,

                $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,

                $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,

                $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,

                $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,

                $HADOOP_YARN_HOME/share/hadoop/yarn/*,

                $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*

        </value>

</property>


还有hadoop-yarn-common-2.2.0.jar这个jar包中的yarn-default.xml文件

<property>

        <name>mapreduce.application.classpath</name>

        <value>

                $HADOOP_CONF_DIR,

                $HADOOP_COMMON_HOME/share/hadoop/common/*,

                $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,

                $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,

                $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,

                $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,

                $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,

                $HADOOP_YARN_HOME/share/hadoop/yarn/*,

                $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*

        </value>

  </property>


上面修改的两个jar包只用替换eclipse中的jar包即可,不需要替换集群中的。

3.然后在运行出现如下错误:

Caused
by: java.lang.ClassNotFoundException: Class com.mapreduce.WordCount$TokenizerMapper not found

上传我们打包的wordcount程序的jar文件到$HADOOP_HOME/share/hadoop/mapreduce/lib下面,如果还是不行就把该jar包放到Eclipse的该项目的lib下。

以上几个修改的jar包都已上传(http://pan.baidu.com/disk/home#path=%2Fhadoop)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop win7 远程连接