Flume和Sqoop都适用于数据移动,那么它们之间有什么区别?我应该在什么条件下使用Flume或Sqoop?Flume和Sqoop有什么区别?
回答
水槽是分布式的,可靠的,并且可用于 服务有效地收集,聚集,和移动大量的日志 数据。
Flume有助于从各种来源收集数据,如日志,jms,目录等。
可以配置多个水槽代理以收集大量数据。
水平缩放。
阿帕奇Sqoop(TM)是被设计为Apache Hadoop和结构化的数据存储如 关系数据库之间高效传输批量数据 的工具。
Sqoop有助于在hadoop和其他数据库之间移动数据,并且它可以并行传输数据以提高性能。
Flume: 一个非常常见的用例是从一个系统(一组Web服务器)中收集日志数据(将其聚合在HDFS中供以后分析)。
Sqoop: 另一方面,它设计用于执行从结构化数据存储区向HDFS批量导入数据。简单的用例将是一个每晚运行sqoop导入的组织,以将来自生产数据库的当天数据加载到Hive数据仓库进行分析。
- 来自权威指南。
Sqoop和Flume都将数据从源中提取出来并推送到接收器。主要区别是Flume是事件驱动的,而Sqoop不是。
水槽:
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
Sqoop和水槽都旨在满足数据需求的摄取,但他们的目的不同。 Apache Flume适用于在hadoop环境中连续生成的流式数据源,例如来自多个服务器的日志文件,而Apache Sqoop可以很好地与任何RDBMS配合使用JDBC连接。
Sqoop实际上是指hadoop和任何其他结构化数据存储之间的批量数据传输。 Flume从许多来源收集日志数据,将其汇总并写入HDFS。
Sqoop
- Sqoop可以从RDBMS执行导入/导出到HDFS -
我碰到了这个有趣的信息图表,解释Sqoop and Flume两个Apache项目之间的差异来/ HIVE/HBASE
- 仅限sqoop导入/导出结构化数据否t非结构化或半结构化 。
水槽
- 来自多个源的多为半结构化和在自然界中 非结构化进口流数据。现在Kafka是更好的水槽替代品。
- 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用于收集和聚合数据的地方快速复制数据,因为它具有分布式,可靠性和高度可用的备份路径。
- 1. SQOOP中的--split-by和--boundary-query有什么区别?
- 2. sqoop导入到hdfs和配置单元有什么区别?
- 3. 有什么区别`和$(Bash中有什么区别?
- 4. 有什么区别? :和||
- 5. &&和||有什么区别?
- 6. “/”和“/ *”有什么区别?
- 7. 有什么区别:。!和:r!?
- 8. ==和===有什么区别?
- 9. Appender和〜有什么区别?
- 10. $ @和$ *有什么区别?
- 11. is和=有什么区别?
- 12. #.00和#。##有什么区别?
- 13. `==`和`is`有什么区别?
- 14. '=='和'==='有什么区别?
- 15. /和/#/有什么区别?
- 16. | 0和~~有什么区别?
- 17. `&`和`ref`有什么区别?
- 18. ==和===有什么区别?
- 19. ==和===有什么区别?
- 20. `{}`和`[]`有什么区别?
- 21. JavaScript和=== ===有什么区别?
- 22. difftime和' - '有什么区别?
- 23. =和==有什么区别?
- 24. xtype和别名有什么区别?
- 25. Mixpanel:识别()和people.identify()有什么区别?
- 26. 在Apache Hadoop和Cloudera Hadoop中安装Apache apache sqoop有什么区别?
- 27. 有什么区别
- 28. 有什么区别
- 29. 有什么区别?
- 30. 有什么区别?
另请参阅此更详细的答案:http://stackoverflow.com/a/27162647/1026 – Nickolay
@Nickolay感谢您分享链接。您可能想与提问的用户分享? – techuser
OP可能已经知道了其中的差异,因此我将其与可能在此页面上绊倒的其他人分享。也许我滥用了评论,但是觉得这更像是评论这里的最佳答案,而不是这个问题。希望它不会打扰你! – Nickolay