3

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

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

sqoop 导入 --connect ... --username ... --table ...

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

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

4

1 回答 1

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 的脚本
于 2016-01-12T15:20:49.610 回答