hadoop - mahout ssvd工作表现

标签 hadoop mahout

我需要计算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/

相关文章:

OpenCV 与 Mahout 基于计算机视觉的机器学习?

scala - 在Hive表中加载 Parquet 文件将返回所有NULL

sql - 从时间戳格式 "25/Nov/2016:15:48:01 +0000' 中检索月份

java - 生成空输出文件的 Map Reduce 作业

maven - giraph格式-建立具有依赖项的jar

java - 结合Hive与Mahout进行推荐

hadoop - 单节点hadoop有没有并行性?

hadoop - 我应该使用哪个版本的 HDP 来处理 Mahout 0.9 和 Hadoop 1.x

Hadoop 异常 : All specified directories are failed to load

machine-learning - 在 Mahout 中查找特征向量中的不同维度