当尝试从使用google cloud dataproc启动的spark集群读取snappy压缩序列文件时,我收到以下警告:
java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
在这种情况下,启用snappy编解码器支持的最佳方法是什么?
当尝试从使用google cloud dataproc启动的spark集群读取snappy压缩序列文件时,我收到以下警告:
java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
在这种情况下,启用snappy编解码器支持的最佳方法是什么?
2条答案
按热度按时间uidvcgyl1#
不幸的是,dataproc的启动映像是在没有snappy支持的情况下构建的。我打开了一个bug来修复下一张图片。
解决方法:
首先创建一个小的shell脚本,正确地安装snappy及其本机库支持。为此,我们将使用bdutil使用的相同本机库。我给我的剧本打了电话
setup-snappy.sh
:将新的shell脚本复制到您自己的gcs bucket中。为了演示的目的,我们假设桶是
dataproc-actions
:启动群集时,请指定初始化操作:
gwo2fgha2#
我自己没有做过,但这篇文章可以解决你的问题:
为了安装和配置其他系统级组件,bdutil支持扩展机制。扩展的一个很好的例子是与bdutil绑定的spark扩展:extensions/spark/spark_env.sh。当运行bdutil扩展时,会添加-e标志,例如,使用hadoop部署spark:
./bdutil-e extensions/spark/spark_env.sh部署