我需要计算ssvd。
对于5万x 5万个矩阵,当缩减为300x300时,诸如ssvdlibc等库可以在不到3分钟的时间内进行计算;
我想对大数据进行处理,尝试使用mahout。首先,我尝试在我的小型数据集(即50000 x 50000)上本地运行它,但是完成此简单的工作需要32分钟,使用大约5.5GB的磁盘空间来存储溢出文件,导致我的Intel i5和8GiB ram和SSD驱动器冻结几次。
我知道mahout和hadoop必须执行许多其他步骤才能执行 map 缩减任务中的所有操作,但是性能受到的影响似乎很大。我认为我的装置中一定有问题。
我已经阅读了一些hadoop和mahout文档,在配置文件中添加了一些参数,但是它仍然非常慢。大多数情况下,它仅使用一个CPU。
有人可以告诉我我的设置有什么问题吗?可以为某种简单的机器用途进行某种方式的调整吗?
我的配置文件:
mapred-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>local</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx5000M</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>3</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>3</value>
</property>
<property>
<name>io.sort.factor</name>
<value>35</value>
</property>
</configuration>
core-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>file:///</value>
</property>
<!--
<property>
<name>fs.inmemory.size.mb</name>
<value>200</value>
</property>
<property>
<name>io.sort.factor</name>
<value>100</value>
</property>
-->
<property>
<name>io.sort.mb</name>
<value>200</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
我的工作是这样的:
mahout ssvd --rank 400 --computeU true --computeV true --reduceTasks 3 --input ${INPUT} --output ${OUTPUT} -ow --tempDir /tmp/ssvdtmp/
我还使用-Xmx = 4000m配置了hadoop和mahout
最佳答案
好吧,首先,我将验证它是否并行运行,确保hdfs复制设置为“1”,并且通常只检查您的参数。只使用一个内核绝对是一个问题!
但!
速度慢的问题可能无法完全解决,您可以通过适当的配置来显着加快速度,但是最终,Hadoop模型不会在单台计算机上超过优化的共享内存模型库。
hadoop / mahout的功能是针对大数据的,老实说,50k x 50k仍然很小,可以在一台计算机上轻松管理。本质上,Hadoop牺牲了速度来换取可扩展性。因此,虽然它可能无法与其他两个以50000 x 50000竞争,但尝试让它们在300000 x 300000上工作,而使用Hadoop时,您正坐在分布式集群上。
关于hadoop - mahout ssvd工作表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656814/