Sqoop1使用手册
Sqoop安裝、使用手冊(cè)
1 Sqoop簡(jiǎn)介
Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(kù)(mysql、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如: MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中。
2 準(zhǔn)備
2.1 環(huán)境說明
1 Sqoop安裝采用tar包的方式.
2 Hadoop版本為hadoop-2.5.0-cdh5.3.3,Hive版本為hive-0.13.1-cdh5.3.3
3 Sqoop下載地址:
a)? CDH版
http://archive-primary.cloudera.com/cdh5/cdh/5/
b) Apache版
http://archive.apache.org/dist/sqoop/
?
2.1.1虛擬機(jī)里L(fēng)inux系統(tǒng)版本
[root@localhost ranger-0.5.0-usersync]# cat /etc/issue | grep Linux
Red Hat Enterprise Linux Server release 6.5 (Santiago)
2.1.2 JDK版本
[root@localhost native]# java -version
java version "1.7.0_67"
Java(TM) SE RuntimeEnvironment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-BitServer VM (build 24.65-b04, mixed mode)
2.1.3mysql版本
[root@localhost native]# mysql -uroot -proot-e"select version()";
Warning: Using a password onthe command line interface can be insecure.
+-----------+
| version() |
+-----------+
| 5.6.14 ???|
+-----------+
注:
1 Mysql 驅(qū)動(dòng)為mysql-connector-java-5.1.31-bin.jar
2 Oracle驅(qū)動(dòng)為ojdbc14.jar
3 安裝
3.1安裝Sqoop
1)安裝mysql相關(guān)服務(wù)
rpm tar –zxvf sqoop-1.4.5-cdh5.3.3.tar.gz
vi ~/.bash_profile
#新增環(huán)境變量
exportSQOOP_HOME=/root/sqoop-1.4.5-cdh5.3.3
PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin
source ~/.bash_profile
2)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)
#拷貝mysql驅(qū)動(dòng)到sqoop的lib內(nèi)
cp mysql-connector-java-5.1.31-bin.jar $SQOOP_HOME/lib/
#拷貝oracle驅(qū)動(dòng)到sqoop的lib內(nèi)
cp ojdbc14.jar $SQOOP_HOME/lib/
3.2 安裝Sqoop插件(Oraoop)
1)方法一) sqoop-site里配置參數(shù)
<property>
???????? <name>sqoop.connection.factories</name>
<value>org.apache.sqoop.manager.oracle.OraOopManagerFactory,com.cloudera.sqoop.manager.DefaultManagerFactory</value>
</property>
#測(cè)試sqoop import時(shí)不指定split-by 但m為2個(gè)以上時(shí)是否報(bào)錯(cuò)。
2) 方法二) 如果方法一未生效需要按照插件的方式安裝。
tar -zxvf oraoop-1.6.0-cdh4.tgz
chmod +x install.sh
./install.sh
#按照提示完成sqoop安裝
#測(cè)試通方法一
3.3 安裝問題
暫無(wú).
4 配置
4.1 Oraoop插件oralce側(cè)配置
配置主要是在啟用插件的sqoop。這里需要在oracle那邊開啟訪問系統(tǒng)表的權(quán)限.
#oracle里給如下權(quán)限或則角色,推薦采用方法二
方法一)
createsession
selectany dictionary(權(quán)限)
方法二)
createsession
select_catalog_role(角色)
方法三)
selecton v_$instance
selecton dba_tables
selecton dba_tab_columns
selecton dba_objects
selecton dba_extents
selecton dba_segments — Required for Sqoop imports only
selecton v_$database — Required for Sqoop imports only
selecton v_$parameter — Required for Sqoop imports only
.
5 使用
5.1 Sqoop常用命令
1) 顯示mysql數(shù)據(jù)庫(kù)表的信息,一般sqoop安裝測(cè)試用
sqoop list-databases --connect jdbc:mysql://192.168.56.10:3306/FenSheng_ling_test-username root --password 123456
?
2)sqoop import導(dǎo)入表到hdfs
sqoop import --verbose --fields-terminated-by ','--connect jdbc:mysql://192.168.56.10:3306/test --username root --password123456 --table test_shen --target-dir /home/hadoop/john/ --split-by'NAME'??-m 2
?
3)sqoop導(dǎo)入視圖到hdfs
sqoop import --verbose --fields-terminated-by '~'--connect jdbc:mysql://192.168.56.10:3306/Test --username root --password123456
--query 'SELECT * FROM view_a WHERE?$CONDITIONS' -m1 target-dir /home/hadoop/test --delete-target-dir
4)sqoop導(dǎo)入hbase
sqoop?import?--connect?jdbc:oracle:thin:@192.56.56.10:1521:STBIGDB?--username?BIG?--password?123456?--query?"select?ROWKEY,?"a"?from(select?id||'_'||order_id?as?ROWKEY,?area_id?||'^|'||cust_id?'^|'?||?saler?as?"a"?from?BIG.TB_HB?where?\$CONDITIONS)"?--split-by?ROWKEY?--hbase-create-table?--hbase-table?test_biguser2?--column-family?f1?--hbase-row-key?ROWKEY
5)sqoop rac方式導(dǎo)入表至hdfs
sqoop import -D oraoop.oracle.rac.service.name=ods.ahdx-Dmapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom"--connect jdbc:oracle:thin:@"(DESCRIPTION = (ADDRESS_LIST =? (ADDRESS= (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521)) (ADDRESS = (PROTOCOL =TCP)(HOST = 192.168.56.10)(PORT = 1521)) (LOAD_BALANCE = yes) (FAILOVER = on) )(CONNECT_DATA = (SERVICE_NAME = xman.orcl) (SRVR = DEDICATED) ))"--username INNER --password 123456 --table PUT.ORDER --delete-target-dir--target-dir /user/shenl/order --fetch-size 5000 --fields-terminated-by '|'--lines-terminated-by '\001' --null-string '\\N' --null-non-string '\\N' --direct-m 21;
?
6)sqoop oracle null值轉(zhuǎn)義、特殊字符(\r,\n,\0)過濾
sqoop import --connectjdbc:oracle:thin:@192.168.56.10:1521:EDW --username EDA --password edwedaw--table SHENL -m 1 --warehouse-dir /user/hive/warehouse/ --hive-import--hive-table shenl --as-textfile --hive-drop-import-delims --null-string '\\N'--null-non-string '\\N'
7)sqoop export HDFS數(shù)據(jù)到oracle
sqoop export -Doraoop.nologging=true-Dsqoop.export.records.per.statement=10 -Dsqoop.export.statements.per.transaction=10--connect jdbc:oracle:thin:@192.168.56.10:1521:EDW --username INT --password123456 --table SHENL --export-dir /user/shenl/ --input-fields-terminated-by'\001' --lines-terminated-by '\006' --input-null-non-string '\\N' --input-null-string'\\N' -m 4
?
8)sqoop export部分字段到關(guān)系型數(shù)據(jù)庫(kù)
?sqoop export --connect 'jdbc:sqlserver://192.168.56.10;username=sa;password=sasa;database=Test'--table test_shen --export-dir /home/hadoop/test/code.txt--input-fields-terminated-by '~' --columns date,NAME
?
9)sqoop eval驗(yàn)證工具,可執(zhí)行SQL返回結(jié)果集
?sqoop eval --connect"jdbc:oracle:thin:@192.168.56.10:1521:orcl" --username shenl--password shenl -query "select count(*) from ORDER "
?
10)sqoop oraoop插件之指定oralce分區(qū)導(dǎo)入
?
sqoop import -Dmapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom"-Doraoop.import.partitions=T1,T2,T3 --connectjdbc:oracle:thin:@"(DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.56.10)(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVICE_NAME= orcl)
??? )
? )
" --username shenl --password shenl --table MYTEST--delete-target-dir --target-dir /sqoopTest2 --fields-terminated-by ','--lines-terminated-by '\n' --fetch-size 5000 --hive-drop-import-delims--null-string '\\N' --null-non-string '\\N' -m 2
?
????????????
6 總結(jié)
仔細(xì)跟蹤log,具體問題具體分析.
總結(jié)
以上是生活随笔為你收集整理的Sqoop1使用手册的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 必优腻子与多乐士腻子区别?
- 下一篇: Virtaulbox虚拟机添加磁盘