snappy on spark

配置spark 之前有个前提,就是hadoop snappy 安装成功,检验方法在我上一篇博客有(https://blog.csdn.net/qq_34394465/article/details/85064406

接下来 添加 spark snappy  依赖包

vim /data/soft/spark-2.1.0-bin-hadoop2.7/conf/spark-defaults.conf

spark.driver.extraClassPath  /data/soft/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar

spark.driver.extraLibraryPath /data/soft/hadoop-2.7.3/lib/native

spark.executor.extraClassPath /data/soft/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar

spark.executor.extraLibraryPath /data/soft/hadoop-2.7.3/lib/native

好了,接下来 新启的任务就可以使用snappy了

可能有人会问,不用配启用配置吗,这是因为spark 默认压缩格式就是snappy,启用配置是默认启用,所以检测到hadoop snappy 配置,会自动启用(rdd 输出压缩是默认不开启的,如果有需要需要自己配,前提是hadoop map 输出压缩必须先开启)

添加map输出压缩配置,在 hadoop mapred-site.xml,仅配置map部分:

<property>         

           <name>mapred.compress.map.output</name>         

           <value>true</value>

 </property>  

<property>         

            <name>mapred.map.output.compression.codec</name>             

            <value>org.apache.hadoop.io.compress.SnappyCodec</value>

 </property>

将集群配置修改动态同步到每个节点

hadoop dfsadmin -refreshNodes

spark.rdd.compress true

新任务开启rdd 输出压缩

spark 输出压缩配置(这个不建议,因为snappy 不可 split ,在输出压缩文件到hdfs上 会导致其他组件解压缩读取问题,例如 druid等)

查看配置 hadoop mapred-site.xml,仅配置mapreduce部分:

<property>

<name>mapred.output.compress</name>

<value>true</value>

</property>

<property>

<name>mapred.output.compression.codec</name>

<value>org.apache.hadoop.io.compress.SnappyCodec</value>

</property>

将集群配置修改动态同步到每个节点

hadoop dfsadmin -refreshNodes (官方建议 使用 hadoop-daemon.sh ,暂不清楚原因,本地测试未发现问题)

spark启新任务,输出结果直接会进行snappy 压缩

猜你喜欢

转载自blog.csdn.net/qq_34394465/article/details/85244810