如何将-text HDFS命令的输出复制到另一个文件中?

时间:2014-08-22 04:24:29

标签: hadoop hdfs sequencefile

有没有办法可以使用HDFS命令将hdfs文件的文本内容复制到另一个文件系统中:

 hadoop fs -text /user/dir1/abc.txt

我可以使用-cat或任何方法将-text的输出打印到另一个文件中吗?:

 hadoop fs -cat /user/deepak/dir1/abc.txt 

4 个答案:

答案 0 :(得分:2)

正如documentation中所写,您可以使用hadoop fs -cp复制hdfs中的文件。您可以使用hadoop fs -copyToLocal将文件从hdfs复制到本地文件系统。如果您要将文件从一个hdfs复制到另一个{{1}},请使用DistCp tool

答案 1 :(得分:0)

作为常规命令行提示,您可以将|用于其他程序,或将>>>用于文件,例如

# Will output to standard output (console) and the file /my/local/file
# this will overwrite the file, use ... tee -a ... to append
hdfs dfs -text /path/to/file | tee /my/local/file

# Will redirect output to some other command
hdfs dfs -text /path/to/file | some-other-command

# Will overwrite /my/local/file
hdfs dfs -text /path/to/file > /my/local/file

# Will append to /my/local/file
hdfs dfs -text /path/to/file >> /my/local/file

答案 2 :(得分:0)

谢谢我在hadoop-home lib文件夹中使用了流式jar示例,如下所示:

hadoop -jar hadoop-streaming.jar -input hdfs://namenode:port/path/to/sequencefile \
-output /path/to/newfile -mapper "/bin/cat" -reducer "/bin/cat" \
-file "/bin/cat" -file "/bin/cat" \
-inputformat SequenceFileAsTextInputFormat

你可以使用" / bin / wc"如果您想计算hdfs序列文件中的行数。

答案 3 :(得分:0)

您可以使用以下内容:

  1. copyToLocal
    hadoop dfs -copyToLocal /HDFS/file /user/deepak/dir1/abc.txt
  2. getmerge
    hadoop dfs -getmerge /HDFS/file /user/deepak/dir1/abc.txt
  3. 获得
    hadoop dfs -get /HDFS/file /user/deepak/dir1/abc.txt