centos7-dmhs同步kafka搭建部署(保姆级)_kafka dmhs,2024年最新大数据开发开发入门基础教程

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

请选择设置时区 21:   #默认直接回车如果不是21 中国时区填21

安装类型:

1 典型安装

2 服务器

3 客户端

4 自定义

请选择安装类型的数字序号 [1 典型安装]:   #默认直接回车选择典型安装,典型是包含了服务器和客户端安装,自定义是可选择

所需空间: 1869M

请选择安装目录 [/home/dmdba/dm/dmdbms]:   #按要求安装路径,有特殊要求填入其他路径

可用空间: 68G

是否确认安装路径(/home/dmdba/dm/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:  #默认直接回车Y

安装前小结

安装位置: /home/dmdba/dm/dmdbms

所需空间: 1869M

可用空间: 68G

版本信息:

有效日期:

安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):

是否确认安装? (Y/y:是 N/n:否):y

2024-01-08 11:03:48

[INFO] 安装达梦数据库…

2024-01-08 11:03:48

[INFO] 安装 基础 模块…

2024-01-08 11:03:53

[INFO] 安装 服务器 模块…

2024-01-08 11:03:54

[INFO] 安装 客户端 模块…

2024-01-08 11:03:57

[INFO] 安装 驱动 模块…

2024-01-08 11:03:59

[INFO] 安装 手册 模块…

2024-01-08 11:03:59

[INFO] 安装 服务 模块…

2024-01-08 11:03:59

[INFO] 移动日志文件。

2024-01-08 11:04:00

[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:

/home/dmdba/dm/dmdbms/script/root/root_installer.sh

安装结束

------------------------------以上为安装过程选项----------------------------------------------------------

再开一个窗口或者切换到root用户下执行上述命令

su - root

/home/dmdba/dm/dmdbms/script/root/root_installer.sh

4.5.2 ​​​​​​​初始化数据库实例
su - dmdba

/home/dmdba/dm/dmdbms/bin/dminit INI_FILE=/dbdata/dmdata/DAMENG/dm.ini PATH=/dbdata/dmdata extent_size=16 page_size=32 case_sensitive=y log_size=2048
​​​​​​​4.5.3 注册数据库服务
/home/dmdba/dm/dmdbms/script/root/dm_service_installer.sh   -t dmserver -dm_ini /home/dmdba/dm/dmdbms/bin/dm.ini  -p dmserverd
​​​​​​​4.5.4 修改初始化数据库实例后创建的配置文件
su - root

mv /usr/lib/systemd/system/DmServicedmserverd.service /usr/lib/systemd/system/dmserverd.service

mv /etc/systemd/system/multi-user.target.wants/DmServicedmserverd.service /etc/systemd/system/multi-user.target.wants/dmserverd.service

mv /home/dmdba/dm/dmdbms/bin/DmServicedmserverd  /home/dmdba/dm/dmdbms/bin/dmserverd
vim /usr/lib/systemd/system/dmserverd.service

---------------------------------------------------以下红色是需要修改部分-----------------------------------

[Unit]

Description=DM Instance Service(DmServicedmserverd).

After=network.target remote-fs.target

[Service]

Type=forking

PIDFile=/home/dmdba/dm/dmdbms/bin/pids/dmserverd.pid

ExecStart=/home/dmdba/dm/dmdbms/bin/dmserverd start

ExecStop=/home/dmdba/dm/dmdbms/bin/dmserverd stop

PrivateTmp=true

User=dmdba

TasksMax=infinity

LimitCORE=infinity

LimitNOFILE=100000

LimitNPROC=100000

[Install]

WantedBy=multi-user.target

---------------------------------------------------以上红色是需要修改部分-----------------------------------

​​​​​​​4.5.5 启动实例服务
systemctl start dmserverd.service
​​​​​​​4.5.6 登录验证

/home/dmdba/dm/dmdbms/bin/disql SYSDBA/SYSDBA

4.5.7 优化命令路径
su - dmdba

cat <<EOF>>  /home/dmdba/dm/.bash_profile

export PATH=$PATH:/home/dmdba/dm/dmdbms/bin/

export PATH=$PATH:/home/dmdba/dm/dmdbms/tool/

EOF

生效环境配置

source ~/.bash_profile

验证

5 安装dmhs

mkdir  /home/dmdba/dmhs

/opt/dm/dmhs_V4.3.18_dm8_kafka_rev136029_rh6_64_20230802.bin -i

--------------------下列为安装过程所需选择配置-------------------------

Extract install files…

1.English(English)

2.Simplified Chinese(简体中文)

Select the language to install[2.Simplified Chinese(简体中文)]:2  ##选择2简体中文

/tmp/DMHSInstall/install.log

1.免费试用达梦数据实时同步

2.使用已申请的Key文件

验证许可证文件[1.免费试用达梦数据实时同步]:2  ##选择2

Key文件路径:/opt/dm/dmhs20240925.key   #填入授权key路径

Key文件限制信息如下:

有效日期:2024-09-25

用户名称:达梦公司产品试用

服务器颁布类型:试用版

发布类型:企业版

Key类型:企业版

授权用户数:无限制

并发连接数:无限制

1.精简版

2.完整版(web客户端)

3.自定义

安装类型[1.精简版]:1    ##按需求选择,本次选择1

1.实时同步软件服务器

2.远程部署工具

3.实时同步软件配置助手

4.手册

所需磁盘空间:540 MB

安装目录: [/home/dmdba/dmhs]

该路径不为空,是否继续安装?[Y or N]y

安装路径可能存在覆盖安装

1.统一部署

2.现在初始化

是否初始化达梦数据实时同步系统[1.统一部署]:1   #选择1

正在安装

default start …    default finished.

server start …    server finished.

hs_agent start …    hs_agent finished.

hsca start …    hsca finished.

doc start …    doc finished.

postinstall start …    postinstall finished.

正在创建快捷方式

安装成功

远程部署工具配置

远程部署工具名称[HsAgent]:   #默认回车

主机Ip(外网)192.168.248.34:192.168.248.34   #填入外网IP地址,如果内网外网两个IP地址的话

远程部署工具管理端口5456:  #默认回车

内置数据库轮询间隔3#默认回车

内置数据库IP[]:192.168.248.34  #有内网IP地址填写内网IP,本次我只设置一个IP地址

内置数据库端口15236:   #默认回车

内置数据库用户名[SYSDBA]: #默认回车

内置数据库密码[SYSDBA]: #默认回车

服务脚本环境变量设置

依赖库路径

提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。

请配置依赖库路径:/home/dmdba/dmhs

远程控制服务

1.自动

2.手动

启动方式:[2.手动]2     #选择2手动

正在创建远程控制服务

达梦数据实时同步V4.0安装完成

更多安装信息,请查看安装日志文件:

/home/dmdba/dmhs/log/install.log

#默认回车结束

--------------------上述为安装过程所需选择配置-------------------------

​​​​​​​5.1 开启归档与逻辑日志

disql sysdba/SYSDBA

#开启归档日志

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE ADD ARCHIVELOG 'DEST=/dbarch/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';

ALTER DATABASE OPEN;

#开启逻辑日志

sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);

