Hive 执行count聚合函数 insert 方法 map 0% reduce 0%
报错截图
大概就是stage-1 map=0% reduce=0%
return code 2 .。。等等
从里面的报错信息根本看不出什么,那我们就去看日志文件,在hadoop安装目录下的logs/userlogs文件夹里面,里面是这次任务的编号,它是暂时保存的,当hive被关闭时,这些文件已被删除了
在logs/userlogs文件夹里面中,选择一个点进去看
主要查看stderr文件
我这里面报错的是
错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
解决方法
yarn执行MapReduce任务时,找不到主类导致的,在命令行输入:
hadoop classpath
结果如图
[admin@master hadoop]$ hadoop classpath
/opt/module/hadoop/etc/hadoop:/opt/module/hadoop/share/hadoop/common/lib/*:/opt/module/hadoop/share/hadoop/common/*:/opt/module/hadoop/share/hadoop/hdfs:/opt/module/hadoop/share/hadoop/hdfs/lib/*:/opt/module/hadoop/share/hadoop/hdfs/*:/opt/module/hadoop/share/hadoop/mapreduce/lib/*:/opt/module/hadoop/share/hadoop/mapreduce/*:/opt/module/hadoop/share/hadoop/yarn:/opt/module/hadoop/share/hadoop/yarn/lib/*:/opt/module/hadoop/share/hadoop/yarn/*
然后在hadoop安装目录下/etc/hadoop中找到yarn-site.xml
把上述输出的值添加到yarn-site.xml文件对应的属性 yarn.application.classpath下面,eg:
<property>
<name>yarn.application.classpath</name>
<value>/opt/module/hadoop/etc/hadoop:/opt/module/hadoop/share/hadoop/common/lib/*:/opt/module/hadoop/share/hadoop/common/*:/opt/module/hadoop/share/hadoop/hdfs:/opt/module/hadoop/share/hadoop/hdfs/lib/*:/opt/module/hadoop/share/hadoop/hdfs/*:/opt/module/hadoop/share/hadoop/mapreduce/lib/*:/opt/module/hadoop/share/hadoop/mapreduce/*:/opt/module/hadoop/share/hadoop/yarn:/opt/module/hadoop/share/hadoop/yarn/lib/*:/opt/module/hadoop/share/hadoop/yarn/*</value>
</property>
重启yarn,重新跑MapReduce任务。
stop-yarn.sh
start-yarn.sh
最后运行成功