2012-05-09 107 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

相關問題