新聞中心
在今天的信息時代,數(shù)據(jù)是價值的體現(xiàn)。隨著各種業(yè)務系統(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)站設計與綏濱網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋綏濱地區(qū)。
SQOOP是一個用于將關系型數(shù)據(jù)庫中的數(shù)據(jù)導入Hadoop的工具。它可以將關系型數(shù)據(jù)存入到Hadoop中,并允許使用不同的工具進行數(shù)據(jù)處理和分析。SQOOP可通過JDBC來連接各種不同類型的關系型數(shù)據(jù)庫,并允許大規(guī)模地轉移數(shù)據(jù)。SQOOP使用MySQL的JDBC驅動作為默認的連接器,也支持其他常用的JDBC連接器,如Oracle、DB2、Sybase等。
SQOOP的典型使用場景包括:
1、從關系型數(shù)據(jù)庫中導入數(shù)據(jù)到Hadoop。在進行數(shù)據(jù)分析和處理前,需要將數(shù)據(jù)從關系型數(shù)據(jù)庫中導入到Hadoop平臺。SQOOP可幫助您快速導入數(shù)據(jù),從而可以使用Hadoop的各種數(shù)據(jù)分析和處理工具。
2、將Hadoop中的數(shù)據(jù)導出到關系型數(shù)據(jù)庫。當您需要將Hadoop中的數(shù)據(jù)導出到關系型數(shù)據(jù)庫中進行處理和分析時,也可以使用SQOOP來實現(xiàn)。
3、增量數(shù)據(jù)傳輸。當關系型數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,需要將這些變化同步到Hadoop平臺上。SQOOP可以幫助您實現(xiàn)增量數(shù)據(jù)傳輸,從而保證您在Hadoop上使用的數(shù)據(jù)始終是最新的。
SQOOP的使用對于企業(yè)來說,有著很多的好處:
1、提高數(shù)據(jù)利用價值。將關系型數(shù)據(jù)庫中的數(shù)據(jù)導入到Hadoop平臺上,可以通過使用Hadoop的各種數(shù)據(jù)處理和分析工具,進一步挖掘數(shù)據(jù)價值,從而更好地服務于企業(yè)的業(yè)務。
2、提高數(shù)據(jù)處理效率。利用SQOOP將數(shù)據(jù)導入到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、連接關系型數(shù)據(jù)庫。使用SQOOP連接您需要從中導入數(shù)據(jù)的關系型數(shù)據(jù)庫,并配置合適的數(shù)據(jù)連接參數(shù)。
3、導入數(shù)據(jù)到Hadoop平臺。使用SQOOP將關系型數(shù)據(jù)庫中的數(shù)據(jù)導入到Hadoop平臺上,您可以選擇將所有數(shù)據(jù)導入,也可以根據(jù)某個特定的條件進行篩選。
4、使用Hadoop分析和處理數(shù)據(jù)。將數(shù)據(jù)導入到Hadoop平臺上后,您可以使用Hadoop的各種工具進行數(shù)據(jù)分析和處理,以挖掘數(shù)據(jù)的價值。
:SQOOP作為Hadoop生態(tài)圈中的關鍵組件,在數(shù)據(jù)交互方面具有很強的優(yōu)勢。它可以實現(xiàn)關系型數(shù)據(jù)庫與Hadoop平臺的快速連接,將數(shù)據(jù)從關系型數(shù)據(jù)庫中導入到Hadoop平臺上,并可以使用Hadoop的各種數(shù)據(jù)分析和處理工具進行數(shù)據(jù)處理。通過使用SQOOP,企業(yè)可以充分利用自身的數(shù)據(jù)資源,實現(xiàn)數(shù)據(jù)連通,提高數(shù)據(jù)利用效率,推動業(yè)務發(fā)展。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220sqoop支持從mysql導出到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;
導入數(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導出到ORACLE
需要分兩步:
之一步:族數(shù)先寫入到hdfs
insert overwrite directory ‘/user/hadoop/DEPT_HIVE_EXPORT‘ select * from dept;
第二步:由hdfs導出到oracle
導出到數(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導出到hdfs的分隔符不是,而是\001;如果不指定分隔符,則報錯:Caused by: java.lang.NumberFormatException
一、Mysql與HDFS互導數(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,也可以通過拷貝相應的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用。
下載相關文件:
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復制到sqoop-1.2.0-CDH3B4/lib中。
另外,sqoop導入mysql數(shù)據(jù)運行過程中依賴mysql-connector-java-*.jar,所以你需要下載mysql-connector-java-*.jar并復制到sqoop-1.2.0-CDH3B4/lib中。
步驟二,相關配置:
修改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并授權:
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ù)導入HDFS:
啟動hadoop:
start-all.sh
用jps驗證啟動是否成功
顯示正在運行以下進程即為啟動成功:
2820 SecondaryNameNode
4539 Jps
2887 JobTracker
2595 NameNode
從mysql導入數(shù)據(jù),運行如下命令:
sqoop import –connect jdbc: –username sqoop –password sqoop –table students -m 1
驗證導入數(shù)據(jù)是否成功:
若導入成功,運行 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ù)導入Mysql的students表中:
首先將mysql的students表數(shù)據(jù)清空:
delete from students;
然后在masternode上執(zhí)行導出數(shù)據(jù)命令:
sqoop export –connect jdbc: –username sqoop –password sqoop –table students –export-dir
若成功,在mysql中會看到students表中的數(shù)據(jù)恢復了!
注意:過程中可能會因為slavenode的50010端口沒打開而報錯,需用root用戶通過sudo ufw allow 50010命令打開端口!
二、Mysql與Hbase互導數(shù)據(jù)
將mysql的數(shù)據(jù)導入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是要導成hbase的表名,key_col_name可以指定datatable中哪一列作為hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名
例如:可通過如下命令將Mysql中的students表導入到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中用以下命令查看結果:
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互導數(shù)據(jù)
將Oracle中的dept表(列為id,name,addr)導出至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怎么從關系數(shù)據(jù)庫導出數(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吃不消。
可以參考例子:
關于sqoop能實時抽取數(shù)據(jù)庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都網(wǎng)站建設選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設計,高端小程序APP定制開發(fā),成都網(wǎng)絡營銷推廣等一站式服務。
分享名稱:SQOOP實時抽取數(shù)據(jù)庫,解放數(shù)據(jù)迅速連通(sqoop能實時抽取數(shù)據(jù)庫)
URL分享:http://www.5511xx.com/article/cohihps.html


咨詢
建站咨詢
