1. 程式人生 > >資料採集引擎Sqoop

資料採集引擎Sqoop

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