在 EMR 上使用 OpenBLAS Spark
Spark with OpenBLAS on EMR
在 EMR 实例上尝试 运行 Spark 2.1.0 中的 MlLib ALS 算法时,我不断收到臭名昭著的警告:
WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
我通过重建 Spark 以包含带有 -Pnetlib-lgpl 标志的 netlib-java 设法解决了本地 Ubuntu 机器上的问题,但是有没有办法避免重建默认值EMR Spark 构建?目前我正试图通过使用 sbt-assembly 构建一个胖 JAR 来规避它,添加以下依赖项:
libraryDependencies += "com.github.fommil.netlib" % "all" % "1.1.2"
尽管组装成功,但是当 运行ning spark-submit 时,BLAS 警告仍然没有消失。我在 EMR 上安装了 openblas 和 lapack。
好吧,用一个胖 JAR 似乎是不可能的,所以我构建了一个自定义的 Spark 分布,如下所示:
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
./dev/make-distribution.sh --name spark --tgz -Phadoop-2.7 -Phive -Phive-thriftserver -Pnetlib-lgpl -Pkinesis-asl -Pspark-ganglia-lgpl
并用我的构建替换了 EMR 上的 /usr/lib/spark 目录。成功了。
在 EMR 实例上尝试 运行 Spark 2.1.0 中的 MlLib ALS 算法时,我不断收到臭名昭著的警告:
WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
我通过重建 Spark 以包含带有 -Pnetlib-lgpl 标志的 netlib-java 设法解决了本地 Ubuntu 机器上的问题,但是有没有办法避免重建默认值EMR Spark 构建?目前我正试图通过使用 sbt-assembly 构建一个胖 JAR 来规避它,添加以下依赖项:
libraryDependencies += "com.github.fommil.netlib" % "all" % "1.1.2"
尽管组装成功,但是当 运行ning spark-submit 时,BLAS 警告仍然没有消失。我在 EMR 上安装了 openblas 和 lapack。
好吧,用一个胖 JAR 似乎是不可能的,所以我构建了一个自定义的 Spark 分布,如下所示:
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
./dev/make-distribution.sh --name spark --tgz -Phadoop-2.7 -Phive -Phive-thriftserver -Pnetlib-lgpl -Pkinesis-asl -Pspark-ganglia-lgpl
并用我的构建替换了 EMR 上的 /usr/lib/spark 目录。成功了。