Sqoop:当一些节点获胜时';你不能直接访问JDBC吗?

Sqoop:当一些节点获胜时';你不能直接访问JDBC吗?,jdbc,mapreduce,sqoop,Jdbc,Mapreduce,Sqoop,1) Im使用sqoopimport all命令 2) 我有一个场景,我想从一个本地可用的sqoop源进行ETL,然后进入一个分布式的hadoop集群。。。启动ETL的机器将有权访问JDBC源,但集群上的所有从机都无权访问JDBC源 我的问题是: 有没有一种方法可以配置Sqoop来流式传输来自单个JDBC连接的所有数据(可能这意味着只使用一个映射器,但我想指示Sqoop这样做,而不是进行一些mapreduce配置黑客操作)。我可以想象出两种选择: 1) 获取一个SQL代理,将其安装在保证访问数据

1) Im使用sqoopimport all命令

2) 我有一个场景,我想从一个本地可用的sqoop源进行ETL,然后进入一个分布式的hadoop集群。。。启动ETL的机器将有权访问JDBC源,但集群上的所有从机都无权访问JDBC源

我的问题是:


有没有一种方法可以配置Sqoop来流式传输来自单个JDBC连接的所有数据(可能这意味着只使用一个映射器,但我想指示Sqoop这样做,而不是进行一些mapreduce配置黑客操作)。

我可以想象出两种选择:

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


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

您可以通过为要用于打开JDBC连接的单个服务器(运行NodeManager)设置一个来控制此选项。然后,在运行Sqoop作业时,请确保将其提交到与该节点标签关联的

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