標籤:記錄 資料傳遞 hive 命令 行資料 資料匯入 tar port 匯出
歡迎關注大資料和人工智慧技術文章發布的公眾號:清研學堂,在這裡你可以學到夜白(作者筆名)精心整理的筆記,讓我們每天進步一點點,讓優秀成為一種習慣!
一、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
六、oracle資料庫與mysql資料庫的區別:
1、oracle資料庫區分大小寫,需要大寫的有:使用者名稱、表名、列名,mysql資料庫不區分大小寫。
2、oracle資料庫只有一個資料庫:orcl,在安裝oracle資料庫時自動建立,mysql資料庫有很多資料庫。
3、oracle資料庫有很多使用者,表屬於使用者,mysql資料庫有很多資料庫,表屬於資料庫,資料庫對不同使用者佈建了不同的存取權限。
七、Sqoop與Flume的相同與不同:
相同:sqoop和flume都是資料擷取引擎。
不同:sqoop的特點:批量採集資料,flume的特點:即時採集資料,主要用於即時採集系統中。
李金澤AllenLi,清華大學在讀碩士,研究方向:大資料和人工智慧。
詳解大資料擷取引擎之Sqoop&採集oracle資料庫中的資料