Apache MLlib随机森林的并行训练

时间:2016-11-05 15:42:44

标签: java apache-spark machine-learning random-forest apache-spark-mllib

我有一个Java应用程序,它在具有200K样本的训练集上训练MLlib随机森林(org.apache.spark.mllib.tree.RandomForest)。我注意到在培训期间只使用了一个CPU核心。鉴于随机森林是N个决策树的集合,人们会认为树可以并行训练,因此利用所有可用核心。是否有配置选项或API调用或其他任何可以启用决策树并行培训的内容?

1 个答案:

答案 0 :(得分:0)

我找到了答案。问题在于如何使用SparkConf.setMaster(“local”)设置Spark配置。我把它更改为SparkConf.setMaster(“local [16]”)以使用16个线程,根据javadoc:

http://spark.apache.org/docs/latest/api/java/org/apache/spark/SparkConf.html#setMaster(java.lang.String)

现在我的训练运行得更快,弗吉尼亚州的亚马逊数据中心稍微热一点:)

典型的RTFM案例,但在我的辩护中,使用setMaster()对我来说似乎有些苛刻。更好的设计是添加一个单独的方法来设置要使用的本地线程/核心数。