hadoop—如果我们在sqoop中使用6Map器从oracle导入数据,那么sqoop和源之间将建立多少连接

nfg76nw0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(673)

如果我们在sqoop中使用6mapper从oracle导入数据,那么sqoop和source之间将建立多少连接。
它将是一个单一的连接或它将是每个Map器6个连接。

44u64gxh

44u64gxh1#

这可能取决于经理,但我想他们都可能创造一个。以directpostgressqlmanager为例。它通过psql副本为每个Map器创建一个连接到stdout请查看sqoop管理器中的管理器

0yycz8jy

0yycz8jy2#

每个map任务将获得一个db连接。所以在你的例子中6个Map然后6个连接。请访问github/sqoop了解它是如何实现的
-m指定将作为作业的一部分运行的Map器任务数。所以Map器的数量越多,连接的数量就越多。

xjreopfe

xjreopfe3#

根据sqoop文件:
同样,不要将平行度提高到数据库可以合理支持的水平以上。将100个并发客户机连接到数据库可能会增加数据库服务器的负载,从而影响性能。
这意味着所有的Map程序都将进行并发连接。
还要记住,如果您的表只有2条记录,那么sqoop将只使用2个Map器而不是全部6个Map器。
查看我的另一个答案,了解sqoop命令中Map器数量的概念。

编辑:

所有Map程序都将作为jdbc客户端程序进行非活动连接。然后活动连接(实际上触发sql查询)将在多个Map器之间共享。
中的fire sqoop import命令 -verbose 模式,您将看到日志-

DEBUG manager.OracleManager$ConnCache: Got cached connection for jdbc:oracle:thin:@192.xx.xx.xx:1521:orcl/dev

DEBUG manager.OracleManager$ConnCache: Caching released connection for jdbc:oracle:thin:@192.xx.xx.xx:1521:orcl/dev

有关详细信息,请检查getconnection和recycle方法。

相关问题