【问题标题】:How to configure Executor in Spark Local Mode如何在 Spark 本地模式下配置 Executor
【发布时间】: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


    【解决方案1】:

    我在这里所做的只是配置驱动程序,而不是执行程序。

    local 模式下,只有一个 JVM 同时托管驱动程序和执行程序线程。

    spark-defaults.conf 文件,但我在本地模式下运行 spark,我在任何地方都没有该文件。

    模式在这里不相关。 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 spark-defaults.conf.template

    如果您想设置配置选项,请将spark-defaults.conf.template 复制到spark-defaults.conf 并根据您的要求进行编辑。

    【讨论】:

      【解决方案2】:

      在这里发布我的解决方案,@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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-12
        • 1970-01-01
        • 2017-11-23
        • 1970-01-01
        • 1970-01-01
        • 2014-12-21
        相关资源
        最近更新 更多