GoldenGate實時投遞數據到大數據平台(6)– HDFS


    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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM