下面是列出db2数据库的sqoop命令:
sqoop list-databases --connect 'jdbc:db2://DB_IP:PORT/' --username xxx --password xxx --driver com.ibm.db2.jcc.DB2Driver
但我得到以下错误:
WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
什么是--db2连接管理器?
更改了sqoop语法
sqoop import -libjars <path to>/db2jcc4.jar --connect 'jdbc:db2://DB_IP:PORT/' --username xxx -password xxx -m 1 --table db2_DB_name.db2_tbl_name --hive-overwrite --hive-import --hive-database amitesh_db --hive-table amitesh_db2test --target-dir <path_to>/db2test --as-parquetfile
下面是我收到的错误:
ERROR manager.SqlManager: Error executing statement: com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][10165][10047][x.xx.xx] Invalid database URL syntax: jdbc:db2://<db_ip>:<port>/. ERRORCODE=-4461, SQLSTATE=42815
com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][10165][10047][4.17.28] Invalid database URL syntax: jdbc:db2://<db_ip>:<port>/. ERRORCODE=-4461, SQLSTATE=42815
1条答案
按热度按时间zbdgwd5y1#
问题在于jdbcjar,对于db2,您必须将jar添加到/var/lib/sqoop并授予适当的权限。您显示的日志/错误快照不是一个错误,只是一个警告。
请按照以下步骤添加jar,并参考sqoop示例来构建sqoop代码/命令。
1>>>从这里或您可以找到的任何地方下载db2jcc.jar和db2jcc\u license\u cisuz.jar。
2>>>跨集群(数据节点和边缘节点)将两个jar推送到/var/lib/sqoop,sqoop应该具有jar的读取和执行权限。
下面是您可以使用的sqoop示例,利用下面代码的libjars部分。
请注意,sqoop不支持db2数据库中的列表数据库。在正式的sqoop文档中 checkout 。
注:来自sqoop文档
这只适用于hsqldb、mysql和oracle。与oracle一起使用时,连接到数据库的用户必须具有dba权限。