加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Spark独立模式:如何压缩写入HDFS的火花输出

发布时间:2020-12-16 09:39:04 所属栏目:安全 来源:网络整理
导读:与我的另一个问题相关,但不同: someMap.saveAsTextFile("hdfs://HOST:PORT/out") 如果我将RDD保存到HDFS,那么如何用gzip来告诉spark来压缩输出呢? 在Hadoop中,可以设置 mapred.output.compress = true 并选择压缩算法 mapred.output.compression.codec
与我的另一个问题相关,但不同:

someMap.saveAsTextFile("hdfs://HOST:PORT/out")

如果我将RDD保存到HDFS,那么如何用gzip来告诉spark来压缩输出呢?
在Hadoop中,可以设置

mapred.output.compress = true

并选择压缩算法

mapred.output.compression.codec = <<classname of compression codec>>

我如何在火花中做到这一点?这样做也会吗?

编辑:使用spark-0.7.2

解决方法

方法saveAsTextFile会使用编解码器类的附加可选参数。所以对于你的例子,应该是这样使用gzip:

someMap.saveAsTextFile("hdfs://HOST:PORT/out",classOf[GzipCodec])

UPDATE

由于您使用0.7.2,您可能可以通过启动时设置的配置选项来移植压缩代码。我不知道这是否会正常工作,但是您需要从这里开始:

conf.setCompressMapOutput(true)
conf.set("mapred.output.compress","true")
conf.setMapOutputCompressorClass(c)
conf.set("mapred.output.compression.codec",c.getCanonicalName)
conf.set("mapred.output.compression.type",CompressionType.BLOCK.toString)

像这样:

System.setProperty("spark.hadoop.mapred.output.compress","true")
System.setProperty("spark.hadoop.mapred.output.compression.codec","org.apache.hadoop.io.compress.GzipCodec")
System.setProperty("spark.hadoop.mapred.output.compression.type","BLOCK")

如果你得到它的工作,发布你的配置可能会对他人有帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读