5.6 GB对Cloudera来说还不够?

时间:2014-07-18 11:33:29

标签: hadoop out-of-memory development-environment cloudera

我在笔记本电脑和Oracle VirtualBox VM上运行Cloudera Hadoop。 我从矿井中获得了5.6 GB,在8个核心中也获得了6 GB。 而且我仍然无法保持运行。 即使没有加载服务也不会保持正常运行,当我尝试查询时,至少Hive将在20分钟内停止运行。有时他们像多米诺骨牌一样倒下:一个接一个。

更多的记忆似乎对一些人有所帮助:当Hue本身设法起床时,Hue用红色闪烁着3GB和所有服务。在重新启动之后,需要30到60分钟才能让系统足够运行,甚至可以尝试在其上运行任何内容。

有两个明智的笔记(我已设法找到): - 交换警告。 - 当系统使用26 GB的虚拟内存时崩溃,这是不够的。

我的数据集小于1兆字节,因此很难理解为什么系统会达到几十千兆字节,但是由于原因已经过去了:现在系统在5.6 GB附近运行得更稳定了关闭一些服务后我已经给了它:看看我对自己的回答。

而且它仍然更稳定。在我收到交换警告之后,Hive再次下降。如果VM开始交换,或多或少所有Hadoop服务都会失败的原因是什么?

我没有足够的声誉将图片发布到此处,但是当Hive再次出现故障时,它正在交换13页/秒并使用5.9 GB / 5.6 GB。所以基本上我的系统在开始交换之后就开始或多或少地崩溃了。 “在过去的15分钟内,428页被换成了磁盘”

就硬盘而言,我使用了默认安装选项。 只有添加是Windows和VM之间的共享文件夹。这有点奇怪地锁定文件,所以我像FTP一样使用它,只用于将文件从一个系统传递到另一个系统。因此,我可以在不使用它的情况下过几天,但系统仍会崩溃,因此这也不是原因。

现在系统大部分都处于运行状态,服务崩溃仍然大约每天两次:Service Monitor和Hive的崩溃频率相当均匀。之后,活动监视器和事件服务器似乎总是一起崩溃。我相信Yarn也崩溃了,但它自己起来了。上次Hive崩溃,然后是服务监视器,Hive(第二次),Activity Monitor和Event Server all。


由于交换是磁盘,可能问题在于磁盘:

# 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这些命令可以安全执行。

3 个答案:

答案 0 :(得分:1)

大约一半的服务一直在下降,所以提供更多具体细节将是一个漫长的故事。

通过关闭水槽,hbase,impala,ks_indexer,oozie,spark和sqoop,我成功地使系统更加稳定。并且通过向一些抱怨的剩余服务增加更多内存,他们没有得到足够的内存。

另外我修复了Windows方面的一些事情,我不确定其中哪一个有帮助:   - MsMpEng.exe让我的硬盘很忙。我没有权限杀死它,但我将其优先级降低到最低。   - CcmExec.exe必须循环播放我的DVD并继续阅读它。我通过从驱动器中取出DVD解决了这个问题。然后,我杀了进程树,以防止它打扰一段时间。 我使用Windows资源管理器找到了这些。

答案 1 :(得分:0)

虚拟机需要4GB:http://www.cloudera.com/content/cloudera-content/cloudera-docs/DemoVMs/Cloudera-QuickStart-VM/cloudera_quickstart_vm.html你应该使用它。

我不清楚您是否正在使用QuickStart VM。它设置为只运行基本服务并调整以节省内存而不是利用大量内存。

听起来您在Windows计算机上的一台虚拟机上运行自己的安装。您可能正在一台台式机上运行整个群集的服务。这些服务中的每一项都有主,工作流程,监控流程等。您不需要大多数服务。

您也可能在默认情况下保留了适用于16 GB GB RAM的服务器级机器的内存设置。请记住,这些服务通常在许多机器上运行,而不是全部运行。

最后,你明确地交换了,这让事情变得异常缓慢。请记住,这也是通过VM完成的!

如果你真的想要正确调整1机群集,请使用QuickStart VM。如果您需要真正的集群或更多服务,则需要更多硬件。

答案 2 :(得分:0)

还要考虑:cloudera.com/live包含完整的CDH 5.1群集+示例数据,在AWS上按需运行。当然,VM的优势在于您可以使用BYOD,但如果您只是寻找实际的Hadoop体验,Live就是一个不错的选择。