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.mode=tx goldengate.userexit.timestamp=utc gg.log=log4j 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 |
啟動程式
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
生成的資料檔案預設是CSV格式,可以指定分隔符,檔名在hdfs.props中可以配置。
官方支援的版本如下: