mahout ssvd作业性能

wqsoz72f  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(239)

我需要计算ssvd。对于50000 x 50000矩阵,当缩减到300x300时,ssvdlibc等库可以在不到3分钟内计算出来;
我想为大数据做这件事,尝试使用mahout。首先,我尝试在我的小数据集(即50000 x 50000)上本地运行它,但完成这项简单的工作需要32分钟,溢出文件占用了大约5.5gb的磁盘空间,导致我的intel i5(带8gib ram和ssd驱动器)冻结了几次。
我知道mahout和hadoop必须做很多额外的步骤来执行map reduce任务,但是性能的影响似乎很大。我想我一定是出了什么问题。
我已经阅读了一些hadoop和mahout文档,在配置文件中添加了一些参数,但是仍然非常慢。大多数情况下,它只使用一个cpu。
有人能告诉我我的设置有什么问题吗?它是否可以调整为简单的,一个mahine使用,只是为了看看什么寻找更大的部署?
我的配置文件: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/

我还将hadoop配置为-xmx=4000m和mahout

lzfw57am

lzfw57am1#

首先,我要验证它是并行运行的,确保hdfs replication设置为“1”,并检查您的参数。只看到一个核心被使用绝对是一个问题!
但是!
速度慢的问题可能不会完全消失,通过适当的配置,您可能可以显著加快速度,但最终hadoop模型不会超过一台计算机上优化的共享内存模型库。
hadoop/mahout的强大功能是用于大数据,老实说,50k x 50k仍然是一个相当小的领域,在一台计算机上很容易管理。本质上,hadoop以速度换取可伸缩性。因此,虽然它可能无法以50000 x 50000胜过其他两个,但请尝试让它们在300000 x 300000上工作,而使用hadoop,您在分布式集群上的地位相当不错。

相关问题