【问题标题】:Which setting to use in Spark to specify compression of `Output`?在 Spark 中使用哪个设置来指定“输出”的压缩?
【发布时间】:2016-12-20 17:03:50
【问题描述】:

因此,Spark 有文件spark-defaults.xml 用于指定哪些设置,包括要使用的压缩编解码器以及在哪个阶段(RDD、Shuffle)。大多数设置都可以在应用程序级别进行设置。

已编辑:

conf = SparkConf() conf.set("spark.hadoop.mapred.output.compress", "true") conf.set("spark.hadoop.mapred.output.compression.codec", "org.apache.hadoop.io.compress.snappy")

如何使用spark-defaults.xml 告诉 Spark 使用特定编解码器仅压缩 Spark 输出?

选项 1 spark.hadoop.mapred.output.compress true spark.hadoop.mapred.output.compression.codec snappy

选项 2: spark.mapreduce.output.fileoutputformat.compress true spark.mapreduce.output.fileoutputformat.compress.codec snappy

选项 3: mapreduce.output.fileoutputformat.compress true mapreduce.output.fileoutputformat.compress.codec snappy

任何人都有正确的方法来设置这个(从这些选项中的任何一个或类似的东西)?我正在运行 Spark 1.6.1。

【问题讨论】:

    标签: hadoop apache-spark hadoop-plugins


    【解决方案1】:

    Spark 压缩在以下链接中进行了说明: http://spark.apache.org/docs/latest/configuration.html#compression-and-serialization

    据此,可以将lz4、lzf或snappy压缩配置为

    spark.io.compression.codec     lz4
    

    或者

    spark.io.compression.codec     org.apache.spark.io.LZ4CompressionCodec
    

    在 conf/spark-defaults.conf 配置文件中。此文件用于为您的作业及其将在工作节点上运行的执行程序指定默认配置。

    【讨论】:

    • 不是我要问的。编辑问题以提供清晰性。
    • 每个配置都可以在 SparkConf 中设置,也可以在 conf/spark-defaults.conf 中设置
    • 但是,如果您只需要压缩输出 RDD,而不需要压缩 shuffle 阶段的输入或中间 RDD,该怎么办?
    • 您可以在 RDD 上调用 saveAsTextFile 函数并将您的压缩编解码器作为第二个参数
    • looking here:“编解码器的有线协议不能保证跨版本的 Spark 兼容。它旨在用作单个 Spark 应用程序中的内部压缩实用程序。”我阅读这篇文章的方式...使用其中一种编解码器(snappy、lz4、lzf、zstd)序列化到磁盘是个坏主意,对吧?但我猜使用org.apache.hadoop.io.compress.GzipCodec 可以吗?
    【解决方案2】:

    您应该将此添加到您的spark-defaults.xml

    <property>
        <name>spark.hadoop.mapred.output.compress</name>
        <value>true</value>
    </property>
    <property>
        <name>spark.hadoop.mapred.output.compression.codec</name>
        <value>snappy</value>
    </property>
    

    这与在spark-submit 命令中添加这些相同:

    --conf spark.hadoop.mapred.output.compress=true
    --conf spark.hadoop.mapred.output.compression.codec=snappy
    

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2016-03-17
      • 2015-03-15
      • 2019-04-13
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 2010-10-12
      相关资源
      最近更新 更多