Sqoop資料抽取 待續

2021-07-25 09:21:23 字數 1770 閱讀 6667

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 ...