2013-10-22 15 views

回答

20

http://flume.apache.org/

水槽是分布式的,可靠的,并且可用于 服务有效地收集,聚集,和移动大量的日志 数据。

Flume有助于从各种来源收集数据,如日志,jms,目录等。
可以配置多个水槽代理以收集大量数据。
水平缩放。

http://sqoop.apache.org/

阿帕奇Sqoop(TM)是被设计为Apache Hadoop和结构化的数据存储如 关系数据库之间高效传输批量数据 的工具。

Sqoop有助于在hadoop和其他数据库之间移动数据,并且它可以并行传输数据以提高性能。

+3

另请参阅此更详细的答案:http://stackoverflow.com/a/27162647/1026 – Nickolay

+0

@Nickolay感谢您分享链接。您可能想与提问的用户分享? – techuser

+2

OP可能已经知道了其中的差异,因此我将其与可能在此页面上绊倒的其他人分享。也许我滥用了评论,但是觉得这更像是评论这里的最佳答案,而不是这个问题。希望它不会打扰你! – Nickolay

3

Flume: 一个非常常见的用例是从一个系统(一组Web服务器)中收集日志数据(将其聚合在HDFS中供以后分析)。

Sqoop: 另一方面,它设计用于执行从结构化数据存储区向HDFS批量导入数据。简单的用例将是一个每晚运行sqoop导入的组织,以将来自生产数据库的当天数据加载到Hive数据仓库进行分析。

- 来自权威指南。

7

Sqoop和Flume都将数据从源中提取出来并推送到接收器。主要区别是Flume是事件驱动的,而Sqoop不是。

4

水槽:

Flume is a framework for populating Hadoop with data. Agents are populated 
    throughout ones IT infrastructure – inside web servers, application servers 
    and mobile devices, for example – to collect data and integrate it into Hadoop. 

Sqoop:

Sqoop is a connectivity tool for moving data from non-Hadoop data stores – such 
    as relational databases and data warehouses – into Hadoop. It allows users to 
    specify the target location inside of Hadoop and instruct Sqoop to move data 
    from Oracle,Teradata or other relational databases to the target. 

你可以看到完整的Post

0

Sqoop和水槽都旨在满足数据需求的摄取,但他们的目的不同。 Apache Flume适用于在hadoop环境中连续生成的流式数据源,例如来自多个服务器的日志文件,而Apache Sqoop可以很好地与任何RDBMS配合使用JDBC连接。

Sqoop实际上是指hadoop和任何其他结构化数据存储之间的批量数据传输。 Flume从许多来源收集日志数据,将其汇总并写入HDFS。

Difference between Sqoop and Flume

0

Sqoop


  • Sqoop可以从RDBMS执行导入/导出到HDFS -

    我碰到了这个有趣的信息图表,解释Sqoop and Flume两个Apache项目之间的差异来/ HIVE/HBASE

  • 仅限sqoop导入/导出结构化数据否t非结构化或半结构化 。

水槽


  • 来自多个源的多为半结构化和在自然界中 非结构化进口流数据。现在Kafka是更好的水槽替代品。
0
  1. Apache Sqoop和Apache Flume可以处理各种数据源。 Flume在流式数据源中运行良好,这些数据源在hadoop环境中连续生成,例如来自多个服务器的日志文件。

而Apache Sqoop旨在与具有JDBC连接的任何种类的关系数据库系统一起使用。

  • Sqoop还可以导入从NoSQL数据库等的MongoDB或卡桑德拉数据,并且还允许直接数据传输或蜂巢或HDFS。为了使用Apache Sqoop工具将数据传输到Hive,必须创建一个表,为其从数据库本身获取模式。

  • 在Apache中水槽数据加载事件中的Apache Sqoop数据负载驱动,而不是由事件驱动的。

  • 4.Flume是一个更好的选择从像JMS各种来源移动散装流数据时或假脱机目录而Sqoop是再合适不过的数据是否坐在像的Teradata,Oracle,MySQL等服务器,Postgres的或数据库任何其他JDBC兼容的数据库,那么最好使用Apache Sqoop。

    5.In阿帕奇水槽,数据通过多个信道,而在Apache的Sqoop HDFS是用于导入数据的目标流至HDFS。

    6.Apache水槽具有基于代理的架构即写在水槽的代码被称为代理负责,而在Apache的Sqoop的体系结构是基于连接器获取数据。 Sqoop中的连接器知道如何连接各种数据源并相应地获取数据。

    最后,Sqoop和水槽不能用于实现相同的任务,因为它们是专门开发用于不同的目的。 Apache Flume代理旨在获取流式数据,例如来自Twitter的推文或来自Web服务器的日志文件,而Sqoop连接器仅用于结构化数据源并从中获取数据。

    Apache Sqoop主要用于并行数据传输,用于数据导入,因为它在Apache Flume用于收集和聚合数据的地方快速复制数据,因为它具有分布式,可靠性和高度可用的备份路径。