gpt4 book ai didi

hadoop - 如何在Hadoop中自动压缩文件?

转载 作者:可可西里 更新时间:2023-11-01 16:01:24 28 4
gpt4 key购买 nike

我是 Hadoop 的新手,我想压缩一个大文件并将其放在 HDFS 中。到目前为止,这就是我所做的1)安装单节点集群2) 我的 core-site.xml 是这样的

<configuration>
<property> <name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property> <name>io.compression.codecs</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
</configuration>

现在,当我使用以下命令将本地 2GB 文件复制到 HDFS 时。我仍然在 HDFS 中看到相同的大小。

hadoop fs -put 06_27_06_2016_tcp-leef.log-online /user/hduser/test/

不确定我在这里遗漏了什么,是否有任何其他属性我需要在 Hadoop 环境中启用,或者我是否需要为此编写 map-reduce 程序?所以要求是每当一个新文件进入 HDFS 时它应该自动压缩。

谢谢VG

最佳答案

我建议您编写 map-reduce 作业来压缩 hdfs 中的数据。我不知道是否有办法对 hadoop put 操作进行自动压缩,但假设它不存在。一种选择是放置已经压缩的文件:

gzip 06_27_06_2016_tcp-leef.log-online
hdfs dfs -put 06_27_06_2016_tcp-leef.log-online.gz /user/hduser/test/

另一种方法是在 mapreduce 作业中压缩它。作为一种选择,您可以使用 hadoop streaming jar 在 hdfs 中压缩文件:

hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-0.20.2-cdh3u2.jar \
-Dmapred.output.compress=true \
-Dmapred.compress.map.output=true \
-Dmapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec \
-Dmapred.reduce.tasks=0 \
-input <input-path> \
-output $OUTPUT \

有一篇关于 hadoop 数据压缩的好文章,希望你会发现它很有帮助:

http://comphadoop.weebly.com/

关于hadoop - 如何在Hadoop中自动压缩文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com