我正在尝试创建和执行sqoop job
以从SQLSERVER获取数据并将其导入到Hive中,但是该命令在身份验证过程中失败。但是,如果我使用sqoop import
执行完全相同的命令,它将起作用。
我在做什么错了?
请考虑示例:
$CONNECTION_CFG_DATABASE_USERNAME
和$CONNECTION_CFG_DATABASE_PASSWD
是'admin'
"sqoop job --create $EXTRACTION_NAME -- import --connect '$CONNECTION_CFG_PREFIX_QUERY_STRING$CONNECTION_CFG_DATABASE_IP:$CONNECTION_CFG_SQLSERVER_
PORT;database=$CONNECTION_CFG_DATABASE_NAME' --username $CONNECTION_CFG_DATABASE_USERNAME --password $CONNECTION_CFG_DATABASE_PASSWD --table $CONNECTION_CFG_HIVE_TABLE_
NAME --target-dir $EXTRACTION_TARGET_DIR/$ID --hive-import --hive-database $CONNECTION_CFG_DATABASE_NAME --hive-table $CONNECTION_CFG_HIVE_TABLE_NAME --hive-partition-k
ey $HIVE_TABLE_PARTITION_KEY --hive-partition-value $ID -m $SQOOP_PARALLELISM --check-column $INCREMENTAL_FIELD --incremental lastmodified"
以上一项失败。我得到以下输出:
ERROR manager.SqlManager: Error executing statement: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'admin'. ClientConnectionId:25424a39-dd01-4439-bfc6-d7ef21c8b1a0
但是,下面的这个有效!
"sqoop --import --connect '$CONNECTION_CFG_PREFIX_QUERY_STRING$CONNECTION_CFG_DATABASE_IP:$CONNECTION_CFG_SQLSERVER_PORT;database=$CONNECTION_CFG_DATABASE_NAME' --username $CONNECTION_CFG_DATABASE_USERNAME --password $CONNECTION_CFG_DATABASE_PASSWD --table $CONNECTION_CFG_HIVE_TABLE_NAME --target-dir $EXTRACTION_TARGET_DIR/$ID --hive-import --hive-database $CONNECTION_CFG_DATABASE_NAME --hive-table $CONNECTION_CFG_HIVE_TABLE_NAME --hive-partition-key $HIVE_TABLE_PARTITION_KEY --hive-partition-value $ID -m $SQOOP_PARALLELISM --check-column $INCREMENTAL_FIELD --incremental lastmodified"
我需要使用sqoop job
,因为我不知道last-value
参数的值,我想自动为我自动处理它。
任何帮助将不胜感激。