Sqoop vs Sqoop2命令

时间:2016-01-12 08:31:56

标签: sqoop2 sqoop

迁移到Sqoop2的一个优点是我们不与客户共享数据库凭据。

现在,当我们执行Sqoop命令时,它们如下所示:

  

sqoop import --connect ... --username ... --table ...

当我们升级到Sqoop2时,我们也执行相同的命令,除了连接字符串将指向Sqoop2服务器而不是实际的RDBMS(参与传输),凭据将是Sqoop2服务器。

在这里,我们还与所有客户共享Sqoop2服务器的凭据。它是否违反了我们创建Sqoop2的基本原则?

1 个答案:

答案 0 :(得分:0)

  • 在Sqoop中,有权访问hadoop群集的人将知道数据库凭据,因为它必须是硬编码的
  • 在Sqoop2中,只有管理群集的管理员才能知道数据库凭据。开发人员无需知道密码。
  • 在Sqoop客户端可以直接在集群上提交作业,没有服务器概念。这意味着您需要在Sqoop客户端上安装JDBC jar文件。一旦您拥有数据库凭据并且jar文件位于同一防火墙中,安全性就很容易在Sqoop之外被破坏。
  • 在Sqoop2客户端不会直接提交作业,它会指向服务器和服务器将提交作业。因此Sqoop服务器,数据库和hadoop集群可以在防火墙后面,只有Sqoop服务器端口才能打开到Sqoop2客户端。因此,用户无法通过登录Sqoop外部的数据库来破坏安全性(即使他们知道数据库凭据并且拥有jdbc jar)。

除了额外的安全性之外,它还有这个主要区别:

  • Sqoop无法与hue等Web界面集成,因为它遵循仅客户端架构
  • Sqoop2在客户端服务器架构上运行。服务器作为Web应用程序运行,因此像Hue这样的工具实际上可以用来开发基于sqoop的脚本