亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySql與HBase之間數據的互導

發布時間:2021-09-16 14:12:02 來源:億速云 閱讀:589 作者:chen 欄目:云計算

這篇文章主要講解了“MySql與HBase之間數據的互導”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySql與HBase之間數據的互導”吧!

在進行下面的步驟之前,請確保你的hadoop,hbase,hive,mysql,sqoop已經安裝配置完好

此處我的配置如下:

hadoop-1.2.1

hbase-0.94.18

hive-0.12.0

mysql-5.5.37

sqoop-1.4.4

一.將mysql中的數據導入到hbase中,這一步相對來說是比較簡單的

1.在mysql中建立一個teacher表,插入5組數據,我這里沒有將表建立的太大,可以根據自身數據大小情況改變創建表的大小,表的結構如下圖所示:

MySql與HBase之間數據的互導

2.在進行下一步之前,一定要確認mysql的jdbc已經拷貝到sqoop的lib目錄下,此處我使用的是 mysql-connector-java-5.0.8-bin.jar,同時需要拷貝hbase目錄下的hbase-0.94.18.jar和hbase的lib目錄下的zookeeper-3.4.5.jar到sqoop的lib目錄下,以上jar包,只要是適合自己版本的就好。

3.轉到sqoop的目錄下,執行命令:

$bin/sqoop import --connect jdbc:mysql://slave03/sqoop --username sqoop --password sqoop --table teacher --hbase-table myteacherhbase  --column-family info --hbase-create-table

上述命令行的含義:

$bin/sqoop import --connect jdbc:mysql://slave03(自己的機器名,可以是自己機器的ip地址)/sqoop(mysql中的database) --username 用戶名 --password 密碼 --table teacher(mysql中的table名字) --hbase-table myteacherhbase(導入到hbase中表的名字)  --column-family info --hbase-create-table(使hbase自己創建表)

4.1執行上述命令之前hbase中表的狀況:

MySql與HBase之間數據的互導

4.2執行sqoop命令之后hbase里邊表的狀況:

MySql與HBase之間數據的互導

5.至此,mysql數據庫中的數據導入到hbase中成功。

二.將hbase中的數據導出到mysql數據庫中。

因為之前在網上查找過很多的信息,了解到hbase中的數據不能夠直接導出到mysql數據庫中,所以只能借助一個中介實現這個目的,我了解到有以下兩種方法可以實現這個功能:

(1)將hbase中的數據導出到HDFS平臺上,然后導入到mysql(此方法本人還沒有試,只是了解到網上有人說可以)

(2)將hbase中的數據導出到hive(中介),然后通過sqoop將hive中的數據導入到mysql數據庫中。

接下來,我介紹第二種方法:

  1. 因為之前將mysql中的teacher表導入到了hbase,我就直接用hbase中的這個myteacherhbase表進行以下操作。

  2. 在mysql中新建立一個myteacher表,用來接收hbase導出的數據。

    表結構如圖:

    MySql與HBase之間數據的互導

  3. 在hive中創建連接hbase的外部表:


  4. hive> create external table myteacher_external(key int,value string)
        > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
        > WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name")
        > TBLPROPERTIES("hbase.table.name" = "myteacherhbase");

這里我直接在創建外部表的時候指定了primary key,將id設為primary key.如圖:

MySql與HBase之間數據的互導

可以查詢到hbase中的數據,創建連接hbase外部表成功。

5.    在hive中新建一個內部表,將hive的external外部表數據導入到內部表。

hive>create table myteacher_inner(id int,name string);

建好之后,通過以下命令,執行將hbase中的數據導出到hive中:

hive> insert overwrite table myteacher_inner select * from myteacher_external;

如下圖:

MySql與HBase之間數據的互導

相應的內部表中有了數據,說明hbase導出到hive中成功了。

6.    接下來,就是利用sqoop將hive中的數據導入到mysql中了,轉到sqoop目錄下,執行以下命令:

bin/sqoop export --connect jdbc:mysql://本機ip/sqoop --username sqoop --password sqoop  -m 1 --table myteacher --export-dir hdfs://slave03:9000/home/hadoop/hive/warehouse/myteacher_inner --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\\01" --input-lines-terminated-by "\\n"

說明:ip地址之后的sqoop是mysql的database,之后依次是用戶名,密碼,m 1 是進行一次map,table myteacher是之前建立的接收hbase數據的空表,后邊的--export-dir是本機的hive之中表的HDFS地址。至于這地址之后的,是處理防止導入到mysql之中時,出現NULL的現象,導致原因是因為hive里存儲的數據和數據之間的間隔與mysql中存儲的數據和數據間隔不一致。所以需要處理一下。使mysql可以識別。

MySql與HBase之間數據的互導

sqoop執行命令成功。

7.    在mysql查看myteacher中的數據。

MySql與HBase之間數據的互導

查詢成功。導入成功,操作完成啦!

感謝各位的閱讀,以上就是“MySql與HBase之間數據的互導”的內容了,經過本文的學習后,相信大家對MySql與HBase之間數據的互導這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三原县| 万载县| 拜城县| 社旗县| 巢湖市| 永寿县| 九龙坡区| 沙洋县| 普兰店市| 武安市| 遵义县| 常山县| 六枝特区| 铜陵市| 遂宁市| 山阴县| 绥阳县| 股票| 大悟县| 洛川县| 石嘴山市| 洞头县| 瑞安市| 四平市| 赣榆县| 上杭县| 秦皇岛市| 原平市| 固镇县| 玉环县| 维西| 平顶山市| 当阳市| 伊春市| 深泽县| 会宁县| 田东县| 邯郸市| 剑河县| 沙河市| 南阳市|