问题标签 [hadoop-native-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - 在 Yarn 上配置 Spark 以使用 hadoop 原生库
概括
我是 Spark 的新手,在使用 Snappy 压缩保存文本文件时遇到了问题。我一直收到下面的错误消息。我遵循了互联网上的许多说明,但没有一个对我有用。最终,我找到了一种解决方法,但我希望有人就正确的解决方案提出建议。
技术栈
- Ubuntu 20.04.1 64 位
- Hadoop 3.3.0
- 火花 3.0.0
- OpenJDK 1.8.0_272
我只使用 spark-shell 来测试我的代码,并使用以下方法启动它:
我试图解决的问题
在 .bashrc 中添加了以下环境变量
在 spark-env.sh 中添加了以下环境变量
已检查 Snappy 库是否存在
解决方法
我还尝试在没有 Yarn 的情况下运行 spark-shell,并且可以将我的 RDD 成功保存为 Snappy 压缩的文本文件。因此,这个问题似乎与纱线有关。我在 spark-defaults.conf 中添加了以下属性,最终帮助解决了使用 Yarn 时的问题。但我不确定为什么实际上需要这样做,以及这是否是在 Yarn 上配置 Spark 以使用 hadoop 本机库的正确方法。
docker - hadoop-2.7.3 中缺少 Hadoop 原生 libhdfs.dylib
我正在使用 apache 箭头项目(https://arrow.apache.org/docs/python/filesystems.html#hadoop-file-system-hdfs)来读取位于 HDFS 中的镶木地板文件。Apache arrow 使用 hadoop 原生库文件从 HDFS 读取。它使用的文件之一是 libhdfs.dylib
我下载了 hadoop 源文件(https://github.com/apache/hadoop.git)并构建了它,包括本机。我使用的 Hadoop 版本是 -> 我用来构建的rel/release-2.7.3命令是
mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true
成功构建后,我注意到 libhdfs.dylib 仍然丢失。
这是我用来构建hadoop发行版的dockerfile:
https://github.com/imsharadmishra/hadoop-build/blob/main/centos/Dockerfile