2012-05-09 106 views
0

当使用Sqoop将一堆大型MySQL表导入HDFS时,我忘记了包含--hive-import标志。所以现在我已经将这些表格放在HDFS中,并且想知道是否有一种简单的方法将数据加载到Hive中(而不用自己编写LOAD DATA语句)。将Sqoop数据从HDFS移动到Hive

我试图用sqoop创建蜂箱表:

./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。

+1

从Sqoop源代码中挖掘出来,我很确定在Sqoop中这是不可能的。但是,如果可能的话,看起来所有的Sqoop都会在Hive中执行类似于“LOAD DATA INPATH'/ user/hadoop/tweets'INTO TABLE'tweets'”的操作。我想这足够无痛。 – Nick

回答

4

你不能在配置单元中创建一个外部表并将它指向这些文件吗?

create external table something(a string, b string) location 'hdfs:///some/path' 
1

你没有在命令中指定“进口”。语法是sqoop工具名[工具论点]

它应该是这样的:

$ sqoop 进口 --create蜂箱表--connect的jdbc:mysql的:// XXX: 3306/dw --username xxx --password xxx --hive-import --table tweet

相关问题