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中可以配置。

官方支持的版本如下:

GoldenGate实时投递数据到大数据平台(6)– HDFS的更多相关文章

  1. GoldenGate实时投递数据到大数据平台(2)- Cassandra

    简介 GoldenGate是一款可以实时投递数据到大数据平台的软件,针对apache cassandra,经过简单配置,即可实现从关系型数据将增量数据实时投递到Cassandra,以下介绍配置过程. ...

  2. GoldenGate实时投递数据到大数据平台(5) - Kafka

    Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...

  3. 大数据学习---大数据的学习【all】

    大数据介绍 什么是大数据以及有什么特点 大数据:是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 大数据是一种方法论:“一切都被记录,一切都被数字化,从数据中寻找需求,寻找知 ...

  4. 转 开启“大数据”时代--大数据挑战与NoSQL数据库技术 iteye

    一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的 ...

  5. GoldenGate实时投递数据到大数据平台(3)- Apache Flume

    Apache Flume Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合,最后存储到一个中心化数据存储系统中,方便进行数据分析.事实上flume也可 ...

  6. GoldenGate实时投递数据到大数据平台(7)– Apache Hbase

    Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...

  7. GoldenGate实时投递数据到大数据平台(4)- ElasticSearch 2.x

    ES 2.x ES 2.x安装 下载elasticSearch 2.4.5, https://www.elastic.co/downloads/elasticsearch 解压下载后的压缩包,启动ES ...

  8. GoldenGate实时投递数据到大数据平台(1)-MongoDB

    mongodb安装 安装 linux下可使用apt-get install mongodb-server 或 yum install mongodb-server 进行安装. 也可以在windows上 ...

  9. [转载] 使用 Twitter Storm 处理实时的大数据

    转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...

随机推荐

  1. Mysql事务原理介绍

    事务 一个事务会涉及到大量的cpu计算和IO操作,这些操作被打包成一个执行单元,要么同时都完成,要么同时都不完成. 事务是一组原子性的sql命令或者说是一个独立的工作单元,如果数据库引擎能够成功的对数 ...

  2. 修改vs2010中html的默认模板

    用vs2010开发,新建html时,html页面会生成HTML 4 XHTML的header,如何把它改成干净的html5风格? 步骤: 修改 你的安装目录\Microsoft Visual Stud ...

  3. python的static方法和class方法

    class Caculator(object): name = "caculator" def __init__(self, x, y): self._x = x self._y ...

  4. jenkins 的一个BUG

    最近更新了一批jenkin插件,更新完问题来了全局设置无法保存了... 报错如下 Stack trace net.sf.json.JSONException: null object at net.s ...

  5. UX求职:FB和微软这些大佬公司看重的UX设计师技能,你还差几条?

    最近是金三银四的求职季,当然,不管你是想求职跳槽,还是想不断充电学习升职加薪,总是要从优秀的一群人中学习. 本文依据 Facebook.微软.Booking 等互联网大佬公司的UX设计师访谈记录,整理 ...

  6. php 中 get_cfg_var() 与 ini_get() 的异同

    背景 get_cfg_var() 取的值是配置文件中的值 ini_get() Gets the value of a configuration option, 则取的当前值(运行时,PHP系统定义) ...

  7. Oracle SPA取报告阶段xml解析失败解决方案

    SPA的整体测试过程可以参考: 记录一则完整的SPA(10g->11g)测试过程 故障描述:数据库字符集:US7ASCII,在SPA分析阶段正常,但在取报告阶段xml解析失败,具体现象如下: S ...

  8. JS怎么控制input框的背景颜色

    $("input").css("background-color","red"); 参考:https://zhidao.baidu.com/ ...

  9. shell基础:1.1脚本执行方式

    echo 后边跟的东西有空格,那么需要加上单引号或双引号.!是有特殊含义的,用单引号原意. 尽管linux不区分文件的后缀,但还是要写上以便于区分. #!Bash    这行不是注释,也不能省略,他的 ...

  10. 关于double精确度的简单问题

    (1)测试TestDouble.java结果 结果:如图,使用double类型的数据进行运算时结果是不准确的. 原因:double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位 ...