在eclipse下将java任务提交到集群下执行的错误总结

今天在eclipse下调用hadoop执行java任务,这是的hadoop是2.7.3版本 电脑的系统为win7

首先将linux下hadoop的我们需要配置文件放在src/main/resources下

这里的配置文件都是从linux下下载下来的,写好程序开始运行,会报一个关于权限的错误,有两种解决方法:

1、在window下配置一个HADOOP_USER_NAME环境变量,我这里的用户名是hadoop 则值为hadoop,这时候权限问题就解决了;

2、在linux下给出777的权限  输入命令:

$HADOOP_HOME/bin/hadoop fs -chmod -R 777 /tmp。


这时关于权限的问题就解决了。之后在运行会报一个

Stack trace: ExitCodeException exitCode=1: /bin/bash: line 0: fg: no job con错误如下图

这个时候我们就要修改我们的配置文件   让它能访问到linux


在mapred-site.xml下添加

    <property>
        <name>mapred.remote.os</name>
        <value>Linux</value>
    </property>

    <property>
        <name>mapreduce.app-submission.cross-platform</name>
        <value>true</value>
    </property>

    <property>
        <name>mapreduce.application.classpath</name>
        <value>/mysoftware/hadoop-2.7.3/etc/hadoop,/mysoftware/hadoop-2.7.3/share/hadoop/common/*,/mysoftware/hadoop-2.7.3/share/hadoop/common/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/hdfs/*,/mysoftware/hadoop-2.7.3/share/hadoop/hdfs/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/mapreduce/*,/mysoftware/hadoop-2.7.3/share/hadoop/mapreduce/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/yarn/*,/mysoftware/hadoop-2.7.3/share/hadoop/yarn/lib/*
        </value>
    </property>


这里的mapreduce.application.classpath 要和自己的配置一样 自己可以查看


同样的在yarn-site.xml也添加

    <property>
        <name>yarn.application.classpath</name>
        <value>/mysoftware/hadoop-2.7.3/etc/hadoop,/mysoftware/hadoop-2.7.3/share/hadoop/common/*,/mysoftware/hadoop-2.7.3/share/hadoop/common/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/hdfs/*,/mysoftware/hadoop-2.7.3/share/hadoop/hdfs/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/mapreduce/*,/mysoftware/hadoop-2.7.3/share/hadoop/mapreduce/lib/*,/mysoftware/hadoop-2.7.3/share/hadoop/yarn/*,/mysoftware/hadoop-2.7.3/share/hadoop/yarn/lib/*</value>
    </property>


注意name不要写错。之前配置的那些xml文件在以前的文章中有写到

我们再运行的时候注意必须要将该工程打的包提交到集群中去  

我这里采用的是maven打包   clean  package  注意运行环境要是jdk  不能是jre否则打包不成功,凡是修改了代码再运行都要重新clean packgae一下 个人觉得有点麻烦

//设置提交到集群执行的jar包
job.setJar("target/hadoop42-003-mapreduce-format-0.0.1-SNAPSHOT.jar");


之后就是在集群中运行 我们可以去http://master:8088/cluster/下查看任务情况


以上是关于今天遇到的问题的总结。。。继续fighting




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值