查看hdfs hadoop中的文件内容

时间:2013-02-17 19:47:37

标签: hadoop

可能是一个菜鸟问题,但有没有办法在hdfs中读取文件的内容,除了复制到本地和通过unix阅读?

现在我正在做的是:

  bin/hadoop dfs -copyToLocal hdfs/path local/path

  nano local/path

我想知道我是否可以直接打开文件到hdfs而不是在本地复制然后打开它。

由于

6 个答案:

答案 0 :(得分:47)

我相信hadoop fs -cat <file>应该完成这项工作。

答案 1 :(得分:12)

如果文件大小很大(大多数时候都是这种情况),可以通过“cat&#39;你不想通过抛出文件的全部内容来炸毁你的终端。相反,使用管道并只获得文件的几行。

要获取文件的前10行, hadoop fs -cat&#39;文件路径&#39; |头-10

要获取文件的最后5行, hadooop fs -cat&#39;文件路径&#39; |尾-5

答案 2 :(得分:4)

hadoop dfs -cat <filename>  or    hadoop dfs -cat <outputDirectory>/*

答案 3 :(得分:4)

如果您使用的是hadoop 2.x,则可以使用

hdfs dfs -cat <file>

答案 4 :(得分:1)

我通常使用

.inc

这也有助于我在查看内容时搜索单词以找到自己感兴趣的内容。

出于较少的上下文无关目的,例如知道文件中是否存在特定单词或计算单词出现次数,我使用

$ hdfs dfs -cat <filename> | less

注意:$ hdfs dfs -cat <filename> | grep <search_word> 也有grep的上下文选项,-C-A的匹配项是在比赛之后/之前。

答案 5 :(得分:0)

  1. SSH到您的EMR群集/usr/lib/spark/bin/spark-shell --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://yourEmrClusterIpAddress:8020/eventLogging --class org.apache.spark.examples.SparkPi --master yarn --jars /usr/lib/spark/examples/jars/spark-examples_2.11-2.4.0.jar
  2. 运行此命令hdfs dfs -cat /eventLogging/application_1557435401803_0106
  3. 列出我们刚刚创建的目录的内容,现在应该从我们刚才的运行中获得一个新的日志文件

    [hadoop @ ip-1-2-3-4 bin] $ hdfs dfs -ls / eventLogging 找到1项 -rwxrwx --- 1 hadoop hadoop 53409 2019-05-21 20:56 / eventLogging / application_1557435401803_0106

  4. 现在可以查看文件运行{{1}}

资源https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html