【发布时间】:2014-07-18 11:33:29
【问题描述】:
我在笔记本电脑和 Oracle VirtualBox VM 上运行 Cloudera Hadoop。 我已经从我的 8 个内核中分配了 5.6 GB,从 8 个内核中分配了 6 GB。 而且我仍然无法保持它的正常运行。 即使没有负载服务也不会保持正常运行,当我尝试查询时,至少 Hive 将在 20 分钟内关闭。有时它们像多米诺骨牌一样倒下:一个接一个。
更多内存似乎对某些人有所帮助:在 3GB 和所有服务的情况下,当 Hue 自己设法起床时,Hue 会闪烁红色。重新启动后,我需要 30 到 60 分钟才能使系统启动到足以尝试在其上运行任何东西。
有两个明智的注释(我已经设法找到): - 交换警告。 - 当系统使用 26 GB 的虚拟内存不足时出现崩溃提示。
我的数据集不到 1 MB,因此很难理解为什么系统会达到数十 GB,但不管是什么原因已经过去了:现在系统在 5.6 GB 附近运行得更加稳定在关闭一些服务后,我已经放弃了它:请参阅我对自己的回答。
而且它仍然更加稳定。就在我收到交换警告之后,Hive 又掉了下来。如果虚拟机开始交换,所有 Hadoop 服务或多或少都会停止的原因是什么?
我没有足够的声誉将图片发布到这里,但是当 Hive 再次出现故障时,它每秒交换 13 页并使用 5.9 GB / 5.6 GB。所以基本上我的系统在开始交换后就开始或多或少地崩溃。 "在过去的 15 分钟内有 428 个页面被交换到磁盘"
就硬盘驱动器而言,我使用了默认安装选项。 唯一添加的是 Windows 和 VM 之间的共享文件夹。这总是有点奇怪地锁定文件,所以我像 FTP 一样使用它,并且只用于将文件从一个系统传递到另一个系统。因此我可以几天不使用它,但系统仍然崩溃,所以这也不是原因。
现在系统已基本启动,服务仍然每天崩溃两次:Service Monitor 和 Hive 的崩溃频率相当平稳。之后是活动监视器和事件服务器,它们似乎总是一起崩溃。我相信 Yarn 也会崩溃,但它会自行恢复。上次 Hive 先崩溃,然后是 Service Monitor、Hive(第二次)、Activity Monitor 和 Event Server 都跟着崩溃了。
由于swap是磁盘,所以问题可能出在磁盘上:
# cat /etc/fstab
# swapoff -a
# badblocks -v /dev/VolGroup/lv_swap
Checking blocks 0 to 8388607
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.
# badblocks -vw /dev/VolGroup/lv_swap
Checking for bad blocks in read-write mode
From block 0 to 8388607
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found.
所以交换磁盘没有问题,我也没有在其他任何地方发现任何磁盘错误。
请注意,您也可以从 Windows 端检查文件系统。但是我希望如果你让 Windows 来修复你的 Linux 文件系统,那么你很有可能用它来破坏你的 Linux,所以我做了一些悲观的检查,因为 AFAIK 这些命令可以安全地执行。
【问题讨论】:
-
你还没有说明你的问题。 “无法保持正常运行”并不是问题。
-
您需要指定数据集的大小?你的块大小是多少?
标签: hadoop out-of-memory development-environment cloudera