也许这是一个noob问题,但是除了复制到本地和通过unix读取之外,还有没有其他方法可以读取hdfs中文件的内容呢?所以现在我要做的是:
bin/hadoop dfs -copyToLocal hdfs/path local/path nano local/path
我想知道我是否可以直接打开一个文件到hdfs而不是复制它在本地然后打开它。
eh57zj3b1#
如果您使用的是hadoop2.x,那么可以使用
hdfs dfs -cat <file>
juzqafwq2#
我通常使用
$ hdfs dfs -cat <filename> | less
这也有助于我在查看内容时搜索单词以找到我感兴趣的内容。对于不太与上下文无关的目的,比如知道文件中是否存在某个特定的单词,或者计算单词的出现次数,我使用。
$ hdfs dfs -cat <filename> | grep <search_word>
注: grep 也有 -C 上下文选项,带 -A 以及 -B 对于赛后/赛前的线路。
grep
-C
-A
-B
aij0ehis3#
我相信 hadoop fs -cat <file> 我应该做这项工作。
hadoop fs -cat <file>
hgncfbus4#
如果文件大小很大(大多数情况下都是这样),那么通过执行“cat”操作,您就不想通过抛出文件的全部内容来炸毁您的终端。相反,使用管道只获取文件的几行。为了获得文件的前10行,hadoop fs-cat'file path'| head-10为了获得文件的最后5行,hadoop fs-cat'file path'| tail-5
iq3niunx5#
ssh到emr集群 ssh hadoop@emrClusterIpAddress -i yourPrivateKey.ppk 运行此命令 /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 列出我们刚刚创建的目录的内容,它现在应该有一个新的日志文件[hadoop@ip-1-2-3-4 bin]$hdfs dfs-ls/eventlogging找到1个项目-rwxrwx---1 hadoop hadoop 53409 2019-05-21 20:56/eventlogging/application\u 1557435401803\u 0106现在查看文件运行 hdfs dfs -cat /eventLogging/application_1557435401803_0106 资源:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/hdfscommands.html
ssh hadoop@emrClusterIpAddress -i yourPrivateKey.ppk
/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
hdfs dfs -cat /eventLogging/application_1557435401803_0106
8cdiaqws6#
hadoop dfs -cat <filename> or hadoop dfs -cat <outputDirectory>/*
6条答案
按热度按时间eh57zj3b1#
如果您使用的是hadoop2.x,那么可以使用
juzqafwq2#
我通常使用
这也有助于我在查看内容时搜索单词以找到我感兴趣的内容。
对于不太与上下文无关的目的,比如知道文件中是否存在某个特定的单词,或者计算单词的出现次数,我使用。
注:
grep
也有-C
上下文选项,带-A
以及-B
对于赛后/赛前的线路。aij0ehis3#
我相信
hadoop fs -cat <file>
我应该做这项工作。hgncfbus4#
如果文件大小很大(大多数情况下都是这样),那么通过执行“cat”操作,您就不想通过抛出文件的全部内容来炸毁您的终端。相反,使用管道只获取文件的几行。
为了获得文件的前10行,hadoop fs-cat'file path'| head-10
为了获得文件的最后5行,hadoop fs-cat'file path'| tail-5
iq3niunx5#
ssh到emr集群
ssh hadoop@emrClusterIpAddress -i yourPrivateKey.ppk
运行此命令/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
列出我们刚刚创建的目录的内容,它现在应该有一个新的日志文件[hadoop@ip-1-2-3-4 bin]$hdfs dfs-ls/eventlogging找到1个项目-rwxrwx---1 hadoop hadoop 53409 2019-05-21 20:56/eventlogging/application\u 1557435401803\u 0106
现在查看文件运行
hdfs dfs -cat /eventLogging/application_1557435401803_0106
资源:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/hdfscommands.html8cdiaqws6#