sqoop命令,mysql匯入到hbase(單表,整個資料庫匯入)
阿新 • • 發佈:2019-02-18
在搭建大資料平臺的時候,如何把傳統mysql資料庫匯入到hbase中顯得格外的重要,所以現在我們來介紹一些基本的操作。
1.測試mysql能否連線
注意:這裡你需要掌握資料庫的知識,先把資料庫設定許可權可訪問,伺服器也要開啟埠和配置防火牆。
注意: 在寫這個命令的時候,你的sqoop已經配置好,hadoop平臺也搭建好,且需要轉化到你自己對應的角色,比如我的是hdfs
sqoop list-databases --connect jdbc:mysql://47.~~.~~.146:3306/yf --username 'root' --password '你的密碼'
測試成功結果:
2.sql語句檢驗
sqoop eval --connect jdbc:mysql://47.~~.~~.146:3306/yf --username 'root' --password '你的密碼' --query "SELECT * FROM USERS WHERE ID='123'"
檢驗成功後的結果:
3.匯入hbase
3.1 新建hbase表
注意: 如果需要了解更多的hbase基本操作,可以在百度搜索後查詢habse基本操作,這裡我就直接貼圖了:
3.2 匯入mysql資料到hbase
sqoop import --connect jdbc:mysql://192 .~~.~~.146:3306/yfei --username 'root' --password '你的密碼' --table 'mysql資料庫的表名' --hbase-table 'test' --hbase-row-key '可以是mysql的主鍵' --column-family '剛剛建立的列簇的名:region'
注意: 我在執行上面程式碼是會報錯的,原因是我的mysql版本太高了,而connect.jar的檔案版本太低,所以我加上了下面的程式碼後就可以執行了(如果你也無法執行,可以嘗試下面的程式碼:)
如果mysql版本過高報錯:
sqoop import --connect jdbc:mysql://47.~~.~~.146:3306/yfei --driver com.mysql.jdbc.Driver --username 'root' --password '你的密碼' --table 'mysql資料庫名' --hbase-table 'test' --hbase-row-key '你的mysql資料庫主鍵' --column-family '列簇名:region'
這樣就可以執行成功了:
檢視資料庫:
4.整庫匯入hbase
注意:匯入的時候一定要保證mysql庫裡面的所有表都有主鍵,這個很重要
程式碼如下:
sqoop import-all-tables --connect jdbc:mysql://47.~~.~~.146:3306/yanfeigw --driver com.mysql.jdbc.Driver --username 'root' --password '123' --hbase-create-table --hbase-table '你建立的表名' --column-family '列簇名' --hbase-bulkload
再次強調要每個表都有主鍵哦
這次測試的結果與上面相似,所以不貼了。
如果想了解java操作hbase資料庫如何操作可以看我的下一篇文章: