Mahout - ParallelALSFactorizationJob运行时间过长?

时间:2015-05-18 06:38:35

标签: hadoop mahout recommendation-engine emr

我正在尝试在AWS EMR群集上运行Mahout ALS建议,但是,它需要的时间比我预期的要长。

以下是我运行的命令:

aws add-steps --cluster-id <cluster_id> \
              --steps Type=CUSTOM_JAR,\
                      Name="Mahout ALS Factorization Job",\ 
                      Jar=s3://<my_bucket>/recproto/mahout-mr-0.10.0-job.jar,\
                      MainClass=org.apache.mahout.cf.taste.hadoop.als.ParallelALSFactorizationJob,\
                      Args=["--input","s3://<my_bucket>/recproto/trainingdata/userClicks.csv.gz",\
                            "--output","s3://<my_bucket>/recproto/als-output/",\
                            "--implicitFeedback","true",\
                            "--lambda","150",\
                            "--alpha","0.05",\
                            "--numFeatures","100",\
                            "--numIterations","3",\
                            "--numThreadsPerSolver","4",\
                            "--usesLongIDs","true"]

在userClicks.csv文件中,来自 335,636个用户 23,934个项目 1,567,808个评分

作业在 10-c3.xlarge节点EMR群集上运行,作业运行时间超过2小时。我想知道这是正常的吗?对于我的评级文件,我应该使用哪种规模的EMR集群和参数,以便我可以获得更可接受的运行时间?

1 个答案:

答案 0 :(得分:1)

我只使用Spark ALS解决了这个问题。训练过程在具有相同参数的相同数据集上花费的时间少于2分钟在我的膝上型计算机上

我现在可以理解为什么一些机器学习算法由于性能问题而被弃用......(例如,Minhash算法)