新聞中心
在今天的信息時代,數(shù)據(jù)是價值的體現(xiàn)。隨著各種業(yè)務(wù)系統(tǒng)的興起,大量的數(shù)據(jù)積累在數(shù)據(jù)庫中,如何將這些數(shù)據(jù)充分利用,成為了企業(yè)面臨的迫切需求。SQOOP作為一款優(yōu)秀的數(shù)據(jù)交互工具,為企業(yè)解決了數(shù)據(jù)連通的問題,實現(xiàn)了快速抽取數(shù)據(jù),充分利用企業(yè)的數(shù)據(jù)資產(chǎn)。

站在用戶的角度思考問題,與客戶深入溝通,找到綏濱網(wǎng)站設(shè)計與綏濱網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋綏濱地區(qū)。
SQOOP是一個用于將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入Hadoop的工具。它可以將關(guān)系型數(shù)據(jù)存入到Hadoop中,并允許使用不同的工具進行數(shù)據(jù)處理和分析。SQOOP可通過JDBC來連接各種不同類型的關(guān)系型數(shù)據(jù)庫,并允許大規(guī)模地轉(zhuǎn)移數(shù)據(jù)。SQOOP使用MySQL的JDBC驅(qū)動作為默認的連接器,也支持其他常用的JDBC連接器,如Oracle、DB2、Sybase等。
SQOOP的典型使用場景包括:
1、從關(guān)系型數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)到Hadoop。在進行數(shù)據(jù)分析和處理前,需要將數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫中導(dǎo)入到Hadoop平臺。SQOOP可幫助您快速導(dǎo)入數(shù)據(jù),從而可以使用Hadoop的各種數(shù)據(jù)分析和處理工具。
2、將Hadoop中的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫。當您需要將Hadoop中的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫中進行處理和分析時,也可以使用SQOOP來實現(xiàn)。
3、增量數(shù)據(jù)傳輸。當關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,需要將這些變化同步到Hadoop平臺上。SQOOP可以幫助您實現(xiàn)增量數(shù)據(jù)傳輸,從而保證您在Hadoop上使用的數(shù)據(jù)始終是最新的。
SQOOP的使用對于企業(yè)來說,有著很多的好處:
1、提高數(shù)據(jù)利用價值。將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到Hadoop平臺上,可以通過使用Hadoop的各種數(shù)據(jù)處理和分析工具,進一步挖掘數(shù)據(jù)價值,從而更好地服務(wù)于企業(yè)的業(yè)務(wù)。
2、提高數(shù)據(jù)處理效率。利用SQOOP將數(shù)據(jù)導(dǎo)入到Hadoop平臺上,并使用Hadoop的分布式計算和存儲機制進行數(shù)據(jù)處理,可以大幅提高數(shù)據(jù)處理效率。
3、保證數(shù)據(jù)一致性。通過使用SQOOP實現(xiàn)增量數(shù)據(jù)傳輸,可以保證Hadoop平臺上使用的數(shù)據(jù)總是最新的,從而保證了數(shù)據(jù)的一致性。
如何使用SQOOP來實現(xiàn)數(shù)據(jù)連通呢?SQOOP的具體使用流程如下:
1、安裝和配置SQOOP。您需要在Hadoop平臺上安裝和配置SQOOP,并確保您的環(huán)境符合SQOOP的系統(tǒng)要求。
2、連接關(guān)系型數(shù)據(jù)庫。使用SQOOP連接您需要從中導(dǎo)入數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫,并配置合適的數(shù)據(jù)連接參數(shù)。
3、導(dǎo)入數(shù)據(jù)到Hadoop平臺。使用SQOOP將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到Hadoop平臺上,您可以選擇將所有數(shù)據(jù)導(dǎo)入,也可以根據(jù)某個特定的條件進行篩選。
4、使用Hadoop分析和處理數(shù)據(jù)。將數(shù)據(jù)導(dǎo)入到Hadoop平臺上后,您可以使用Hadoop的各種工具進行數(shù)據(jù)分析和處理,以挖掘數(shù)據(jù)的價值。
:SQOOP作為Hadoop生態(tài)圈中的關(guān)鍵組件,在數(shù)據(jù)交互方面具有很強的優(yōu)勢。它可以實現(xiàn)關(guān)系型數(shù)據(jù)庫與Hadoop平臺的快速連接,將數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫中導(dǎo)入到Hadoop平臺上,并可以使用Hadoop的各種數(shù)據(jù)分析和處理工具進行數(shù)據(jù)處理。通過使用SQOOP,企業(yè)可以充分利用自身的數(shù)據(jù)資源,實現(xiàn)數(shù)據(jù)連通,提高數(shù)據(jù)利用效率,推動業(yè)務(wù)發(fā)展。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風格,熱線:028-86922220sqoop支持從mysql導(dǎo)出到oracle嗎
hive中創(chuàng)建dept表
create table dept(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by ‘\t‘ lines terminated by ‘\n‘
stored as textfile;
導(dǎo)入數(shù)據(jù):
sqoop import –connect jdbc:oracle:thin:@192.168.1.107:1521:ORCL \
–username SCOTT –password tiger \
–table DEPT \
–hive-overwrite –hive-import –hive-table dept \
–fields-terminated-by ‘\t‘ –lines-terminated-by ‘\n‘ \
-m 3;
HIVE導(dǎo)出到ORACLE
需要分兩步:
之一步:族數(shù)先寫入到hdfs
insert overwrite directory ‘/user/hadoop/DEPT_HIVE_EXPORT‘ select * from dept;
第二步:由hdfs導(dǎo)出到oracle
導(dǎo)出到數(shù)據(jù)庫時,要確保表已經(jīng)在數(shù)據(jù)庫中存在,否則報錯。
create table DEPT_DEMO as select * from DEPT where 1=2;
sqoop export –connect jdbc:oracle:thin:@192.168.1.107:1521:ORCL \
–username SCOTT –password tiger \
–table DEPT_DEMO \
–export-dir /user/hadoop/DEPT_HIVE_EXPORT \
–fields-terminated-by ‘\001‘ \
-m 2;
注:從hive導(dǎo)出到hdfs的分隔符不是,而是\001;如果不指定分隔符,則報錯:Caused by: java.lang.NumberFormatException
一、Mysql與HDFS互導(dǎo)數(shù)據(jù)
環(huán)境:
宿主機器操作系統(tǒng)為Win7,Mysql安裝耐橋在宿主機上,宿主機地址為192.168.66.96
3臺虛擬機操作系統(tǒng)為Ubuntu-12.04.1-32位
三臺虛擬機已成功安裝Hadoop,并實現(xiàn)免昌穗猛密鑰互訪,配hosts為:
192.168.66.91 masternode
192.168.66.92 slavenode1
192.168.66.93 slavenode2
/etc/profile已配置好必備環(huán)境變量HADOOP_HOME,JAVA_HOME
實驗在masternode上進行,已成功連接mysql
步驟一,下載安裝包:
我安裝的Hadoop版本是原生hadoop-0.20.203.0,SQOOP不支持此版本,可使用CDH3版本hadoop,也可以通過拷貝相應(yīng)的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用。
下載相關(guān)文件:
sqoop-1.2.0-CDH3B4依賴hadoop-core-0.20.2-CDH3B4.jar,所以你需要下載hadoop- 0.20.2-CDH3B4.tar.gz,解壓縮后將hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2- CDH3B4.jar復(fù)制到sqoop-1.2.0-CDH3B4/lib中。
另外,sqoop導(dǎo)入mysql數(shù)據(jù)運行過程中依賴mysql-connector-java-*.jar,所以你需要下載mysql-connector-java-*.jar并復(fù)制到sqoop-1.2.0-CDH3B4/lib中。
步驟二,相關(guān)配置:
修改SQOOP的文件configure-sqoop,注釋掉hbase和zookeeper檢查(除非你準備使用HABASE等HADOOP上的組件) #if ; then
# echo “Error: $HBASE_HOME does not exist!”
# echo ‘Please set $HBASE_HOME to the root of your HBase installation.’
# exit 1
#fi
#if ; then
# echo “Error: $ZOOKEEPER_HOME does not exist!”
# echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’
# exit 1
#fi
修改/etc/profile環(huán)境變量文件(su root之后,sudo gedit /etc/profile):
添加 export SQOOP_HOME=/home/grid/sqoop
在原有PATH后添加 :$SQOOP_HOME/bin
步驟三,在mysql中建立測試用戶,測試表和數(shù)據(jù),并測試sqoop連接mysql:
創(chuàng)建用戶sqoop并授權(quán):
grant all privileges on *.* to ‘sqoop’@’%’ identified by ‘sqoop’ with grant option;
創(chuàng)建表空間(schema)sqoop,并創(chuàng)建測試表:
create table students (
id int not null primary key,
name varchar(20),
age int)
插入測試數(shù)據(jù):
insert into students values(‘10001′,’liyang’,29);
insert into students values(‘10002′,’lion’,28);
insert into students values(‘10003′,’leon’,26);
在masternode測試sqoop能否成功連接宿主機器上的mysql:
sqoop list-tables –connect jdbc: –username sqoop –password sqoop
如果能正確顯示出sqoop表空間中的students表,就說明sqoop已經(jīng)可以成功連接mysql!
步驟四,將mysql中sqoop表空間的students表的三行數(shù)據(jù)導(dǎo)入HDFS:
啟動hadoop:
start-all.sh
用jps驗證啟動是否成功
顯示正在運行以下進程即為啟動成功:
2820 SecondaryNameNode
4539 Jps
2887 JobTracker
2595 NameNode
從mysql導(dǎo)入數(shù)據(jù),運行如下命令:
sqoop import –connect jdbc: –username sqoop –password sqoop –table students -m 1
驗證導(dǎo)入數(shù)據(jù)是否成功:
若導(dǎo)入成功,運行 hadoop dfs -ls 將能看到根目錄/user/grid/下有以表名命名的文件夾students
運行 hadoop dfs -ls /user/grid/students 能看到該文件夾中包含文件:/user/grid/students/part-m-00000
運行 hadoop dfs -cat /user/grid/students/part-m就能看到該文件已經(jīng)包含mysql中students表的三行數(shù)據(jù):
10001,liyang,29
10002,lion,28
10003,leon,26
步驟五,將HDFS中的數(shù)據(jù)導(dǎo)入Mysql的students表中:
首先將mysql的students表數(shù)據(jù)清空:
delete from students;
然后在masternode上執(zhí)行導(dǎo)出數(shù)據(jù)命令:
sqoop export –connect jdbc: –username sqoop –password sqoop –table students –export-dir
若成功,在mysql中會看到students表中的數(shù)據(jù)恢復(fù)了!
注意:過程中可能會因為slavenode的50010端口沒打開而報錯,需用root用戶通過sudo ufw allow 50010命令打開端口!
二、Mysql與Hbase互導(dǎo)數(shù)據(jù)
將mysql的數(shù)據(jù)導(dǎo)入hbase的命令格式為:
sqoop import –connect jdbc: –username –password password –table datatable –hbase-create-table –hbase-table hbase_tablename –column-family col_fam_name –hbase-row-key key_col_name
其中 ,databaseName 和datatable 是mysql的數(shù)據(jù)庫和表名,hbase_tablename是要導(dǎo)成hbase的表名,key_col_name可以指定datatable中哪一列作為hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名
例如:可通過如下命令將Mysql中的students表導(dǎo)入到Hbase中:
/home/grid/sqoop/bin/sqoop import –connect jdbc: –username sqoop –password liyang16 –table students –hbase-create-table –hbase-table students –column-family stuinfo –hbase-row-key id
成功執(zhí)行后,可在hbase中用以下命令查看結(jié)果:
hbase(main):011:0> scan ‘students’
ROW COLUMN+CELL
10001 column=stuinfo:age, timestamp=, value=29
10001 column=stuinfo:name, timestamp=, value=liyang
10002 column=stuinfo:age, timestamp=, value=28
10002 column=stuinfo:name, timestamp=, value=lion
10003 column=stuinfo:age, timestamp=, value=26
10003 column=stuinfo:name, timestamp=, value=leon
3 row(s) in 0.0900 seconds
三、Oracle與Hbase互導(dǎo)數(shù)據(jù)
將Oracle中的dept表(列為id,name,addr)導(dǎo)出至hbase中的dept表(行鍵為id,列族為deptinfo)
sqoop import –append –connect jdbc:oracle:thin:@192.168.66.90:1521:orcl –username test –password test –m 1 –table dept –columns id,name,addr –hbase-create-table –hbase-table dept –hbase-row-key id –column-family deptinfo
求助 apache 的sqoop怎么從關(guān)系數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)到hadoop中和反過來,更好能發(fā)個demo,萬分感謝,現(xiàn)在急用!!感謝
1,rmdbs to hadoop 很簡單,使用一條命令
sqoop import –jar-file (你的jar包) –class-name (classname) –connect (mysql實例) –username (用戶名) –password (密碼) -table (表名) -hbase-table (hbase表名) -column-family (familyColumn) -hbase-row-key (hbase rowkey) –hbase-create-table
2,hadoop to rmdbs也很簡單,做一個mapreduce,特漏液別注意map的返野物input參數(shù)是
ImmutableBytesWritable,format 一下數(shù)據(jù),然后將format后的數(shù)據(jù)通脊罩過jdbc 填充到rmdbs,不過要控制好速度,否則rmdbs吃不消。
可以參考例子:
關(guān)于sqoop能實時抽取數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計,高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
網(wǎng)頁標題:SQOOP實時抽取數(shù)據(jù)庫,解放數(shù)據(jù)迅速連通(sqoop能實時抽取數(shù)據(jù)庫)
文章位置:http://m.fisionsoft.com.cn/article/cohihps.html


咨詢
建站咨詢
