【发布时间】:2023-03-13 00:18:01
【问题描述】:
我能够使用 sqoop 成功地将数据从 SQL Server 导入 HDFS。但是,当它尝试链接到 HIVE 时,出现错误。我不确定我是否正确理解了错误
sudo -u hdfs sqoop import \
-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--connect "jdbc:sqlserver://XX.XX.X.X:1433;instanceName=data-engr-sql-svr; databaseName=AdventureWorks2019" \
--username sa \
--password XXXXXXXX \
--driver com.microsoft.sqlserver.jdbc.SQLServerDriver \
--warehouse-dir "/user/hive/warehouse/AdventureWorks2019.db" \
--hive-import \
--create-hive-table \
--fields-terminated-by ',' \
--hive-table AdventureWorks2019.Production.TransactionHistory \
--table Production.TransactionHistory \
--split-by TransactionID \
-- --schema Production
我不知道如何处理模式,本教程的大部分内容都使用了一个没有正确模式的虚拟数据库,这无济于事。
错误
21/03/31 08:52:47 INFO conf.HiveConf:使用传入的日志 ID 的默认值:95e2b831-cfe5-4108-be0f-0df1d9a8797e 21/03/31 08:52:47 INFO session.SessionState:将线程名称更新为 95e2b831-cfe5-4108-be0f-0df1d9a8797e main 21/03/31 08:52:47 INFO conf.HiveConf:使用传入的日志 ID 的默认值:95e2b831-cfe5-4108-be0f-0df1d9a8797e 21/03/31 08:52:47 INFO ql.Driver: 编译命令(queryId=hdfs_20210331085247_050638e8-593a-4d01-8020-c40b7db8e66a): 如果不存在则创建表
AdventureWorks2019.Production.TransactionHistory(TransactionIDINT,ReferenceOrderIDINT,ReferenceOrderLineIDINT,TransactionDateSTRING,TransactionTypeSTRING,QuantityINT,ActualCostDOUBLE,ModifiedDateSTRING) COMMENT '由 sqoop 于 2021/03/31 8 导入:以 '\054' 终止的 45' 行格式分隔字段 以 '\012' 终止的行 存储为文本文件 21/03/31 08:52:49 INFO hive.metastore:启用 HMS 客户端过滤。 21/03/31 08:52:49 INFO hive.metastore:尝试使用 URI thrift://cnt7-naya-cdh63:9083 连接到 Metastore 21/03/31 08:52:49 INFO hive.metastore:打开到 Metastore 的连接,当前连接:1 21/03/31 08:52:49 信息 hive.metastore:连接到 Metastore。 21/03/31 08:52:49 INFO parse.SemanticAnalyzer:开始语义分析 失败:SemanticException [错误 10255]:无效的表名 AdventureWorks2019.Production.TransactionHistory 21/03/31 08:52:49 ERROR ql.Driver: FAILED: SemanticException [Error 10255]: Invalid table name AdventureWorks2019.Production.TransactionHistory
【问题讨论】:
标签: sql-server hadoop hive sqoop