日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Sqoop1使用手册

發布時間:2024/9/27 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sqoop1使用手册 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sqoop安裝、使用手冊

1 Sqoop簡介

Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關系型數據庫(例如: MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型數據庫中。

2 準備

2.1 環境說明

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虛擬機里Linux系統版本

[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 驅動為mysql-connector-java-5.1.31-bin.jar

2 Oracle驅動為ojdbc14.jar

3 安裝

3.1安裝Sqoop

1)安裝mysql相關服務

rpm tar –zxvf sqoop-1.4.5-cdh5.3.3.tar.gz

vi ~/.bash_profile

#新增環境變量

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)配置數據庫驅動

#拷貝mysql驅動到sqoop的lib內

cp mysql-connector-java-5.1.31-bin.jar $SQOOP_HOME/lib/

#拷貝oracle驅動到sqoop的lib內

cp ojdbc14.jar $SQOOP_HOME/lib/

3.2 安裝Sqoop插件(Oraoop)

1)方法一) sqoop-site里配置參數

<property>

???????? <name>sqoop.connection.factories</name>

<value>org.apache.sqoop.manager.oracle.OraOopManagerFactory,com.cloudera.sqoop.manager.DefaultManagerFactory</value>

</property>

#測試sqoop import時不指定split-by 但m為2個以上時是否報錯。

2) 方法二) 如果方法一未生效需要按照插件的方式安裝。

tar -zxvf oraoop-1.6.0-cdh4.tgz

chmod +x install.sh

./install.sh

#按照提示完成sqoop安裝

#測試通方法一

3.3 安裝問題

暫無.

4 配置

4.1 Oraoop插件oralce側配置

配置主要是在啟用插件的sqoop。這里需要在oracle那邊開啟訪問系統表的權限.

#oracle里給如下權限或則角色,推薦采用方法二

方法一)

createsession

selectany dictionary(權限)

方法二)

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數據庫表的信息,一般sqoop安裝測試用

sqoop list-databases --connect jdbc:mysql://192.168.56.10:3306/FenSheng_ling_test-username root --password 123456

?

2)sqoop import導入表到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導入視圖到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導入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方式導入表至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值轉義、特殊字符(\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數據到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部分字段到關系型數據庫

?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驗證工具,可執行SQL返回結果集

?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分區導入

?

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 總結

仔細跟蹤log,具體問題具體分析.

總結

以上是生活随笔為你收集整理的Sqoop1使用手册的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。