2

我的集群面临一个非常奇怪的问题。

每当我尝试将任何大于 100 MB(104857600 字节)的文件加载到 HDFS 中时,它都会失败并出现以下错误:

所有数据节点都不好...正在中止。

这真的很奇怪,因为 100 MB 已成为文件大小的阈值。

即使我尝试将文件大小增加 1 个单字节(104857601 字节),并尝试将其加载到 HDFS 中,它也会因长堆栈跟踪而失败。主要是说“所有数据节点都不好......正在中止”

有没有人之前遇到过类似的情况?

是否有可能是一些错误的配置更改导致了这种行为?如果是,任何限制我可以更改的可以摄取的数据大小的配置?

谢谢

4

2 回答 2

2

“之前有人遇到过类似的情况吗?”

是的,我曾经有过。您应该减少运行 hadoop 的用户的限制。我在一个从 apache 网站下载的 linux 机器上安装了 hadoop,但我的系统没有针对它进行调整,我收到了你的消息。这些是来自 cloudera 快速入门的设置,将您的限制与这些进行比较。

[cloudera@quickstart ~]$ ulimit -a 
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30494
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
于 2016-09-29T19:08:17.220 回答
0

如果您能够从堆栈跟踪中获取数据节点的更多详细信息,您应该能够停止作为守护进程之一的数据节点。通过杀死或停止数据节点,您将获得可能已损坏、重新实例化的数据节点。基本上,您正在重新启动该特定数据节点的 jvm。命令: 停止:bin/hadoop-daemon.sh stop datanode 开始:bin/hadoop-daemon.sh start datanode

于 2016-09-29T11:43:34.193 回答