sqoop主要用於在hdfs、關係型資料庫之間傳遞資料,可以將關係型資料庫資料匯入到hdfs,也可以將hdfs資料匯出到關聯式資料庫。本文主要講解一下使用sqoop進行單庫單錶以及分庫分表資料的抽取方法。
"sqoop_import_orders">$$
""/>
$/mr-job.xml
mapred.job.queue.name
$ com.jd.ebsdi.mapreduce.workflow.name
$ com.jd.ebsdi.mapreduce.batchnum
mapreduce.map.class
map class
mapred.reduce.tasks
0
mapred.output.value.class
org.apache.hadoop.io.text
mapreduce.outputformat.class
org.apache.hadoop.mapreduce.lib.output.textoutputformat
mapred.input.dir
需要增量抽取的hdfs目錄
mapred.output.dir
輸出目錄
com.jd.ebsdi.import.data.rows
解析資料用的datarow
mapred.input.pathfilter.class
inputpathfilter--目錄檔案過濾器
com.jd.ebsdi.core.mapreduce.input.starttime
抽取的開始時間starttime
com.jd.ebsdi.core.mapreduce.input.endtime
抽取的截止時間,一般是最新的更新時間
"end"/>
"kill"/>
說一下inputpathfilter用來實現根據開始、結束時間過濾本次需要抽取的檔案,其實很簡單,主要實現accept方法,然後根據檔案的更新時間判斷即可,主要**如下:
@override
public
boolean
accept(path path)
}
"sqoop_import_subdepot">
"uri:oozie:sqoop-action:0.2">$$
"" />
mapred.job.queue.name
$
import
--connect
資料庫連線url
--username
使用者名稱--password
密碼--query
--split-by
一般為主鍵id,主要用來劃分多個map任務
--fields-terminated-by
\001
--列分隔符
--lines-terminated-by
\002
--行分隔符
--null-string
--null-non-string-m4
--抽取資料劃分的map任務個數
--target-dir
輸出的hdfs目錄
sqoop實現資料的抽取
1.sqoop help 2.列出主機所有的資料庫 sqoop list databases connect jdbc mysql username root password 123456 3.檢視某乙個資料庫下面的所有資料表 sqoop list tables connect jdbc mysq...
sqoop定時增量抽取資料到hive
1 第一次全量抽取,並建立hive表 keberos認證 kinit kt hdfs.keytab hdfs 從oracle導資料到hive sqoop import connectjdbc oracle thin xx.xx.xx.xx 1521 xx username password tabl...
Sqoop通過條件實現資料的抽取
我們可以匯入表時使用sqoop匯入工具,where 子句的乙個子集。它執行在各自的數 據庫伺服器相應的sql查詢,並將結果儲存在hdfs的目標目錄。sqoop import connect jdbc mysql username root password 123456 table emp add ...