【问题标题】:Best way to import 20GB CSV file to Hadoop将 20GB CSV 文件导入 Hadoop 的最佳方法
【发布时间】:2017-03-29 12:12:09
【问题描述】:

我有一个巨大的 20GB CSV 文件要复制到 Hadoop/HDFS 中。当然,我需要管理任何错误情况(如果服务器或传输/加载应用程序崩溃)。

在这种情况下,我需要重新开始处理(是否在另一个节点中)并继续传输,而不是从头开始启动 CSV 文件。

最好和最简单的方法是什么?

使用 Flume?斯库普?本机 Java 应用程序?火花?

非常感谢。

【问题讨论】:

  • 你为什么不使用 distcp ?除非你想在做检查点时以流的形式读取数据
  • 因为我的 src 文件 (20gb) 不在 hadoopn 上 WebHDFS 是否适合大文件?
  • 我从未尝试过 WebHDFS,但我相信 Hadoop 能够使用 distcp 在分布式事务中从本地复制到 hdfs
  • distcp 适用于 HDFS 到 HDFS,但是,它不提供 MapReduce 的高并行性,因为输入数据驻留在本地。您对我的问题有其他解决方案吗? chokrane ;)

标签: java hadoop apache-spark sqoop flume


【解决方案1】:

如果文件不在 HDFS 中,flume 将无法并行化该文件(Spark 或其他基于 Hadoop 的框架也存在同样的问题)。您可以将 HDFS 挂载到 NFS 上,然后使用文件复制吗?

使用flume读取的一个优点是读取文件并将每一行作为单独的记录发布并发布这些记录并让flume一次将一条记录写入HDFS,如果出现问题,您可以从该记录开始的从头开始。

【讨论】:

    猜你喜欢
    • 2016-09-29
    • 1970-01-01
    • 2012-03-15
    • 2017-03-11
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多