有沒有人可以區分create-hive-table
& hive-import
方法?兩者都會創建一個配置表,但每個的意義又是什麼?何時使用Sqoop --create-hive-table
回答
蜂房導入命令:
hive-import
命令自動填充的元數據在蜂房metastore的填充表。如果Hive中的表尚不存在,則Sqoop 將根據爲您的表或查詢獲取的元數據來創建它。如果表已經存在,Sqoop會將數據導入到現有表中。如果您要創建一個新的Hive表,Sqoop會將源表中每列的數據類型轉換爲與Hive兼容的類型。
create-hive-table命令:
Sqoop可以基於現有關係數據源中的表生成配置單元表(使用create-hive-table
命令)。如果設置,則如果目標配置單元表存在,則作業將失敗。默認情況下,該屬性爲false。
使用create-hive-table
命令涉及到三步驟步驟:將數據導入到HDFS,創建配置表格,然後將HDFS數據加載到Hive中。這可以通過使用hive-import
縮短爲一步。
在hive-import
期間,Sqoop將首先將HDFS導入到臨時位置。成功導入後,Sqoop會生成兩個查詢:一個用於創建表格,另一個用於從臨時位置加載數據。您可以使用--target-dir
或--warehouse-dir
參數指定任何臨時位置。
添加了對上面的描述
使用create-蜂房-table命令低於例如:
包括三個步驟:
從RDBMS導入數據到HDFS
sqoop import --connect jdbc:mysql://localhost:3306/hadoopexample --table employees --split-by empid -m 1;
使用
create-hive-table
命令sqoop create-hive-table --connect jdbc:mysql://localhost:3306/hadoopexample --table employees --fields-terminated-by ',';
將數據加載到蜂巢
hive> load data inpath "employees" into table employees; Loading data to table default.employees Table default.employees stats: [numFiles=1, totalSize=70] OK Time taken: 2.269 seconds hive> select * from employees; OK 1001 emp1 101 1002 emp2 102 1003 emp3 101 1004 emp4 101 1005 emp5 103 Time taken: 0.334 seconds, Fetched: 5 row(s)
使用蜂巢導入命令創建蜂巢表:
sqoop import --connect jdbc:mysql://localhost:3306/hadoopexample --table departments --split-by deptid -m 1 --hive-import;
不同的是,創造蜂箱表將在蜂巢根據數據庫中的源表創建表,但會不傳輸任何數據。命令「import --hive-import」將在Hive中創建表並從源表導入數據。
謝謝Jarek .. :)。 –
這是否創建一個內部或外部表? – zsad512
- 1. 如何使用sqoop工具
- 2. 使用Sqoop創建表時出錯
- 3. 在使用sqoop導入時停止
- 4. 無法使用Sqoop
- 5. 問題使用sqoop
- 6. 連接使用Sqoop
- 7. 如何使用sqoop api執行sqoop命令?
- 8. 如何在Java程序中使用Sqoop?
- 9. 如何使用oozie觸發sqoop動作
- 10. Incrimental更新使用sqoop
- 11. Sqoop使用「sqoop create-hive-table」創建表模式
- 12. 在sqoop導入中使用24小時時間戳
- 13. Sqoop jar棄用
- 14. Sqoop - 日期 - 時間戳
- 15. Sqoop用java失敗
- 16. 用Mysql配置Sqoop?
- 17. 使用Sqoop執行Oozie工作流時出錯
- 18. 錯誤時導入一個MySQL表使用sqoop
- 19. 使用SQOOP將日期時間導出到TeraData
- 20. 使用oozie執行sqoop作業時出錯
- 21. 使用sqoop將數據從Mysql導入到Hbase時出錯
- 22. NoSuchElementException當使用sqoop從hdfs將數據導出到mysql時
- 23. 導入表時導致主鍵錯誤使用Sqoop
- 24. 使用Sqoop導入數據,時間戳數據類型
- 25. 使用ojdbc6連接器的Sqoop導入
- 26. 使用Sqoop導入頭文件數據
- 27. sql簡單連接使用sqoop
- 28. Sqoop的哪個版本使用Hadoop 0.20.2?
- 29. 運行Sqoop與使用python 3子
- 30. 使用hadoop 2.2.0進行Sqoop安裝?
我認爲從用戶指南複製並粘貼並不是特別有用。 –
感謝賽基蘭對你的好解釋。 –
但是,當我嘗試多次使用此命令,我沒有得到像表一樣的錯誤已存在..這是我試過的commnad .. sqoop create-hive-table --connect jdbc:mysql:// localhost: 3306/TestDB -username root -password root --table tb2; ..請你解釋一下「create-hive-table命令涉及三個步驟」是什麼意思。你可以給我一些示例命令嗎?再次感謝:) –