使用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。
答案 0 :(得分:4)
您无法在配置单元中创建外部表并将其指向这些文件吗?
create external table something(a string, b string) location 'hdfs:///some/path'
答案 1 :(得分:1)
您没有在命令中指定“import”。语法是sqoop tool-name [tool-arguments]
它应该是这样的:
$ sqoop import --create-hive-table --connect jdbc:mysql:// xxx:3306 / dw --username xxx --password xxx --hive-import --table鸣叫