資料採集引擎Sqoop
阿新 • • 發佈:2019-01-12
Sqoop概述
官網 http://sqoop.apache.org/
場景
傳統型缺點,分散式儲存。把傳統型資料庫資料遷移。
Apache Sqoop(TM)是一種用於在Apache Hadoop和結構化資料儲存(如關係資料庫)之間高效
傳輸批量資料的工具 。
資料交換:Oracle <---> Sqoop <---> HDFS、HBase、Hive
安裝部署
解壓
修改配置
vi sqoop-env.sh
export HADOOP_COMMON_HOME=/root/hd/hadoop-2.8.4
export HADOOP_MAPRED_HOME=/root/hd/hadoop-2.8.4
export HIVE_HOME=/root/hd/hive
export ZOOCFGDIR=/root/hd/zookeeper-3.4.10/conf
傳送mysql/oracle驅動到lib下
檢測是否安裝成功 bin/sqoop help
使用sqoop
注意:如果是Oracle,大寫:使用者名稱、表名、列名
1 codegen Generate code to interact with database records sqoop codegen --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --outdir /root/sqoop 2 create-hive-table Import a table definition into Hive 根據Oracle的表結構建立Hive的表結構 sqoop create-hive-table --connect jdbc:oracle:thin:@192.168.137.129:1521:orcl --username SCOTT --password tiger --table EMP --hive-table emphive 3 eval Evaluate a SQL statement and display the results 在Sqoop執行SQL sqoop eval --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --query 'select * from emp where deptno=10' 4 export Export an HDFS directory to a database table 5 help List available commands 6 import Import a table from a database to HDFS sqoop import --help ----> 本質是:就是MR程式 匯入資料到HDFS sqoop import --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --target-dir /sqoop/import/emp1 匯入EMP表,指定匯入列 sqoop import --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --columns ENAME,SAL --target-dir /sqoop/import/emp2 7 import-all-tables Import tables from a database to HDFS sqoop import-all-tables --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger 8 list-databases List available databases on a server 針對Oracle:當前資料庫中所有的使用者名稱 針對MySQL: 所有的資料庫的名字 sqoop list-databases --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SYSTEM --password password 9 list-tables List available tables in a database sqoop list-tables --connect jdbc:oracle:thin:@192.168.223.133:1521:orcl --username SCOTT --password tiger 10 將資料匯入HBase(需要事先將表建立) sqoop import --connect jdbc:oracle:thin:@192.168.137.129:1521:orcl --username SCOTT --password tiger --table EMP --columns empno,ename,sal,deptno --hbase-table emp --hbase-row-key empno --column-family empinfo 11 mysql匯入到hive 需要先建立hive表 bin/sqoop import --connect jdbc:mysql://hd09-01:3306/sq --username root --password root --table user1 --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table user_sqoop