我正在学习Hadoop,并且几乎没有关于将数据从关系数据库移动到Hadoop的概念,反之亦然。 我使用SQOOP导入查询将文件从MySQL传输到HDFS。我传输的文件是结构化数据集,而不是任何服务器日志数据。我最近读到我们通常使用flume将日志文件移动到Hadoop中, 我的问题是: 1.我们是否也可以使用SQOOP来移动日志文件? 2.如果是,SQOOP或FLUME中哪一个更适合日志文件,为什么?
答案 0 :(得分:3)
1)Sqoop可用于在任何rdbms和hdfs之间传输数据。要使用scoop,数据必须通常由导入或导出数据的数据库模式指定。根据日志的来源和类型,日志文件并不总是结构化的,因此sqoop不用于移动日志文件。
2)Flume可以收集,汇总来自许多不同类型的可定制数据源的数据。在存储到hdfs之前,它可以更灵活地控制在用户定义的工作流中捕获和使用的特定事件。
我希望它澄清了sqoop和flume之间的区别。
答案 1 :(得分:2)
SQOOP旨在将数据从RDMS传输到HDFS,而FLUME则用于传输大量日志数据。
两者都是不同的,专门用于不同的目的。
喜欢
您可以使用SQOOP通过JDBC导入数据(在FLUME中无法做到), 和 您可以使用FLUME来表示类似"我想从此服务器中拖出200行日志文件"。
在此处阅读有关FLUME的更多信息 http://flume.apache.org/
答案 2 :(得分:1)
SQOOP不仅从RDBMS传输数据,还从MongoDB等NOSql数据库传输数据。您可以直接将数据传输到HDFS或Hive。
将数据传输到Hive,您无需事先创建表。它采用数据库本身的方案。
Flume用于获取日志数据或流数据