【发布时间】:2012-05-18 04:58:32
【问题描述】:
使用 Sqoop 将大量 MySQL 表导入 HDFS 时,我忘记包含 --hive-import 标志。所以现在我将这些表放在 HDFS 中,我想知道是否有一种简单的方法可以将数据加载到 Hive 中(无需自己编写 LOAD DATA 语句)。
我尝试使用 sqoop create-hive-table:
./bin/sqoop create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table tweets
虽然这确实创建了正确的配置单元表,但它没有将任何数据导入其中。我有一种感觉,我在这里遗漏了一些简单的东西......
作为记录,我正在使用 Elastic MapReduce,以及 Sqoop 1.4.1。
【问题讨论】:
-
通过挖掘 Sqoop 源代码,我很确定这在 Sqoop 中是不可能的。但是,如果可能的话,看起来 Sqoop 所做的只是在 Hive 中执行类似“LOAD DATA INPATH '/user/hadoop/tweets' INTO TABLE
tweets”的内容。我想这已经足够无痛了。