【问题标题】:Different ways to import files into HDFS将文件导入 HDFS 的不同方法
【发布时间】:2015-11-01 05:24:20
【问题描述】:

我想知道可以通过哪些不同方式将数据导入 HDFS。

我是 Hadoop 的新手,直到现在我还是一名 Java Web 开发人员。我想知道我是否有一个正在创建日志文件的 Web 应用程序,如何将日志文件导入 HDFS。

【问题讨论】:

    标签: hadoop import hdfs


    【解决方案1】:

    有很多方法可以将数据摄取到 HDFS 中,让我在这里尝试说明它们:

    1. hdfs dfs -put - 将文件从本地文件系统插入 HDFS 的简单方法
    2. HDFS Java API
    3. Sqoop - 用于将数据传入/传出数据库
    4. Flume - 流式传输文件、日志
    5. Kafka - 分布式队列,主要用于近实时流处理
    6. Nifi - 在 Apache 孵化项目,无需进行大量更改即可将数据移动到 HDFS

    将 Web 应用程序日志引入 HDFS 的最佳解决方案是通过 Flume。

    【讨论】:

    • 谢谢@Ashrith..你能告诉我在一家提供大数据服务的公司中,他们如何将数据导入HDFS?他们是否使用您在此处提到的相同方法。
    • 使用哪种工具取决于您要导入 HDFS 的数据类型。话虽如此,您还可以拥有一个使用多个工具导入数据的管道。例如:Flume+Kafka
    • 谢谢@clyde D'cruz..如果我的公司使用 CRM、ERP 和服务器进行数据存储,有什么方法可以将这些系统中的数据导入 hdfs
    • @Gaurav 是的,上面提到的工具是企业和实施大数据的公司正在使用的工具。对于 CRM、ERP 等系统,数据通常被收集/导出到不同的系统,您可以使用 Flume 流式传输这些文件或使用典型的 hdfs put 命令。如果您遇到大数据问题(数百 TB)或数据仓库卸载,人们通常会使用 Hadoop,如果您不关心这些问题,那么不要为实施 Hadoop 而烦恼。
    【解决方案2】:

    我们有三种不同类型的data - 结构化(基于架构的系统,如 Oracle/MySQL 等)、非结构化(图像、博客等)和半结构化数据(XML 等)

    结构化数据可以存储在数据库SQL中的行列表中

    半结构化数据是不存在于关系数据库中的信息,但它确实具有一些便于分析的组织属性。通过一些过程,您可以将它们存储在关系数据库中(例如 XML)

    非结构化数据通常包括文本和多媒体内容。示例包括电子邮件、文字处理文档、视频、照片、音频文件、演示文稿、网页和许多其他类型的业务文档。

    根据您的数据类型,您将选择将数据导入 HDFS 的工具

    贵公司可能会使用 CRM、ERP 工具。但是我们并不完全知道数据是如何组织和结构化的。

    如果我们留下简单的 HDFS 命令,如 put、copyFromLocal 等来将数据加载到 HDFS 兼容格式,以下是将数据加载到 HDFS 的主要工具

    Apache Sqoop(TM) 是一种工具,旨在高效地在 Apache Hadoop 和结构化数据存储(如关系数据库)之间传输批量数据。使用此工具可以将 MySQL、SQL Server 和 Oracle 表中的数据加载到 HDFS 中。

    Apache Flume 是一种分布式、可靠且可用的服务,用于高效收集、聚合和移动大量日志数据。它具有基于流数据流的简单灵活的架构。它具有可调整的可靠性机制以及许多故障转移和恢复机制,具有健壮性和容错性。

    Other tools 包括 Chukwa、Storm 和 Kafka

    但其他变得非常流行的重要技术是 Spark。它是 Hadoop 的朋友和敌人。

    Spark 正在成为 Hadoop 的一个很好的实时数据处理替代方案,它可能使用也可能不使用 HDFS 作为数据源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-01
      • 2020-02-05
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      相关资源
      最近更新 更多