前置條件
已經(jīng)成功安裝配置Hadoop和Mysql數(shù)據(jù)庫(kù)服務(wù)器,如果將數(shù)據(jù)導(dǎo)入或從Hbase導(dǎo)出,還應(yīng)該已經(jīng)成功安裝配置Hbase。
下載sqoop和Mysql的JDBC驅(qū)動(dòng)
sqoop-1.2.0-CDH3B4.tar.gz :http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz
mysql-connector-java-5.1.28
安裝sqoop
[hadoop@appserver ~]$ tar -zxvf sqoop-1.2.0-CDH3B4.tar.gz
配置環(huán)境變量

拷貝Hadoop核心包和MYSQL驅(qū)動(dòng)包到sqoop的lib目錄
[hadoop@appserver ~]$ cp hadoop-1.1.2/hadoop-core-1.1.2.jar sqoop-1.2.0-CDH3B4/lib/
[hadoop@appserver ~]$ cp mysql-connector-java-5.1.28-bin.jar sqoop-1.2.0-CDH3B4/lib/

配置sqoop-1.2.0-CDH3B4/bin/configure-sqoop文件
注釋掉hbase和zookeeper檢查(除非準(zhǔn)備使用HABASE等HADOOP組件)

啟動(dòng)hadoop集群

啟動(dòng)mysql

創(chuàng)建sqoop用戶

建立sqoop庫(kù),test表,并構(gòu)造測(cè)試數(shù)據(jù)

測(cè)試sqoop連接
[hadoop@appserver ~]$ sqoop list-databases --connect jdbc:mysql://10.120.10.11:3306/ --username sqoop --password sqoop

列出mysql中所有數(shù)據(jù)庫(kù)的名稱
從mysql導(dǎo)入到hdfs中
sqoop ##sqoop命令
import ##表示導(dǎo)入
--connect jdbc:mysql://ip:3306/sqoop ##告訴jdbc,連接mysql的url
--username sqoop ##連接mysql的用戶名
--password sqoop ##連接mysql的密碼
--table test ##從mysql導(dǎo)出的表名稱
--fields-terminated-by '\t' ##指定輸出文件中的行的字段分隔符
-m 1 ##復(fù)制過(guò)程使用1個(gè)map作業(yè)
[hadoop@appserver ~]$ sqoop import --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --fields-terminated-by ':' -m 1

Hadoop中查看導(dǎo)入結(jié)果

從hdfs導(dǎo)出到mysql中
sqoop
export ##表示數(shù)據(jù)從hive復(fù)制到mysql中
--connect jdbc:mysql://ip:3306/sqoop
--username sqoop
--password sqoop
--table test ##mysql中的表,即將被導(dǎo)入的表名稱
--export-dir '/user/root/aa/part-m-00000' ##hive中被導(dǎo)出的文件
--fields-terminated-by '\t' ##hive中被導(dǎo)出的文件字段的分隔符
[hadoop@appserver ~]$ sqoop export --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --export-dir '/user/hadoop/test/part-m-00000' --fields-terminated-by ':' -m 1

Mysql中查看導(dǎo)出結(jié)果

從Mysql導(dǎo)入到Hbase中
參數(shù)說(shuō)明:
Ø hbase_tablename指定要導(dǎo)成hbase的表名
Ø key_col_name指定mysql數(shù)據(jù)庫(kù)表中哪一列作為hbase新表的rowkey
Ø col_fam_name是除rowkey之外的所有列的列族名
[hadoop@appserver ~]$ sqoop import --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --hbase-create-table --hbase-table mysql_sqoop_test --column-family info --hbase-row-key id -m 1


在Hbase中查看結(jié)果
