0

1)我使用 sqoop import-all命令。

2)我有一个场景,我想从本地可用的 sqoop 源执行 ETL到分布式hadoop 集群......启动 ETL 的机器将可以访问 JDBC 源,但不能保证集群上的所有从属都将拥有访问 JDBC 源。

我的问题是:

有没有办法可以将 Sqoop 配置为从单个 JDBC 连接流式传输所有数据(可能这意味着只使用一个映射器,但我喜欢指示 sqoop 执行此操作,而不是做一些 mapreduce 配置黑客操作)。

4

2 回答 2

1

我可以从头顶想象两种选择:

1) 获取一个 SQL 代理,将其安装在您保证可以访问数据库的节点上,并将该代理用于 Sqoop 连接。

2) 使用 Hadoop 本地模式和一个映射器运行 ​​Sqoop,以确保执行永远不会离开您的计算机。但是,此选项效率非常低,因此我不建议将其用于生产用途。

于 2013-11-13T16:19:16.697 回答
0

您可以通过为您希望用于打开 JDBC 连接的单个服务器(运行 NodeManager)设置YARN 节点标签来控制这一点。然后,当您运行 Sqoop 作业时,请务必将其提交到与该节点标签关联的容量调度程序队列。

这应该将 JDBC 连接限制为仅标记有 YARN 节点标签的服务器。

于 2015-03-11T18:50:07.887 回答