GoldenGate實時投遞資料到大資料平臺(6)– HDFS

margiex發表於2018-02-27

    GoldenGate可以實時將RDBMS的資料投遞到HDFS中,在前面的文章中,已經配置過投遞到kafka, mongodb等資料平臺,本文通過OGG for bigdata的介質中自帶的示例演示實時將資料寫入到HDFS檔案系統。

安裝hadoop

安裝hadoop3.0.0,設定相應的環境變數
export HADOOP_HOME=/u01/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

啟動hadoop

bin/hadoop namenode -format
sbin/start-all.sh

確保hadoop能正常啟動,如有問題,可自行搜尋文件解決。
[oracle@ol66 sbin]$ jps
11685 NodeManager
11157 SecondaryNameNode
10844 NameNode
11405 ResourceManager
12126 Jps
10959 DataNode


OGG環境準備

建立ogg投遞資料到HDFS時,資料儲存的目錄
[oracle@ol66 sbin]$ hdfs dfs -mkdir /ogg
[oracle@ol66 sbin]$ hdfs dfs -ls /     
Found 1 items
drwxr-xr-x   - oracle supergroup          0 2018-02-27 22:58 /ogg

資料寫入到/ogg/hdfs目錄

hdfs dfs -mkdir /ogg/hdfs

配置OGG for bigdata需要的環境變數
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server


OGG安裝配置

安裝ogg for bigdata軟體, 進入ggsci,建立子目錄
ggsci>create subdirs

退回到作業系統命令列,拷貝安裝目錄下 AdapterExamples/big-data/hdfs 所有檔案到 dirprm/ 目錄下,然後編輯hdfs.props檔案。主要修改內容有如下兩項

  • 根據安裝的hadoop路徑,修改gg.classpath中hadoop lib的路徑;
  • 修改rootFilePath的屬性為/ogg/hdfs,即前面建立的目錄
    儲存退出。hdfs.props完整的內容如下:

gg.handlerlist=hdfs

gg.handler.hdfs.type=hdfs
gg.handler.hdfs.includeTokens=false
gg.handler.hdfs.maxFileSize=1g
gg.handler.hdfs.rootFilePath=/ogg/hdfs
gg.handler.hdfs.fileRollInterval=0
gg.handler.hdfs.inactivityRollInterval=0
gg.handler.hdfs.fileNameMappingTemplate=${fullyQualifiedTableName}_${groupName}_${currentTimestamp}.txt
gg.handler.hdfs.partitionByTable=true
gg.handler.hdfs.rollOnMetadataChange=true
gg.handler.hdfs.authType=none
gg.handler.hdfs.format=delimitedtext
gg.handler.hdfs.format.includeColumnNames=true

gg.handler.hdfs.mode=tx

goldengate.userexit.timestamp=utc
goldengate.userexit.writers=javawriter
javawriter.stats.display=TRUE
javawriter.stats.full=TRUE

gg.log=log4j
gg.log.level=INFO

gg.report.time=30sec

gg.classpath=/u01/hadoop/share/hadoop/common/*:/u01/hadoop/share/hadoop/common/lib/*:/u01/hadoop/share/hadoop/hdfs/*:/u01/hadoop/share/hadoop/hdfs/lib/*:/u01/hadoop/etc/hadoop/:

javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=ggjava/ggjava.jar

 

詳細的引數配置可參考官方文件。

重新進入GGSCI,使用示例引數和示例佇列建立投遞程式。
GGSCI>add replicat rhdfs, exttrail AdapterExamples/trail/tr

rhdfs.prm的內容如下:

REPLICAT rhdfs
-- Trail file for this example is located in "AdapterExamples/trail" directory
-- Command to add REPLICAT
-- add replicat rhdfs, exttrail AdapterExamples/trail/tr
TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.props
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 10000
MAP QASOURCE.*, TARGET QASOURCE.*;


啟動程式
GGSCI>start rhdfs

GGSCI (ol66) 13> info rh*

REPLICAT   RHDFS     Initialized   2018-02-27 23:37   Status STARTING
Checkpoint Lag       00:00:00 (updated 00:00:03 ago)
Process ID           12217
Log Read Checkpoint  File AdapterExamples/trail/tr000000000
                      First Record  RBA 0


GGSCI (ol66) 14> info rh*

REPLICAT   RHDFS     Last Started 2018-02-27 23:38   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
Process ID           12217
Log Read Checkpoint  File /u01/ogg4bd/AdapterExamples/trail/tr000000000
                      First Record  RBA 0


GGSCI (ol66) 15> info rh*

REPLICAT   RHDFS     Last Started 2018-02-27 23:38   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
Process ID           12217
Log Read Checkpoint  File /u01/ogg4bd/AdapterExamples/trail/tr000000000
                      2015-11-06 02:45:39.000000  RBA 5660

可以看到,示例資料已經全部投遞完成,在HDFS上檢視結果:                    

[oracle@ol66 sbin]$ hdfs dfs -ls /ogg/hdfs
Found 2 items
drwxr-xr-x   - oracle supergroup          0 2018-02-27 23:27 /ogg/hdfs/qasource.tcustmer
drwxr-xr-x   - oracle supergroup          0 2018-02-27 23:27 /ogg/hdfs/qasource.tcustord

檢視目錄下的檔案

[oracle@ol66 sbin]$ hdfs dfs -ls /ogg/hdfs/qasource.tcustmer
Found 1 items
-rw-r--r--   1 oracle supergroup        905 2018-02-27 23:28 /ogg/hdfs/qasource.tcustmer/QASOURCE.TCUSTMER_RHDFS_2018-02-27_23-27-54.255.txt

檢視具體的檔案內容

[oracle@ol66 sbin]$ hdfs dfs -cat /ogg/hdfs/qasource.tcustmer/QASOURCE.TCUSTMER_RHDFS_2018-02-27_23-27-54.255.txt

image

生成的資料檔案預設是CSV格式,可以指定分隔符,檔名在hdfs.props中可以配置。

官方支援的版本如下:

image

image

image

相關文章