MPP集群
概述
为了支持海量数据存储和处理、高并发处理、高可用性等需求,提供高端数据仓库解决方案,DM提供了大规模并行处理MPP架构。
基本概念MPP:Massive Parallel Processing即大规模并行处理。
EP:Executive Point。MPP 环境内每个实际运行的实例节点称为一个执行节点(基于主备的 MPP 环境内备机除外 )。
主/从EP:MPP 是对等无共享架构,对整个系统来说,每个节点作用都是一样的,用户可以连接到其中的任何一个进行操作。对每个用户会话来说,执行节点具有主从之分。用户会话实际连接的那个节点称为主 EP,其余的节点都称为从 EP。
系统架构
数据分布
并行计划
MPP数据导入
MPP_CLIENT参数用来设置在DM MPP环境下使用dmfldr进行数据装载时的数据分发方式。
客户端分发模式下,数据在dmfldr客户端分发好后直接往指定站点发送数据。
本地分发模式下,导入时,dmfldr直接将数据发送到连接的站点,数据最终在连接的站点;导出时,dmfldr只导出连接站点的数据。
配置模式
DM MPP环境包含两种配置模式:
普通配置:当用户对系统的可靠性要求不高、系统可中断、能保证节点安全或进行简单的MPP测试时,只需使用普通配置。
基于主备的配置:用于数据冗余,保证系统的可靠性。
数据冗余
基于主备的MPP集群在运行过程中,主机对外提供服务,备机则保持主备之间的数据同步,当主机出现故障时,备机替换主机,继续对外提供服务,保证系统的不中断和可靠性。
配置普通MPP集群环境
硬件环境
部署4节点的普通MPP环境,硬件需求:
4台服务器
高速网络(千兆网以上)
普通MPP框架
MPP框架需要考虑分配节点IP、节点实例名、节点端口号、节点MAIL端口号、节点编号。
IP | 实例名 | 端口号 | MAIL端口号 | 节点编号 |
---|---|---|---|---|
192.168.0.1 | EP01 | 5236 | 5347 | 0 |
192.168.0.2 | EP02 | 5236 | 5347 | 1 |
192.168.0.3 | EP03 | 5236 | 5347 | 2 |
192.168.0.4 | EP04 | 5236 | 5347 | 3 |
步骤1:初始化数据库
进入到DM安装路径的bin目录下执行初始化脚本。
IP | 初始化命令 |
---|---|
192.168.0.1 | ./dminit path=…/data instance_name=EP01 db_name=EP01 |
192.168.0.2 | ./dminit path=…/data instance_name=EP02 db_name=EP02 |
192.168.0.3 | ./dminit path=…/data instance_name=EP03 db_name=EP03 |
192.168.0.4 | ./dminit path=…/data instance_name=EP04 db_name=EP04 |
步骤2:配置dm.ini参数
修改每个节点的dm.ini,开启MPP参数。
EP01:
INSTANCE_NAME = EP01
PORT_NUM = 5236
MAIL_INI = 1
MPP_INI = 1
EP02:
INSTANCE_NAME = EP02
PORT_NUM = 5236
MAIL_INI = 1
MPP_INI = 1
EP03:
INSTANCE_NAME = EP03
PORT_NUM = 5236
MAIL_INI = 1
MPP_INI = 1
EP04:
INSTANCE_NAME = EP04
PORT_NUM = 5236
MAIL_INI = 1
MPP_INI = 1
步骤3:配置dmmpp.ini参数
在dm.ini的所在目录下增加dmmpp.ini文件,配置如下:
[service_name1]
mpp_seq_no = 0
mpp_inst_name = EP01
[service_name2]
mpp_seq_no = 1
mpp_inst_name = EP02
[service_name3]
mpp_seq_no = 2
mpp_inst_name = EP03
[service_name4]
mpp_seq_no = 3
mpp_inst_name = EP04
步骤4:配置dmmpp.ctl
通过在DM安装目录下bin目录中执行dmctlcvt进行转换,将dmmpp.ini转换为dmmpp.ctl文件。
./dmctlcvt t2c ../data/EP01/dmmpp.ini
../data/EP01/dmmpp.ctl
转换成功后将dmmpp.ctl文件复制到四个节点的dm.ini所在目录下。
步骤5:配置dmmal.ini参数
在dm.ini所在目录下增加dmmal.ini文件,配置如下:
4个节点的dmmai.ini内容一样
[mal_inst1]
mal_inst_name = EP01
mal_host = 192.168.0.1
mal_port = 5347
[mal_inst2]
mal_inst_name = EP02
mal_host = 192.168.0.2
mal_port = 5347
[mal_inst3]
mal_inst_name = EP03
mal_host = 192.168.0.3
mal_port = 5347
[mal_inst4]
mal_inst_name = EP04
mal_host = 192.168.0.4
mal_port = 5347
步骤6:启动数据库服务
启动每个节点上的数据库服务,即可完成普通MPP环境搭建。
IP | 启动脚本 |
---|---|
192.168.0.1 | ./dmserver …/data/EP01/dm.ini |
192.168.0.2 | ./dmserver …/data/EP02/dm.ini |
192.168.0.3 | ./dmserver …/data/EP03/dm.ini |
192.168.0.4 | ./dmserver …/data/EP04/dm.ini |
配置基于主备的MPP集群环境
硬件环境
搭建2节点基于主备的MPP集群,硬件需求:
4台服务器:两台用于主机,两台用于备机
高速网络(千兆网以上)
基于主备的MPP框架
EP01和EP02是两台主机;EP11是EP01的备机;EP12是EP02的备机;监控器可配置在任一机器上,本次在主机1上进行配置。
IP | 实例名 | 端口号 | MAIL端口号 | 节点编号 | 节点类型 |
---|---|---|---|---|---|
192.168.0.1 | / | / | 5280 | / | 监控器 |
192.168.0.1 | EP01 | 5236 | 5247 | 0 | 主机1 |
192.168.0.2 | EP02 | 5236 | 5247 | 1 | 主机2 |
192.168.0.3 | EP11 | 5236 | 5247 | / | 备机1 |
192.168.0.4 | EP12 | 5236 | 5247 | / | 备机2 |
步骤1:初始化数据库
基于主备的MPP配置,要求主备机数据严格一致,配置主备时通过初始化主机节点,然后拷贝主机数据到备机数据,保证它们的初始状态数据是一致的。
节点IP | 初始化脚本 |
---|---|
192.168.0.1 | ./dminit path=/opt/dmdbms/data instance_name=EP01 db_name=EP01 |
192.168.0.2 | ./dminit path=/opt/dmdbms/data instance_name=EP02 db_name=EP02 |
192.168.0.3 | scp –r root@192.168.0.1:/opt/dmdbms/data/EP01 /opt/dmdbms/data/EP01 |
192.168.0.4 | scp –r root@192.168.0.2:/opt/dmdbms/data/EP02 /opt/dmdbms/data/EP02 |
步骤2:配置dm.ini参数
EP01:
INSTANCE_NAME = EP01
PORT_NUM = 5236
MAIL_INI = 1
ARCH_INI = 1
MPP_INI = 1
EP02:
INSTANCE_NAME = EP02
PORT_NUM = 5236
MAIL_INI = 1
ARCH_INI = 1
MPP_INI = 1
EP11:
INSTANCE_NAME = EP11
PORT_NUM = 5236
MAIL_INI = 1
ARCH_INI = 1
MPP_INI = 1
EP12:
INSTANCE_NAME = EP12
PORT_NUM = 5236
MAIL_INI = 1
ARCH_INI =1
MPP_INI = 1
步骤3:配置dmpp.ini参数
只需要配置两个主机节点,不需要配置备机节点。
[service_name1]
mpp_seq_no = 0
mpp_inst_name = EP01
[service_name2]
mpp_seq_no = 1
mpp_inst_name = EP02
步骤4:配置dmmpp.ctl
通过在DM安装目录下bin目录中执行dmctlcvt进行转换,将dmmpp.ini转换为dmmpp.ctl文件。
./dmctlcvt t2c …/data/EP01/dmmpp.ini
…/data/EP01/dmmpp.ctl
转换成功后将dmmpp.ctl文件复制到四个节点的dm.ini所在目录下。
步骤5:配置dmmal.ini参数
4个节点的dmmal.ini内容是一样的。对比普通配置,新增mpp_monitor配置。
[mal_inst1]
mal_inst_name = EP01
mal_host = 192.168.0.1
mal_port = 5347
[mal_inst2]
mal_inst_name = EP02
mal_host = 192.168.0.2
mal_port = 5347
[mal_inst3]
mal_inst_name = EP11
mal_host = 192.168.0.3
mal_port = 5347
[mal_inst4]
mal_inst_name = EP12
mal_host = 192.168.0.4
mal_port = 5347
[monitor]
mal_inst_name = monitor
mal_host = 192.168.0.1
mal_port = 5280
步骤6:配置dmarch.ini参数
EP01:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/EP01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_MPP1]
ARCH_TYPE = MARCH
ARCH_DEST = EP11
EP02:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/EP02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_MPP1]
ARCH_TYPE = MARCH
ARCH_DEST = EP12
EP11:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/EP01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_MPP1]
ARCH_TYPE = MARCH
ARCH_DEST = EP01
EP12:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/EP02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_MPP1]
ARCH_TYPE = MARCH
ARCH_DEST = EP02
步骤7:MOUNT状态启动服务
节点IP | 启动命令 |
---|---|
192.168.0.1 | ./dmserver /opt/dmdbms/data/EP01/dm.ini mount |
192.168.0.2 | ./dmserver /opt/dmdbms/data/EP02/dm.ini mount |
192.168.0.3 | ./dmserver /opt/dmdbms/data/EP01/dm.ini mount |
192.168.0.4 | ./dmserver /opt/dmdbms/data/EP02/dm.ini mount |
步骤8:设置主机和备机的模式
节点IP | disql连接 | 设置命令 |
---|---|---|
192.168.0.1 | ./disql SYSDBA/SYSDBA@192.168.0.1 | SQL> alter database primary; |
192.168.0.2 | ./disql SYSDBA/SYSDBA@192.168.0.2 | SQL> alter database primary; |
192.168.0.3 | ./disql SYSDBA/SYSDBA@192.168.0.3 | SQL> alter database standby; |
192.168.0.4 | ./disql SYSDBA/SYSDBA@192.168.0.4 | SQL> alter database standby; |
步骤9:启动数据库服务
启动步骤同步骤7:MOUNT状态启动服务。
步骤10:启动dmmpp_monitor
dmmpp_monitor启动需要dmmpp.ctl和dmmal.ini两个文件,拷贝这两个文件到一个目录,如/opt/monitor;然后启动dmmpp_monitor即完成基于主备的MPP集群环境。
./dmmpp_monitor /opt/monitor
dmmpp_monitor使用
启停次序
启动服务按照先主机节点和备机节点,最后dmmpp_monitor的次序启动;
停止服务则按照先停止dmmpp_monitor,再停止备机节点和主机节点的次序。
命令:帮助help
命令:查看状态status
命令:详细信息details
感谢各位!
技术博客社区地址
https://eco.dameng.com