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来压缩输出呢? 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") 如果你得到它的工作,发布你的配置可能会对他人有帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |