如何在 Spark Local 模式下配置 Executor
How to configure Executor in Spark Local Mode
简而言之
我想将我的应用程序配置为使用 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,我这里只配置了driver,没有配置executor。 post 上的解决方案是更改 spark-defaults.conf 文件,但我在本地模式下 运行ning spark,我在任何地方都没有该文件。
更多细节:
我需要 运行 本地模式下的应用程序(用于单元测试)。测试在我的本地机器上运行良好,但是当我将测试提交到构建引擎 (RHEL5_64) 时,出现错误
snappy-1.0.5-libsnappyjava.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
我做了一些研究,似乎最简单的解决方法是使用 lz4 而不是 snappy 作为编解码器,所以我尝试了上述解决方案。
我已经在这个问题上卡了几个小时了,感谢任何帮助,谢谢。
what I did here only configure the driver, but not the executor.
在 local
模式下,只有一个 JVM 同时承载驱动程序和执行程序线程。
the spark-defaults.conf file, but I'm running spark in local mode, I don't have that file anywhere.
模式与此处无关。 local
模式下的 Spark 使用相同的配置文件。如果您转到存储 Spark 二进制文件的目录,您应该看到 conf
目录:
spark-2.2.0-bin-hadoop2.7 $ ls
bin conf data examples jars LICENSE licenses NOTICE python R README.md RELEASE sbin yarn
在这个目录下有一堆模板文件:
spark-2.2.0-bin-hadoop2.7 $ ls conf
docker.properties.template log4j.properties.template slaves.template spark-env.sh.template
fairscheduler.xml.template metrics.properties.template 火花-defaults.conf.template
如果要设置配置选项复制spark-defaults.conf.template
到spark-defaults.conf
并根据您的要求进行编辑。
在这里发布我的解决方案,@user8371915 确实回答了问题,但没有解决我的问题,因为在我的情况下我无法修改 属性 文件。
我最后做的是添加另一个配置
session = SparkSession.builder()
.master(SPARK_MASTER) //local[1]
.appName(SPARK_APP_NAME)
.config("spark.io.compression.codec", "org.apache.spark.io.LZ4CompressionCodec")
.config("spark.sql.parquet.compression.codec", "uncompressed")
.getOrCreate();
简而言之
我想将我的应用程序配置为使用 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,我这里只配置了driver,没有配置executor。 post 上的解决方案是更改 spark-defaults.conf 文件,但我在本地模式下 运行ning spark,我在任何地方都没有该文件。
更多细节:
我需要 运行 本地模式下的应用程序(用于单元测试)。测试在我的本地机器上运行良好,但是当我将测试提交到构建引擎 (RHEL5_64) 时,出现错误
snappy-1.0.5-libsnappyjava.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
我做了一些研究,似乎最简单的解决方法是使用 lz4 而不是 snappy 作为编解码器,所以我尝试了上述解决方案。
我已经在这个问题上卡了几个小时了,感谢任何帮助,谢谢。
what I did here only configure the driver, but not the executor.
在 local
模式下,只有一个 JVM 同时承载驱动程序和执行程序线程。
the spark-defaults.conf file, but I'm running spark in local mode, I don't have that file anywhere.
模式与此处无关。 local
模式下的 Spark 使用相同的配置文件。如果您转到存储 Spark 二进制文件的目录,您应该看到 conf
目录:
spark-2.2.0-bin-hadoop2.7 $ ls
bin conf data examples jars LICENSE licenses NOTICE python R README.md RELEASE sbin yarn
在这个目录下有一堆模板文件:
spark-2.2.0-bin-hadoop2.7 $ ls conf
docker.properties.template log4j.properties.template slaves.template spark-env.sh.template
fairscheduler.xml.template metrics.properties.template 火花-defaults.conf.template
如果要设置配置选项复制spark-defaults.conf.template
到spark-defaults.conf
并根据您的要求进行编辑。
在这里发布我的解决方案,@user8371915 确实回答了问题,但没有解决我的问题,因为在我的情况下我无法修改 属性 文件。
我最后做的是添加另一个配置
session = SparkSession.builder()
.master(SPARK_MASTER) //local[1]
.appName(SPARK_APP_NAME)
.config("spark.io.compression.codec", "org.apache.spark.io.LZ4CompressionCodec")
.config("spark.sql.parquet.compression.codec", "uncompressed")
.getOrCreate();