我在Mysql中创建了一个表,“A”
我在Hive中创建了一个数据库 - “hiveankit”
当我尝试使用以下命令将表A导入目标数据库时:
[training@localhost ~]$ sqoop import --connect jdbc:mysql://localhost/march2015 --username root --table A -m 1 --target-dir hiveankit;
结果如下:
16/07/02 08:53:19 INFO mapreduce.ImportJobBase: Retrieved 15 records.
[training@localhost ~]$ hive;
Hive history file=/tmp/training/hive_job_log_training_201607020853_1580004608.txt
hive> show databases;
OK
default
hiveankit
Time taken: 3.029 seconds
hive> use hiveankit;
OK
Time taken: 0.044 seconds
hive> select * from A;
FAILED: Error in semantic analysis: Line 1:14 Table not found A
为什么我收到此错误。
我错过了任何步骤吗?
答案 0 :(得分:0)
导入命令应该包含“ - hive-table”,“ - create-hive-table”和“ - hive-import” 在sqoop导入期间自动创建Hive表的选项。我通过添加这些选项修改了您的代码(见下文)。如果没有这些选项,Sqoop导入将只将数据复制到HDFS,并且不会创建Hive表。
sqoop-import --connect jdbc:mysql://localhost/march2015 --username root --table A --hive-table ${hive_db_name}.A --create-hive-table --hive-import -m 1 --target-dir hiveankit;