尝试从使用 Google Cloud Dataproc 启动的 Spark 集群读取 Snappy 压缩序列文件时,我收到以下警告:
java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
在这种情况下启用 Snappy 编解码器支持的最佳方法是什么?
最佳答案
不幸的是,Dataproc 的启动镜像是在没有 Snappy 支持的情况下构建的。我已经打开了一个错误来修复下一个图像的问题。
解决方法:
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/
dataproc-actions
:gsutil cp ./setup-snappy.sh gs://dataproc-actions/setup-snappy.sh
gcloud beta dataproc clusters create --initialization-actions gs://dataproc-actions/setup-snappy.sh mycluster
关于hadoop - 如何在使用 Google Cloud Dataproc 启动的 Spark 集群中启用 Snappy 编解码器支持?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32833095/