我在TEZ和MapReduce执行引擎上都有问题。这两个似乎都与权限有关,但对于我的生命,我迷路了。
当我通过TEZ执行它时,我得到这个消息:
org.apache.hadoop.hdfs。BlockMissingException:无法获取block:bp - 300459168 - 127.0.1.1 300459168: blk_1073741961_1140文件=/tmp/蜂巢/hiveuser/_tez_session_dir/03029 ffd - a9c2 43 - de - 8532 - 1 e1f322ec0cd/hive-hcatalog-core.jar
查看HDFS中的文件权限,但是它们看起来是正确的:
drwx------ - hiveuser hadoop 0 2016-11-11 09:54/tmp/hive/hiveuser/_tez_session_dir/03029ffd-a9c2-43de-8532-1e1f322ec0cd
drwx------ - hiveuser hadoop 0 2016-11-11 09:54/tmp/hive/hiveuser/_tez_session_dir/03029ffd-a9c2-43de-8532-1e1f322ec0cd/.tez
-rw-r——r——3 hiveuser hadoop 259706 2016-11-11 09:54/tmp/hive/hiveuser/_tez_session_dir/03029ffd-a9c2-43de-8532-1e1f322ec0cd/hive-hcatalog-core.jar
在MapReduce上消息是这样的
无法获取块:bp - 300459168 - 127.0.1.1 300459168: blk_1073741825_1001文件=/黄芪丹参滴丸/应用程序/2.5.0.0-1245/mapreduce mapreduce.tar.gz
文件权限
-r——r——r——3 hdfsuser hadoop 51232019 2016-11-04 16:40/hdp/apps/2.5.0.0-1245/mapreduce/mapreduce.tar.gz
谁能告诉我我错过了什么?好吗?
1)类型hadoop fsck HDFS_FILE
检查特定hdfs文件是否健康,如果不是,则特定文件已损坏。删除损坏的文件,并尝试复制jar并尝试下面的命令
2)输入hadoop dfsadmin -report检查Missing blocks的值是否为0
3)检查名称节点web UI启动进度->安全模式是否为100%否则退出安全模式
hadoop dfsadmin -safemode leave
然后运行fsck
delete missing blocks
我终于弄明白了这个问题,并认为这将是友好的我张贴解决方案。当你终于明白的时候,你会想,"啊,这太明显了"。一个重要的注意事项,如果你在Hive中遇到问题,一定要检查Yarn日志!
我对这个和许多其他问题的解决方案是确保我所有的节点在它们的主机文件中有所有其他节点的ip地址。这确保Ambari根据主机名拾取所有正确的ip。我使用的是Ubuntu,所以我做了以下操作:
$ vim/etc/hosts然后输出的文件是这样的:
127.0.0.1 localhost
#127.0.1.1 ambarihost.com ambarihost
# Assigning static IP here so ambari gets it right
192.168.0.20 ambarihost.com ambarihost
#Other hadoop nodes
192.168.0.21 kafkahost.com kafkahost
192.168.0.22 hdfshost.com hdfshost