AWS EMR 星火 1.0

AWS EMR Spark 1.0

有没有办法强制 Amazon EMR 使用 Spark 1.0.1?当前可选择的版本止于 1.4.1.

我在 MLlib 中使用交替最小二乘法实现,并且自 v1.1 以来他们已经实现了加权正则化并且出于特定原因(研究)我不想要这个实现,而是我试图访问非-他们在 v1.0 中实现的加权正则化版本。

如果有帮助,我正在将 Zepplin 笔记本与 Scala 结合使用。

Amazon EMR 提供了一个受支持的软件包版本列表,您可以通过选择下拉菜单进行安装。没有什么能阻止您使用 bootstrap action 安装其他自定义软件。当EMR只支持Java 7时,我有一些安装java 8的经验。这有点痛苦,但完全可以。

EMR 支持 Spark 1.6.0。看看他们最新发布的 emr-4.4.0:http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-whatsnew.html

是否需要使用 Zeppelin?因为如果是这样,那可能会非常困难。 Zeppelin 是针对特定版本的 Spark 编译的,因此降级 jar 很可能会失败。

否则,如果您可以不使用 Zeppelin 而是使用 EMR 步骤 API,那么您可以使用 bootstrap 安装 spark 的操作启动 EMR 集群-装配 1.0.1。我说它 可能 工作,因为不能保证当前的 EMR 版本与 2 年前的 Spark 版本兼容。

创建集群:

使用 EMR 步骤 API 到 运行 火花:

  • 将编译后的 jar 上传到 s3,然后针对该集群提交一个步骤
  • 集群 ID:您的集群的 ID(例如 j-XXXXXXXX)
  • 集群区域。您创建 EMR 集群的位置。 Ex us-west-2
  • 你的 spark main class:这是你放置 ml 管道代码的地方。
  • 您的 jar:您必须将带有代码的 jar 上传到 S3,以便您的集群可以下载它
  • arg1, arg2: 主参数(可选)

aws emr add-steps --cluster-id --steps \ Name=SparkPi,Jar=s3://.elasticmapreduce/libs/script-runner/script-runner.jar,Args=[/home/hadoop/spark/bin/spark-submit,--deploy-mode,cluster,--master,yarn,--class,com.your.spark.class.MainApp,s3://>/your.jar,arg1,arg2],ActionOnFailure=CONTINUE

(取自 https://github.com/awslabs/emr-bootstrap-actions/blob/master/spark/examples/spark-submit-via-step.md 的官方 github 回购)

此外,如果失败,请安装 Hadoop 并查看 https://spark.apache.org/docs/1.0.1/running-on-yarn.html

或者,如果您的数据较小,您也可以 运行 在笔记本电脑本地安装 1.0.1。

祝你好运。