aen*_*ner 3 hadoop snappy apache-spark google-cloud-platform google-cloud-dataproc
尝试从使用Google Cloud Dataproc启动的Spark群集中读取Snappy压缩序列文件时,我收到以下警告:
java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
Run Code Online (Sandbox Code Playgroud)
在此上下文中启用Snappy编解码器支持的最佳方法是什么?
不幸的是,Dataproc的发布图像是在没有Snappy支持的情况下构建的.我已经打开了一个错误,为下一张图片修复了这个问题.
解决方法:
首先创建一个小的shell脚本,正确安装snappy以及对它的本机库支持.为此,我们将使用相同的本机库bdutil使用.我打电话给我的剧本setup-snappy.sh:
#!/bin/bash
pushd "$(mktemp -d)"
apt-get install -q -y libsnappy1
wget https://storage.googleapis.com/hadoop-native-dist/Hadoop_2.7.1-Linux-amd64-64.tar.gz
tar zxvf Hadoop_2.7.1-Linux-amd64-64.tar.gz -C /usr/lib/hadoop/
Run Code Online (Sandbox Code Playgroud)将新shell脚本复制到您拥有的GCS存储桶.出于演示目的,我们假设存储桶是dataproc-actions:
gsutil cp ./setup-snappy.sh gs://dataproc-actions/setup-snappy.sh
Run Code Online (Sandbox Code Playgroud)启动集群时,请指定初始化操作:
gcloud beta dataproc clusters create --initialization-actions gs://dataproc-actions/setup-snappy.sh mycluster
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |