【发布时间】:2017-09-08 06:42:05
【问题描述】:
简而言之
我想将我的应用程序配置为使用 lz4 压缩而不是 snappy,我所做的是:
session = SparkSession.builder()
.master(SPARK_MASTER) //local[1]
.appName(SPARK_APP_NAME)
.config("spark.io.compression.codec", "org.apache.spark.io.LZ4CompressionCodec")
.getOrCreate();
但是查看控制台输出,它仍然在执行器中使用 snappy
org.apache.parquet.hadoop.codec.CodecConfig: Compression: SNAPPY
和
[Executor task launch worker-0] compress.CodecPool (CodecPool.java:getCompressor(153)) - Got brand-new compressor [.snappy]
根据this post,我这里只配置了驱动,没有配置执行器。帖子上的解决方案是更改 spark-defaults.conf 文件,但是我在本地模式下运行 spark,我在任何地方都没有该文件。
更多细节:
我需要在本地模式下运行应用程序(出于单元测试的目的)。测试在我的机器上本地运行良好,但是当我将测试提交到构建引擎(RHEL5_64)时,我得到了错误
snappy-1.0.5-libsnappyjava.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
我做了一些研究,似乎最简单的解决方法是使用 lz4 而不是 snappy 作为编解码器,所以我尝试了上述解决方案。
我在这个问题上卡了几个小时,感谢您的帮助,谢谢。
【问题讨论】:
标签: apache-spark spark-streaming snappy