select value from v$parameter where name = 'RLOG_APPEND_LOGIC';

#复制libdmoci.so到指定目录

cp -a /home/dmdba/dmhs/db/bin/libdmoci.so  /home/dmdba/dmhs/bin

****#****检查依赖

cd /home/dmdba/dmhs/bin

ldd libdmhs_exec.so

​​​​​​​5.2 创建dmhs.hs

vim /home/dmdba/dmhs/bin/dmhs.hs

<dmhs>

        <base>

                <lang>ch</lang>

                <mgr_port>5345</mgr_port>

                <ckpt_interval>60</ckpt_interval>

                <siteid>1</siteid>

                <version>2.0</version>

        </base>

        <cpt>

                <db_type>dm8</db_type>

                <db_server>192.168.248.100</db_server>

                <db_port>5236</db_port>

                <db_user>SYSDBA</db_user>

                <db_pwd>SYSDBA</db_pwd>

                <ddl_mask>0</ddl_mask>

                <char_code>PG_UTF8</char_code>

                <arch>

                        <clear_interval>600</clear_interval>

                        <clear_flag>0</clear_flag>

                </arch>

                <send>

                        <ip>192.168.248.100</ip>

                        <mgr_port>5445</mgr_port>

                        <data_port>5446</data_port>

                        <trigger>0</trigger>

                        <constraint>0</constraint>

                        <identity>1</identity>

                        <filter>

                                <enable>

                                  <item>XGQ.*</item>

                                </enable>

                        </filter>

                        <map>

                        </map>

                </send>

        </cpt>

</dmhs>

​​​​​​​5.3 在源端数据库建立数据库对象

执行创建促发器语句

执行sql

