• 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

  • 相关阅读:
    EXTJS 基本使用
    EXTJS 常用控件的使用
    EXTJS 验证与表单提交
    EXTJS 常用方法
    禁用USB移动盘的方法
    常用sql 函数练习示例
    .Net 中的反射(反射特性) Part.3
    Delphi調用.NET的WebService
    c#写的串口通讯
    打印控制
  • 原文地址:https://www.cnblogs.com/margiex/p/8479957.html
Copyright © 2020-2023  润新知