使用SQOOP连接DB2时的连接管理器及URL语法错误问题咨询
解决Sqoop与DB2交互的两个问题
咱们先处理第一个警告问题:
1. DB2对应的--connection-manager参数值
当你指定--driver参数但没明确设置连接管理器时,Sqoop会自动 fallback 到通用的GenericJdbcManager,这就是你看到警告的原因。DB2专属的连接管理器类是**org.apache.sqoop.manager.DB2Manager**。
修改后的list-databases命令如下:
sqoop list-databases --connect 'jdbc:db2://DB_IP:PORT/' --username xxx --password xxx --driver com.ibm.db2.jcc.DB2Driver --connection-manager org.apache.sqoop.manager.DB2Manager
2. 修复JDBC URL语法错误
你遇到的Invalid database URL syntax错误,根源在于DB2的JDBC URL格式不符合要求:
- 末尾多余的斜杠需要去掉
- 必须指定要连接的具体数据库名称
DB2标准JDBC URL格式为:jdbc:db2://DB_IP:PORT/DB_NAME
另外注意你原来的命令里-password少了一个横杠,正确写法是--password。修改后的import命令如下:
sqoop import -libjars <path to>/db2jcc4.jar --connect 'jdbc:db2://DB_IP:PORT/your_db_name' --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
记得把your_db_name替换成你实际要连接的DB2数据库名称。
内容的提问来源于stack exchange,提问作者user3521180
相关产品推荐
相关产品推荐

