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. LigerUi遮罩的两个方法

    $.ligerDialog.waitting('正在查询,请稍候...'); $.ligerDialog.close();

  2. Tomcat部署及优化

    一.Tomcat安装部署 一.安装jdk和Tomcat 1.上传jdk和Tomcat mkdir -p /opt/tools/ /application ##jdk:jdk-8u131 tomcat: ...

  3. 微信小程序中this使用

    微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...

  4. [LeetCode] 339. Nested List Weight Sum_Easy tag:DFS

    Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...

  5. nodejs+mysql入门实例(删)

    //连接数据库 var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'bdm253137448. ...

  6. shell实现SSH自动登陆【转】

    前言 公司开发使用docker,每次登陆自己开发机总要输入 ssh user_name@ip_string,然后再确认输入password,手快了还经常会输错.作为一个懒人,肯定要找一个取巧的方式,查 ...

  7. iOS UI基础-9.2 UITableView 简单微博列表

    概述 我们要实现的效果: 这个界面布局也是UITableView实现的,其中的内容就是UITableViewCell,只是这个UITableViewCell是用户自定义实现的.虽然系统自带的UITab ...

  8. python进阶(六) 虚拟环境git clone报错解决办法

    在虚拟环境目录,进行git clone xxxxx.git  项目,报如下图错误 解决办法:env GIT_SSL_NO_VERIFY=true git clone xxxx.git

  9. VS基本学习之(变量与常量)

    一.变量与常量 1) 变量        由(定义+赋值+取值组成) 变量的命名规则: ① 变量名组成:字母  数字  下划线  @  汉字 ② 首字母只能用:字母  下划线  @  汉字(不能是数字 ...

  10. jquery $.ajax $.get $.post的区别?

    $.ajax 是 jQuery 底层 AJAX 实现,$.ajax是一种通用的底层封装,$.ajax()请求数据之后,则需要使用回调函数,有beforeSend.error.dataFilter.su ...