詳解大數據采集引擎之Sqoop&采集oracle數據庫中的數據


詳解大數據采集引擎之Sqoop&采集oracle數據庫中的數據

一、Sqoop的簡介:

Sqoop是一個數據采集引擎/數據交換引擎,采集關系型數據庫(RDBMS)中的數據,主要用於在RDBMS與HDFS/Hive/HBase之間進行數據傳遞,可以通過sqoop import命令將RDBMS中的數據導入到HDFS/Hive/HBase中,也可以通過sqoop export命令將HDFS/Hive/HBase中的數據導入到RDBMS中,特點:批量采集數據,底層依賴於MapReduce程序,工作原理:通過JDBC連接到關系型數據庫(RDBMS)。

二、Sqoop的實驗條件:

實驗條件:安裝Windows XP操作系統和oracle數據庫。

為什么要選擇關系型數據庫中的oracle數據庫呢?

原因:1、在windows系統上安裝oracle數據庫比在linux系統上更簡單。2、oracle數據庫中的SH用戶含有sales訂單表,表中包含92萬條記錄,SCOTT用戶含有現成的員工表emp.csv和部門表dept.csv。

三、各種數據庫對應的驅動類名和URL格式:

數據庫 驅動類名 URL格式 端口號

oracle oracle.jdbc.OracleDriver jdbc:oracle:thin:@IP:1521:orcl 1521

mysql com.mysql.jdbc.Driver jdbc:mysql://IP:3306/dbname?name=value 3306

hive org.apache.hive.jdbc.HiveDriver jdbc:hive2://IP:10000/dbname 10000

四、安裝和配置Sqoop:

注:不需要修改配置文件

1、安裝sqoop:tar -zxvf sqoop-1.4.5bin_hadoop-0.23.tar.gz -C ~/training

2、配置SQOOP_HOME環境變量:

export SQOOP_HOME=/root/training/sqoop-1.4.5bin_hadoop-0.23

export PATH=$SQOOP_HOME/bin:$PATH

五、使用sqoop語句采集RDBMS中的數據:

1、導入員工表EMP中的所有數據:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --username SCOTT --password tiger --table EMP --target-dir /sqoop/import/emp1

2、導入員工表EMP中的指定列:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --usrname SCOTT --password tiger --table EMP -column ENAME,SAL --target-dir /sqoop/import/emp2

3、導入SALES表中的所有數據:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --username SH --password sh --table SALES --target-dir /sqoop/import/sales -m 1

4、導入SCOTT用戶下的所有表到HDFS中:

sqoop import-all-tables --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --usernmae SCOTT --password tiger

5、導出HDFS中的數據到RDBMS中:

sqoop export --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --username SCOTT --password tiger --table STUDENTS --export-dir /students

詳解大數據采集引擎之Sqoop&采集oracle數據庫中的數據

六、oracle數據庫與mysql數據庫的區別:

1、oracle數據庫區分大小寫,需要大寫的有:用戶名、表名、列名,mysql數據庫不區分大小寫。

2、oracle數據庫只有一個數據庫:orcl,在安裝oracle數據庫時自動創建,mysql數據庫有很多數據庫。

3、oracle數據庫有很多用戶,表屬於用戶,mysql數據庫有很多數據庫,表屬於數據庫,數據庫對不同用戶設置了不同的訪問權限。

七、Sqoop與Flume的相同與不同:

相同:sqoop和flume都是數據采集引擎。

不同:sqoop的特點:批量采集數據,flume的特點:實時采集數據,主要用於實時采集系統中。

詳解大數據采集引擎之Sqoop&采集oracle數據庫中的數據

作者:李金澤AllenLi,清華大學碩士研究生,研究方向:大數據和人工智能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM