前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

适合使用 Sqoop 的场景

Apache Sqoop 可以用来满足大数据中的多种数据传输需求,这些场景中, HDFS 作为主要的数据存储手段,用于存储来自各种源系统的数据。

下面列举了一些案例,在这些场景中使用 Sqoop 更有意义

  1. 对于 RDBMS 与 Hadoop ( HDFS / Hive / HBase )数据传输,例如常规的批处理,或近似批处理,比较适合使用 Apache Sqoop 。
    Apache Sqoop 是数据获取层的一种主要的被广为使用的工具。
  2. 从 MongoDB 、 Cassandra 之类的 NOSQL 数据库传输数据到 Hadoop 文件系统中。
  3. 拥有大量依赖关系数据库的应用软件的企业, Sqoop 是传输数据到数据湖中的最佳选项。
  4. Hadoop 是一个存储海量数据的事实上的标准。 Sqoop 允许用户轻松地从传统数据库导入数据到 HDFS 中。
  5. 如果需要考虑传输性能时,适合使用 Sqoop ,因为它可以对数据进行分割,并行进行传输。
  6. Sqoop 中有 connectorI 的概念,如果企业中有多种依赖不同数据库的应用程序 Sqoop 是一个理想的选择。

Apache Sqoop 项目已经被 Apache 基金会终止,故 Apache Sqoop 后续已经得不到更新。

不适合使用 Sqoop 的场景

当业务极度依赖如 Oracle 、 MYSQL 、 Postgresql 、 Teradata 之类的关系数据库时, Sqoop 是最合适的配套工具。

Sqoop 并不是特别适合处理事件驱动型数据。

对于事件驱动型数据,适合使用 Apache Flume 而不是 Sqoop 。

下面列举了一些主要的不适合使用 Sqoop 的场景:

  1. 事件驱动型数据。
  2. 多源流式数据的处理与传输,如使用 JMS 从源系统传输过来的流式数据。
  3. 处理实时数据而不是处理批量/小批量数据。
  4. 处理宿主在 Web 服务器上的各种应用程序产生的日志形式的数据。
  5. 如果当 Sqoop job 执行时,源系统不能承受较大的压力,那么应避免使用 Sqoop 。同样地,当批处理任务中数据量特别大时,会给源系统带来更大的压力,这通常不是用户所期望的。
上一篇 下一篇