日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

利用Sqoop将MySQL海量测试数据导入HDFS和HBase

發(fā)布時間:2024/4/13 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Sqoop将MySQL海量测试数据导入HDFS和HBase 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
聲明:作者原創(chuàng),轉(zhuǎn)載注明出處。

作者:帥氣陳吃蘋果

一、安裝Sqoop

1、下載sqoop,解壓、文件夾重命名

wget http://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gztar -zxvf sqoop-1.4.6.bin_hadoop-2.0.4.alpha.tar.gz -C /root/hadoop/mv sqoop-1.4.6.bin_hadoop-2.0.4.alpha sqoop-1.4.6

2、配置環(huán)境變量

vim /etc/profile
export SQOOP_HOME=/root/hadoop/sqoop-1.4.6export PATH = $PATH:$SQOOP_HME/bin

3、驗證

若正常顯示Sqoop版本信息,則安裝配置成功:

[root@localhost ~ ] # sqoop version

二、創(chuàng)建數(shù)據(jù)庫和表

安裝MySql后,創(chuàng)建測試數(shù)據(jù)庫和測試表。

數(shù)據(jù)庫名:test

表結(jié)構(gòu):point(pointId int(10) PRIMARYKEY,pointName varchar(16),pointValue int(10))

三、shell腳本生成測試數(shù)據(jù)

編寫Shell腳本,此處的插入語句需要根據(jù)所創(chuàng)建的表結(jié)構(gòu)來修改:

#!/bin/bash i=1; MAX_INSERT_ROW_COUONT=$1; while(( $i <= $MAX_INSERT_ROW_COUNT )) domysql -uhive -phive test -e "insert into test.point(pointId,pointName,pointValue) values($i,'point"$i"',$i);"i=(($i+1)) done exit 0 上述腳本生成測試數(shù)據(jù)速度很慢,筆者生成1000萬條數(shù)據(jù)有如懷胎十月,歡迎建議,感謝!

四、MySql數(shù)據(jù)導入

MySQL作為數(shù)據(jù)源時,Sqoop需要依賴MySQL數(shù)據(jù)庫連接驅(qū)動包,下載地址:https://dev.mysql.com/get/Dow...

下載后解壓,將mysql-connector-java-5.1.45文件夾下的mysql-connector-java-5.1.44-bin.jar包拷貝到$SQOOP_HOME/lib目錄下即可。

1、導入HDFS

sqoop import --connect jdbc:mysql://localhost:3306/test --username hive --password hive --table point
參數(shù)解析:

import:表示從傳統(tǒng)數(shù)據(jù)庫導入數(shù)據(jù)到 HDFS/HIVE/HBASE等;

--connect:建立數(shù)據(jù)庫連接;

jdbc:mysql://localhost:3306/test:使用jdbc方式連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫名為test;

--username:指定數(shù)據(jù)庫用戶名;

--password:指定數(shù)據(jù)庫密碼;

--table:指定表名

注意:

a)HDFS輸出目錄不能已經(jīng)存在;

b)沒有指定-m或者splite-by時,即沒有指定并行度時,要導入的表必須有主鍵,否則會出錯。

c)導入到指定目錄:sqoop import --connect jdbc:mysql://localhost:3306/test --username hive --password hive --table point --target-dir /directory

如果沒有指定輸出目錄,默認在/user/root/下創(chuàng)建一個與表名一致的子目錄作為輸出目錄,導入操作執(zhí)行后,查看HDFS中是否有導入的文件:

hdfs dfs -ls /user/root/point/

2、導入HBase

sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table point --hbase-table HPoint --column-family info --hbase-row-key pointId --hbase-create-table
參數(shù)解析:

--hbase-table:指定導入到HBase數(shù)據(jù)庫中某表;

--column-family:指定列族名;

--hbase-row-key:指定rowKey;

--hbase-create-table:表示按照參數(shù)創(chuàng)建HBase中的表;

最后,歡迎指正。喜歡的話,點個贊唄,請你吃蘋果。

總結(jié)

以上是生活随笔為你收集整理的利用Sqoop将MySQL海量测试数据导入HDFS和HBase的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。