我对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
1条答案
按热度按时间neekobn81#
我建议您编写map reduce job来压缩hdfs中的数据。我不知道是否有一种方法可以对hadoopput操作进行自动压缩,但假设它不存在。一种方法是将已压缩的文件:
另一种方法是在mapreduce作业中压缩它。作为一个选项,您可以使用hadoop streaming jar在hdfs中压缩文件:
有一篇关于hadoop中数据压缩的好文章,希望您能发现它非常有用:
http://comphadoop.weebly.com/