您的位置:首页 > 大数据

GoldenGate实时投递数据到大数据平台(6)– HDFS

2018-02-27 17:21 585 查看
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





生成的数据文件默认是CSV格式,可以指定分隔符,文件名在hdfs.props中可以配置。

官方支持的版本如下:











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