hadoop fs-text与hadoop fs-cat与hadoop fs-get

gdrx4gfi  于 2023-03-19  发布在  Hadoop
关注(0)|答案(3)|浏览(1045)

我相信以下所有命令都可以用于将hdfs文件复制到本地文件系统。有什么区别/情景利弊hadoop新手)。

hadoop fs -text /hdfs_dir/* >> /local_dir/localfile.txt
hadoop fs -cat /hdfs_dir/* >> /local_dir/localfile.txt
hadoop fs -get /hdfs_dir/* >> /local_dir/

我的经验法则是避免对大文件使用“text”和“cat”我用它来复制mr作业的输出,在我的用例中,mr作业通常较小)。

g2ieeal7

g2ieeal71#

-cat和-text的主要区别在于,text检测文件的编码,并尽可能将其解码为纯文本,而cat则不这样做。
例如,以这个lzo压缩文件为例。
使用文本:

hadoop fs -text hdfs://namenode:8020/user/hive/warehouse/database/000000_0.lzo_deflate
1,foo
2,bar
3,baz
4,hello
5,world

使用cat:

hadoop fs -cat hdfs://namenode:8020/user/hive/warehouse/database/000000_0.lzo_deflate 
    ίiW3�I���2�IJ,�2�U\&:�99�\�:��E9)\֙��"

dfs-get命令用于将文件复制到本地文件系统。

vuv7lop3

vuv7lop32#

hadoop fs -get 
hadoop fs -copyToLocal

上述hdfs命令可用于将hdfs文件复制到本地系统。

hadoop fs -cat

此命令将在stdout(控制台或命令提示符)上显示hdfs文件的内容。

hadoop fs  -text

这将显示hdfs文件的内容(但文本仅适用于zip和textrecordinputstream格式,如sequencefieformat)。

wz1wpwve

wz1wpwve3#

-文本
用法:hadoopfs-text获取源文件并以文本格式输出该文件。允许的格式是zip和textrecordinputstream。
-猫
用法:hadoopfs-caturi[uri…]将源路径复制到stdout。
-得到
用法:hadoop fs-get[-ignorecrc][-crc]将文件复制到本地文件系统。未通过crc检查的文件可以使用-ignorecrc选项进行复制。可以使用-crc选项复制文件和crc。

相关问题