sqoop配置與簡單應用

Sqoop = SQL- to-Hadoop,是易用、並行的導入導出工具。

一. 安裝

1.1 安裝並設置環境變量
解壓縮,重命名爲sqoop

sudo gedit /etc/profile

文末添加安裝路徑,別忘了source一下

export SQOOP_HOME=/home/hduser/sqoop
export PATH=$SQOOP_HOME/bin:$PATH

1.2 修改配置文件sqoop-env.sh

mv  sqoop-env-template.sh  sqoop-env.sh

配置文件內容

export HADOOP_COMMON_HOME=/home/hduser/hadoop-2.2.0
export HADOOP_MAPRED_HOME=/home/hduser/hadoop-2.2.0
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/home/hduser/hive
export ZOOCFGDIR=/usr/local/zk

1.3 將JDBC驅動複製到sqoop的lib目錄
mysql的jdbc驅動mysql-connector-java-5.1.10.jar複製到sqoop項目的lib目錄下

1.4 啓動Hadoop集羣

start-all.sh

二 . sqoop 小實例

2.1 Sqoop入門-使用方法
用法: sqoop COMMAND [ARGS]
支持的指令(command):

        codegen             生成關係數據庫表映射的Java文件
        create-hive-table   生成與關係數據庫對應的 Hive表
        export              導出hdfs目錄到關係數據庫中
        import              導入關係數據庫表到HDFS
        import-all-tables   導入關係數據庫所有表到HDFS
        list-databases      顯示關係數據庫所有的數據庫
        list-tables         顯示關係數據庫所有的表  
        eval                執行SQL並顯示結果
        version             顯示版本信息

2.2 Mysql到Hive–初始化mysql數據庫

mysql -uroot -p

create database study;
use study;
create table table1 (id int,name varchar(32) ,primary key(id));
insert into table1 values(1,'n1');
insert into table1 values(2,'n2');
insert into table1 values(3,'n3');
insert into table1 values(4,'n4');
insert into table1 values(5,'n5');

2.3 Mysql到Hive–從Mysql導入數據到Hive

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
flush privileges;
sqoop import --connect jdbc:mysql://node01:3306/study --username root --password ""--table table1 --hive-import --hive-table table1 -m 1 
sqoop import --connect jdbc:mysql://node01:3306/study --username root --password ""  --as-avrodatafile --table table1 --hive-import --hive-table table2 -m 1
sqoop list-databases --connect jdbc:mysql://node01:3306/study --username root --password ""

2.4 Mysql到Hive–查看Hive中導入的數據

hive
select * from products;

導入參數說明:

sqoop import 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC連接串
--username root      //Mysql用戶名
--password 123       //Myql用戶密碼
--table table1       //Mysql被導出的數據表
--hive-import        //操作類型,導入數據到hive
--hive-table table1  //導入到hive表名
-m 1                 //並行map任務數量

2.5 Hive到Mysql–在Mysql中建立空表

mysql -uroot -p

use study;
create table table2 (id int,name varchar(32));

2.6 Hive到Mysql–從Hive導出數據到Mysql

sqoop export --connect jdbc:mysql://node01:3306/study --username root --password "" --table table2 --export-dir  /user/hive/warehouse/table1 --input-fields-terminated-by '\001'

2.7 Hive到Mysql–Mysql查看導出結果

select * from table2;

Hive導出參數說明:

sqoop export 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC連接串
--username root                //Mysql用戶名
--password 123                 //Myql用戶密碼
--table table2                     //導入Mysql的數據表
--export-dir  /user/hive/warehouse/table1  //Hive表HDFS路徑
--input-fields-terminated-by ‘\001‘                //字段分割符號

2.8 Mysql導入到Hbase

啓動HBase

/home/hduser/hbase/bin/start-hbase.sh

導入數據到Hbase

sqoop import --connect jdbc:mysql://node01:3306/study --username root --password 123 --table table1 --hbase-table table1 --hbase-create-table   --hbase-row-key  id --column-family cf

查看導入結果

hbase shell
list
scan "table1"

Mysql到Hbase參數說明:

sqoop import 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC連接串
--username root         //Mysql用戶名
--password 123          //Myql用戶密碼
--table table1          //Mysql被導出的數據表
--hbase-table table1    //導入到Hbase表名
--hbase-create-table    //自動創建Hbase新表
--hbase-row-key  id     //Hbase新表Key
--column-family cf      //Hbase列族名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章