file - hadoop fs -text vs hadoop fs -cat vs hadoop fs -get

标签 file hadoop hdfs

我相信以下所有命令都可用于将 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 作业的输出,这在我的用例中通常较小)。

最佳答案

-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

使用猫:

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

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

关于file - hadoop fs -text vs hadoop fs -cat vs hadoop fs -get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25919999/

相关文章:

hadoop - 从 hdfs 与本地目录读取文件

hadoop - hdfs - ls : Failed on local exception: com. google.protobuf.InvalidProtocolBufferException:

javascript - 使用 Multer - 如何读取上传的文件 (text/.csv)

scala - 错误 : not found: value assemblyJarName in assembly

sql - HIVE SELECT 可以结合 GROUP BY 和 ORDER BY 吗?

java - 访问本地磁盘上的外部 jar 的最佳方式

java - 打开文件名中包含外来字符的文件

java - 如何在java中列出200万个文件目录而不会出现 "out of memory"异常

Java:单行代码将内容添加到声明的 File[] 中?

bash - Hadoop 2.7.1安装没有bashrc吗?