1. 程式人生 > >Sqoop1.99 從SQL Server導資料到HDFS

Sqoop1.99 從SQL Server導資料到HDFS

一、建立link

1.建立mssql 的link

 啟動sqoop2-shell

設定埠 set server --host master --port 12000 --webapp sqoop

建立連線 create link -c generic-jdbc-connector

Name: mssql
JDBC Driver Class: com.microsoft.sqlserver.jdbc.SQLServerDriver
JDBC Connection String:jdbc:sqlserver://1xxx.xxx:1433;databaseName=xxx
Username: sa
Password: ***********
JDBC Connection Properties: 
There are currently 0 values in the map:
entry# 

埠號可以通過執行exec sys.sp_readerrorlog 0, 1, 'listening'來檢視,或者在wind的cmd裡面通過netstat -ano配合tasklist |findstr ""來檢視

2.建立hdfs的link

create link -c hdfs-connector

Name: hdfs
HDFS cluster
URI: hdfs://192.168.116.10:9000
Conf directory: /usr/local/src/hadoop-2.6.1/etc/hadoop

二、建立job

create job -f mssql -t hdfs

Name: mssqltohdfs

From database configuration

Schema name: dbo      #這裡填dbo
Table name: xxxx
Table SQL statement: 
Table column names: 
Partition column name: xxxx
Null value allowed for the partition column: 
Boundary query: 

ToJob configuration

Output format: 
  0 : TEXT_FILE
  1 : SEQUENCE_FILE
Choose: 0
Compression format: 
  0 : NONE
  1 : DEFAULT
  2 : DEFLATE
  3 : GZIP
  4 : BZIP2
  5 : LZO
  6 : LZ4
  7 : SNAPPY
  8 : CUSTOM
Choose: 3        #這裡選擇gzip壓縮,可以被hive直接識別
Custom compression format: 
Output directory: /sqoop/hdfs

Throttling resources

Extractors:           #這兩個相當於map 和reduce的個數
Loaders: 

三、開啟任務

 start job -n mssqltohdfs

檢視進度 status job -n mssqltohdfs

設定檢視報錯資訊set option --name verbose --value true

可以看http://192.168.116.10:8088/cluster檢視看進度

或者到http://192.168.116.10:19888/jobhistory/檢視日誌情況,可以看到任務執行完成了

到hdfs裡面檢視一下是否成功匯入資料了:hdfs dfs -ls /sqoop/hdfs

可以看到有很多gz檔案,已經成功匯入了。