直接从 HDFS 读取文件
Posted
技术标签:
【中文标题】直接从 HDFS 读取文件【英文标题】:Read File directly from HDFS 【发布时间】:2017-05-23 10:38:40 【问题描述】:有没有办法通过使用HDFS路径直接从HDFS读取任何文件格式,而不必从HDFS本地拉文件并读取它。
【问题讨论】:
【参考方案1】:您可以在 HDFS 上使用cat
命令读取常规文本文件。
hdfs dfs -cat /path/to/file.csv
要读取gz, bz2
等压缩文件,您可以使用:
hdfs dfs -text /path/to/file.gz
这是 Hadoop 使用 FsShell
comamnds 原生支持的两种读取方法。对于其他复杂的文件类型,您将不得不使用更复杂的方式,例如 Java 程序或类似的东西。
【讨论】:
【参考方案2】:hdfs dfs -cat /path 或 hadoop fs -cat /path
【讨论】:
【参考方案3】:您必须提取整个文件。无论您使用cat
还是text
命令,整个文件仍在流式传输到您的shell。命令结束时,文件没有任何残留。所以,如果你打算多次检查文件,最好get
它
作为 hdfs 客户端,您必须联系 namenode 以获取特定文件的所有块位置。
【讨论】:
标记为答案,因为它补充了所有其他答案【参考方案4】:你可以试试 hdfs dfs -cat
用法:hdfs dfs -cat [-ignoreCrc] URI [URI ...]
hdfs dfs -cat /your/path
【讨论】:
以上是关于直接从 HDFS 读取文件的主要内容,如果未能解决你的问题,请参考以下文章