0

使用 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。

4

2 回答 2

4

您不能在 hive 中创建一个外部表并将其指向这些文件吗?

create external table something(a string, b string) location 'hdfs:///some/path'
于 2012-05-09T16:42:53.917 回答
1

您没有在命令中指定“import”。语法是 sqoop 工具名称 [工具参数]

它应该如下所示:

$ sqoop import --create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table tweets

于 2014-02-04T16:08:33.840 回答