如果我们在sqoop中使用6mapper从oracle导入数据,那么sqoop和source之间将建立多少连接。它将是一个单一的连接或它将是每个Map器6个连接。
44u64gxh1#
这可能取决于经理,但我想他们都可能创造一个。以directpostgressqlmanager为例。它通过psql副本为每个Map器创建一个连接到stdout请查看sqoop管理器中的管理器
0yycz8jy2#
每个map任务将获得一个db连接。所以在你的例子中6个Map然后6个连接。请访问github/sqoop了解它是如何实现的-m指定将作为作业的一部分运行的Map器任务数。所以Map器的数量越多,连接的数量就越多。
xjreopfe3#
根据sqoop文件:同样,不要将平行度提高到数据库可以合理支持的水平以上。将100个并发客户机连接到数据库可能会增加数据库服务器的负载,从而影响性能。这意味着所有的Map程序都将进行并发连接。还要记住,如果您的表只有2条记录,那么sqoop将只使用2个Map器而不是全部6个Map器。查看我的另一个答案,了解sqoop命令中Map器数量的概念。
所有Map程序都将作为jdbc客户端程序进行非活动连接。然后活动连接(实际上触发sql查询)将在多个Map器之间共享。中的fire sqoop import命令 -verbose 模式,您将看到日志-
-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方法。
3条答案
按热度按时间44u64gxh1#
这可能取决于经理,但我想他们都可能创造一个。以directpostgressqlmanager为例。它通过psql副本为每个Map器创建一个连接到stdout请查看sqoop管理器中的管理器
0yycz8jy2#
每个map任务将获得一个db连接。所以在你的例子中6个Map然后6个连接。请访问github/sqoop了解它是如何实现的
-m指定将作为作业的一部分运行的Map器任务数。所以Map器的数量越多,连接的数量就越多。
xjreopfe3#
根据sqoop文件:
同样,不要将平行度提高到数据库可以合理支持的水平以上。将100个并发客户机连接到数据库可能会增加数据库服务器的负载,从而影响性能。
这意味着所有的Map程序都将进行并发连接。
还要记住,如果您的表只有2条记录,那么sqoop将只使用2个Map器而不是全部6个Map器。
查看我的另一个答案,了解sqoop命令中Map器数量的概念。
编辑:
所有Map程序都将作为jdbc客户端程序进行非活动连接。然后活动连接(实际上触发sql查询)将在多个Map器之间共享。
中的fire sqoop import命令
-verbose
模式,您将看到日志-有关详细信息,请检查getconnection和recycle方法。