将文件导入HDFS的不同方法

时间:2015-09-26 06:29:52

标签: hadoop import hdfs

我想知道将数据导入HDFS的不同方法是什么。

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

2 个答案:

答案 0 :(得分:10)

有很多关于如何将数据提取到HDFS的方法,让我试着在这里说明一下:

  1. hdfs dfs -put - 将文件从本地文件系统插入HDFS的简单方法
  2. HDFS Java API
  3. Sqoop - 用于将数据传入数据库/从数据库传输数据
  4. Flume - 流媒体文件,日志
  5. Kafka - 分布式队列,主要用于近实时流处理
  6. Nifi - 在Apache上孵化项目,无需进行大量更改即可将数据移入HDFS
  7. 将Web应用程序日志引入HDFS的最佳解决方案是通过Flume。

答案 1 :(得分:1)

我们有三种不同的data - 结构化(基于模式的系统,如Oracle / MySQL等),非结构化(图像,网络日志等)和半结构化数据(XML等)

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

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

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

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

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

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

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

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

Other tools包括 Chukwa,Storm和Kafka

但其他重要的技术,即Spark变得非常受欢迎。这是一个朋友& Hadoop的敌人。

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