1. 程式人生 > >sqoop命令,mysql匯入到hbase(單表,整個資料庫匯入)

sqoop命令,mysql匯入到hbase(單表,整個資料庫匯入)

在搭建大資料平臺的時候,如何把傳統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資料庫如何操作可以看我的下一篇文章: