【问题标题】:Splitting a file on Hadoop在 Hadoop 上拆分文件
【发布时间】:2015-12-22 09:07:46
【问题描述】:

我在 hadoop 集群上有一个 8.8G 文件,我正在尝试提取某些行用于测试目的。

看到Apache Hadoop 2.6.0没有split命令,我怎么能不用下载文件。

如果文件在我会使用的 linux 服务器上:

$ csplit filename %2015-07-17%

前面的命令可以正常工作,在 Hadoop 上是否可以实现?

【问题讨论】:

    标签: hadoop split csplit


    【解决方案1】:

    您可以结合使用 unix 和 hdfs 命令。

    hadoop fs -cat filename.dat | head -250 > /redirect/filename
    

    或者,如果文件的最后 KB 足够,您可以使用它。

    hadoop fs -tail filename.dat > /redirect/filename
    

    【讨论】:

    • 甚至不现实,该文件中有大约 54M 行,而我提取的数据远不及 head -250
    • HDFS 并没有为您提供太多的命令行功能。如果您想探索,那么这可能是一种方式,除非并且直到您将文件带到本地。否则猪(有限制)或 MR 脚本会满足你的需要。
    • 我只是转移到本地,因为它只有一个文件。如果我有多个文件,那么 MR 将是值得的。谢谢。
    • 但是仍然需要传输8.8G文件。您可以尝试编写一个简单的 PIG 脚本。 A = LOAD 'file' 使用 PigStorage 作为行; B = 限制你的号码; C = STORE B INTO '文件名' ;
    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    相关资源
    最近更新 更多