amazon-web-services - 在 EMR 上使用 OpenBLAS Spark

标签 amazon-web-services apache-spark amazon-emr lapack blas

当我尝试在 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-assemble 构建一个 fat JAR 来规避它,并添加以下依赖项:

libraryDependency += "com.github.fommil.netlib"% "all"% "1.1.2"

虽然组装成功,但运行 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 目录。这就成功了。

关于amazon-web-services - 在 EMR 上使用 OpenBLAS Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43286771/

相关文章:

hadoop - Amazon EMR中的Hadoop 2.4.0和Giraph 1.1.0?

scala - 如何优化 Spark 以将大量数据写入 S3

amazon-web-services - AwsS3 客户端在初始化时抛出错误

hadoop - 在 Spark 集群和 YARN 上运行的 Apache Zeppelin

python - Pyspark UDF无法使用大字典

hadoop - 如何将数据从 Spark SQL 导出到 CSV

apache-spark - Spark 数据帧 : explode list column

java - 将电子邮件放入动态 s3 存储桶 Amazon 的收件人规则集

amazon-web-services - 无法访问AWS EC2上的8080端口

amazon-web-services - 在同一台机器或每台机器上运行多个图像/容器?