如何将gzip文件移动到hdfs

wxclj1h5  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(503)

我是hadoop新手。必须从eds(企业数据源)移动文件,我们每天和每月都有来自外部和内部供应商的数据。在eds中,我们有gzip文件。如何移动到hdfs?

c9x0cxw0

c9x0cxw01#

我建议你用 copyFromLocal 此处命令
此外,更重要的是,如果gzip文件大于默认块大小(例如128mb),我强烈建议您使用 -Ddfs.block.size 参数设置为平均gzip文件大小。
在mapreduce作业期间,在hadoop外部创建的gzip文件(除非在hadoop内部创建sequencefile)不能在分割的块上工作。因此,这种情况会导致gzip文件在整个集群中被拆分,从而丢失位置,当在任何gzip文件上启动作业时,所有块都必须合并到一个文件中,从而在网络上造成瓶颈。
此参数将不会分割或将gzip文件分割为比实际少得多的块。例如;如果块大小为128 mb,则2 gb gzip文件将被拆分为16个块。如果put的块大小为1GB,则只需合并2个块。
参数用法: hadoop fs -Ddfs.block.size=1G -copyFromLocal localfile /user/root/destination

kiayqfof

kiayqfof2#

你试过使用put命令吗。此命令可用于将存储在eds中的本地数据移动到hdfs。
参考文件:

hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir

相关问题