2

我在 TEZ 和 MapReduce 执行引擎上都遇到了问题。两者似乎都与权限有关,但对于我的生活,我迷失了。

当我通过 TEZ 执行它时,我收到以下消息:

org.apache.hadoop.hdfs.BlockMissingException:无法获取块:BP-300459168-127.0.1.1-1478287363661:blk_1073741961_1140 文件=/tmp/hive/hiveuser/_tez_session_dir/03029ffd-a9c2-43de-8532-1ecatalogf3 -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-1478287363661:blk_1073741825_1001 文件=/hdp/apps/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

谁能告诉我我在那里想念什么?请?

4

2 回答 2

1

1)类型 hadoop fsck HDFS_FILE检查特定的hdfs文件是否健康如果不是,则特定文件已损坏。删除损坏的文件,然后尝试复制该 jar 并尝试以下命令

2) 输入 hadoop dfsadmin -report 检查 Missing blocks 的值是否为:0

3) 检查名称节点 web UI 启动进度 -> 安全模式为 100% 否则离开安全模式

hadoop dfsadmin -safemode leave 

然后运行fsck删除丢失的块

于 2016-11-11T17:53:14.700 回答
0

我终于想通了,并认为发布解决方案对我很友好。当你最终得到它时,你会想,“呃,这太明显了”。一个重要的注意事项,如果您在使用 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
于 2016-11-14T14:44:34.943 回答