5.4 ​​​​​​​创建dmhs的topic

/opt/bigdata/kafka_2.11-2.0.0/bin/kafka-topics.sh  --create --zookeeper kafka1:2181,kafka2:2181,kafka3:2181 --replication-factor 3 --partitions 6 --topic DMHS

​​​​​​​5.5 查看dmhs的topic是否创建

/opt/bigdata/kafka_2.11-2.0.0/bin/kafka-topics.sh --describe --zookeeper kafka1:2181,kafka2:2181,kafka3:2181 --topic DMHS

​​​​​​​5.6 查看消费者的界面是否有消息推送过来

/opt/bigdata/kafka_2.11-2.0.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.248.100:9092 --topic DMHS --from-beginning

​​​​​​​5.7 将kafka目录下的libs目录的文件,全部copy 至dmhs软件bin目录下

cp /opt/bigdata/kafka_2.11-2.0.0/libs/*  /home/dmdba/dmhs/bin/

​​​​​​​5.8 创建dmhs_kafka.properties

vim /home/dmdba/dmhs/bin/dmhs_kafka.properties

--------------下述dmhs_kafka.properties​​​​​​​配置文件内容-------------------------------

DMHS config file path

dmhs.conf.path=/home/dmdba/dmhs/bin/dmhs.hs

这里设置的是kafka集群主机名和端口

bootstrap.servers=kafka1:9092,kafka2:9092,kafka3:9092

kafka topic name

kafka.topic.name=DMHS

#dmhs.sendKey.parse.format=schema:source:tableName

#dmhs.sendKey.parse.format=primary_keys_values

#dmhs.sendTopic.parse.format=schema:source:tableName

#topic.map.conf.path=/dmhs_kafka/bin_0329/tableTopicMap.properties

whether to enable JSON format check

json.format.check=0

How many messages print cost time

print.message.num=1000

How many messages batch to get

dmhs.min.batch.size=100

kafka serializer class

key.serializer=org.apache.kafka.common.serialization.StringSerializer

value.serializer=org.apache.kafka.common.serialization.StringSerializer

kafka partitioner config

partitioner.class=com.dameng.dmhs.dmga.service.impl.OnePartitioner

kafka request acks config

acks=-1

max.request.size=5024000

dmhs.min.batch.size=3000

batch.size=1048576

linger.ms=3

buffer.memory=134217728

retries=3

#enable.idempotence=true

compression.type=none

max.in.flight.requests.per.connection=1

send.buffer.bytes=1048576

metadata.max.age.ms=300000

--------------上述dmhs_kafka.properties​​​​​​​配置文件内容-------------------------------

​​​​​​​5.9 创建dmhs.hs

vim /home/dmdba/dmhs/bin/dmhs.hs

下列为dmhs.hs配置文件内容这个配置文件适用与dmhs和kafka都在一台机器上------------

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>ch</lang>

        <mgr_port>5345</mgr_port>

        <chk_interval>3</chk_interval>

        <ckpt_interval>60</ckpt_interval>

        <siteid>1</siteid>

        <version>2.0</version>

    </base>

    <exec>

                <recv>

                        <data_port>5346</data_port>

                </recv>

                <db_name></db_name>

                <exec_thr>1</exec_thr>

                <case_sensitive>0</case_sensitive>

                <exec_policy>2</exec_policy>

                <toggle_case>0</toggle_case>

                <commit_policy>1</commit_policy>

                <enable_merge>0</enable_merge>

                <is_kafka>1</is_kafka>

    </exec>

<cpt>

        <db_type>dm8</db_type>

        <db_server>127.0.0.1</db_server>

        <db_user>SYSDBA</db_user>

        <db_pwd>SYSDBA</db_pwd>

        <db_port>5236</db_port>

        <dict_dir>/home/dmdba/dmhs/dmhs_dict</dict_dir>

        <char_code>PG_GB18030</char_code>

        <ddl_mask></ddl_mask>

        <arch>

            <clear_interval>600</clear_interval>

            <clear_flag>1</clear_flag>

        </arch>

        <send>

            <ip>192.168.248.100</ip>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

            <net_pack_size>256</net_pack_size>

            <net_turns>0</net_turns>

            <crc_check>0</crc_check>

            <trigger>0</trigger>

            <constraint>0</constraint>

            <identity>0</identity>

            <filter>

                <enable>

                    <item>*.*</item>

                </enable>

                <disable/>

            </filter>

            <map>

        </map>

        </send>

    </cpt>

</dmhs>

----------------------上述为dmhs.hs配置文件内容---------------------------

​​​​​​​5.10 创建json_format.xml

vim  /home/dmdba/dmhs/bin/json_format.xml

----------------------下列为json_format.xml配置文件内容---------------------------

char_replace=(",\"),(\,\\)

batch_commit=1

gs_flag=1

cur_time_format=(yyyy-mm-ddThh:mi:ss)

commit_time_format=(yyyy-mm-ddThh:mi:ss)

lob_piece=false

clob_format=char

set_null=1

opcmd_len=3

SET_QUOTA=1

need_crlf=false

json_format={"meta":{"time":"#COMMIT_TIME","userid":"#USERID","op":"#OP_TYPE","scn":"#LSN","rowid":"#ROWID","trans":"#TRXID","seq":#MSG_SEQ,"size":#MSG_NUM,"table":"#SCHEMA.#TABLE","idx":"#IDX","posttime":"#TIME"},"data":{#NEW_VALUES},"key":{#OLD_VALUES}}

----------------------上列为json_format.xml配置文件内容---------------------------

参数说明:

char_replace=(“,”),(,):该参数用于定义同步数据如果出现特殊字符‘\’需要通过该参数准换后同步输出为’',否则该特殊字符会丢失。

json_format:该参数用于配置同步后数据输出的格式,可以自定义设置输出格式。

1.5.5准备kafka依赖文件

将kafka软件安装目录下的lib目录下的全部文件打包复制到dmhs目的端的安装目录的bin目录下作为dmhs的依赖文件:

目录结构为:/dmsoft/dmhs/bin/lib/{kafka依赖文件}

5.11 ​​​​​​​创建DMHS启动脚本

vim /home/dmdba/dmhs/bin/start_dmhs_kafka.sh

#!/bin/sh

#export LANG=zh_CN.GBK

export LD_LIBRARY_PATH=/home/dmdba/dm/dmdbms/bin:/home/dmdba/dmhs/bin/

ulimit -c unlimited

export LANG=zh_CN.UTF-8

java -Djava.ext.dirs="/home/dmdba/dmhs/bin/lib:." com.dameng.dmhs.dmga.service.impl.ExecDMHSKafkaService /home/dmdba/dmhs/bin/dmhs_kafka.properties
5.1​​​2 启动dmhs
/home/dmdba/dmhs/bin/start_dmhs_kafka.sh

​​​​​​​5.13 启动目的端EXEC模块

/home/dmdba/dmhs/bin/dmhs_console

DMHS>start exec

​​​​​​​5.14 在源端配置数据库字典并启动同步

/home/dmdba/dmhs/bin/dmhs_console

DMHS> clear exec lsn

DMHS>  COPY 0 "SCH.NAME IS NOT NULL" DICT|LSN

y

DMHS> start cpt

​​​​​​​5.15 验证是否同步成功

在192.168.248.100执行创建表数据或者删除更新数据

/home/dmdba/dm/dmdbms/bin/disql sysdba/SYSDBA

create table test (id int,name varchar(20000));

insert into test values(11,'tom');

commit;

在192.168.248.101主机上打开消费者看是否有数据进来

/opt/bigdata/kafka_2.11-2.0.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.248.100:9092 --topic DMHS --from-beginning

-------------------------------以上部署完成-------------------------------

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

LL" DICT|LSN

y


![](https://img-blog.csdnimg.cn/direct/886b17fcc1724057aacec5687836c9ce.png)



DMHS> start cpt


![](https://img-blog.csdnimg.cn/direct/268d253c43f14f878ee07ed31e380823.png)


### ​​​​​​​5.15 **验证是否同步成功**


****在192.168.248.100执行创建表数据或者删除更新数据****



/home/dmdba/dm/dmdbms/bin/disql sysdba/SYSDBA

create table test (id int,name varchar(20000));

insert into test values(11,‘tom’);

commit;


![](https://img-blog.csdnimg.cn/direct/0e299ccbdbba497bbf0ec2fb6b351b2f.png)


****在192.168.248.101主机上打开消费者看是否有数据进来****



/opt/bigdata/kafka_2.11-2.0.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.248.100:9092 --topic DMHS --from-beginning


![](https://img-blog.csdnimg.cn/direct/4bc3765a65d342cb9440d33ab3e33a36.png)


**-------------------------------以上部署完成-------------------------------**




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-PUqMIeQo-1713117112678)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值