PredictionIOで使用するSpark等のバージョンを変更する

PredictionIOはデフォルトでは以下のバージョンを使用します。

  • Scala 2.10.6
  • Spark 1.6.3
  • Hadoop 2.6.5
  • Elasticsearch 1.7.6

Scalaのバージョンはともかく、Spark(ストレージにElasticsearchを使用する場合はElasticsearchも)のバージョンがかなり古いのが気になるところですが、ソースからのインストール時に以下のようにオプションで使用するバージョンを指定できるようになっています。

$ ./make-distribution.sh -Dscala.version=2.11.8 -Dspark.version=2.1.0 -Delasticsearch.version=5.3.0

指定できるのは以下のプロパティです。

  • scala.version
  • akka.version
  • spark.version
  • hadoop.version
  • elasticsearch.version

サポートしているバージョンはドキュメントには以下のように書かれているのですが、厳密にどのバージョンをサポートしているかは明記されていません。

  • Scala 2.10.x, 2.11.x
  • Spark 1.6.x, 2.x
  • Hadoop 2.4.x to 2.7.x
  • Elasticsearch 1.x, 5.x

参考までに、現在Travisでの自動テストは以下のパターンで実行されています。

Scala Spark Akka Hadoop Elasticsearch
2.10.6 1.6.3 2.3.15 2.6.5 1.7.3
2.10.6 1.6.3 2.3.15 2.6.5 5.2.2
2.11.8 2.1.0 2.4.17 2.7.3 1.7.3
2.11.8 2.1.0 2.4.17 2.7.3 5.2.2

PredictionIOは後方互換性を非常に重視しているためこのような感じになっていますが、さすがにデフォルトはScala 2.11.x、Spark 2.x、Elasticsearch 5.xでよいのではという気がしますね…。