在8088端口可以看到日志文件(主要看error),操作如下:
1.window jdk版本最好和linux jdk 版本一致,不然容易出现莫名奇妙的bug
之前出现一个bug: UnsupportedClassVersionError: .......
就是版本错误引起的,花了好长的时间才搞定
2.当出现ClassNotFoundException 时,需要将src的文件export成jar包,在主函数加入代码如下:
3.如果出现 INFO mapreduce.Job: Job job_1398669840354_0003 failed with state FAILED due to:
Application application_1398669840354_0003 failed 2 times due to AM Container for appattempt_1398669840354_0003_000002 exited with exitCode: 1
due to: Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException: .......
是mapred-default.xml,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>
(这两个文件分别在hadoop-mapreduce-client-core-2.8.5.jar,hadoop-yarn-api-2.8.5.jar 中)
注:得先将这两个jar包remove bulid Path ,然后才能修改 .xml文件
注:!!!如果你在eclipse启动mapreduce,则改window的jar包,在linux机则改hadoop的mapred-site.xml和yarn-site.xml文件
4.若出现AccessContorlException:Permisson denied:.........
应该是用户权限问题,加入如下代码:
//1.设置yarn处理数据时的user
System.setProperty("HADOOP_USER_NAME","root");
5.如出现ExitCodeException:exit code =1 : /bin/bash .........
是因为Job 任务是在window提交的,而接受方是yarn,编辑脚本命令时是以window为标准,所以运行脚本命令时就出错了
加如下代码:
//4.跨平台提交时,需要加这个参数
conf.set("mapreduce.app-submission.cross-platform", "true");