1、概述
达梦大规模并行处理 MPP(DM Massively Parallel Processing,缩写 DM MPP)是基于达梦数据库管理系统研发的完全对等无共享式集群组件,支持将多个 DM 数据库实例组织为一个并行计算网络,对外提供统一的数据库服务。使用 DM MPP 可获得以下功能特性支持:
- 支持TB/PB 级数据分析:持数据的并行装载和操作的并行执行,数据分布式存储在各 EP 中,能支持 TB/PB 级数据分析。
- 功能完善:支持绝大部分的 DM 单机版功能,同时支持行、列存储,支持存储过程、触发器、索引、分区表、多媒体数据类型等。
- 高性价比:无需额外配置特殊软、硬件,性价比超高。
- 高可靠性:DM MPP 与 DM 数据守护相结合,为 MPP 系统中的每个 EP 配置一个或多个实时备库,在 EP 发生故障时其对应备库能迅速切换为主库继续提供服务,确保系统的高可用性。
- 超大型集群:支持最多 1024 个 EP,轻松组建超大型集群。
2、操作系统配置
2.1、关闭防火墙并禁用开机自启
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
2.2、关闭seliux
setenforce 0
sed -i s:^SELINUX=.*$:SELINUX=disabled:g /etc/selinux/config
cat /etc/selinux/config
2.3、修改主机名
hostnamectl set-hostname ep01
hostnamectl set-hostname ep02
2.4、配置hosts文件
192.168.188.61 ep01
192.168.188.62 ep02
2.5、配置用户资源限制
vim /etc/security/limits.conf
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
2.6、修改内核参数
vim /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152
3、MPP环境搭建
3.1、配置 dm.ini
分别对两个实例的 dm.ini 进行配置。
MAL_INI = 1
MPP_INI = 1
3.2、配置dmmal.ini
为两个 EP 配置 dmmal.ini 如下,配置完全一样,EP 间可互相拷贝。dmmal.ini 与 dm.ini 放在相同的目录下。
[dmdba@ep01 dmmpp]$ cat dmmal.ini
[MAL_INST1]
MAL_INST_NAME = ep01
MAL_HOST = 192.168.228.61
MAL_PORT = 5269
MAL_INST_HOST = 192.168.188.61
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = ep02
MAL_HOST = 192.168.228.62
MAL_PORT = 5270
MAL_INST_HOST = 192.168.188.62
MAL_INST_PORT = 5237
3.3、配置dmmpp.ctl
dmmpp.ctl 是一个二进制文件,用户不能直接配置,需要先配置 dmmpp.ini。
配置 dmmpp.ini 如下:
dmmpp.ctl 是一个二进制文件,用户不能直接配置,需要先配置 dmmpp.ini。
配置 dmmpp.ini 如下:
[dmdba@ep01 dmmpp]$ cat dmmpp.ini
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = ep01
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = ep02
使用 DM 提供的工具 dmctlcvt 将 dmmpp.ini 转换成 dmmpp.ctl,dmctlcvt 工具在 DM 安装目录的“bin”子目录中。
转换生成的 dmmpp.ctl 需要放在与 dm.ini 同一个目录。
下面的命令将 dmmpp.ini 转换为 dmmpp.ctl,命令中的“TYPE=2”参数表示将文本文件转换成控制文件,也可以使用“TYPE=1”参数进行逆向转换。
[dmdba@ep01 dmmpp]$ dmctlcvt TYPE=2 SRC=/dmdata/dmmpp/dmmpp.ini DEST=/dmdata/dmmpp/dmmpp.ctl
DMCTLCVT V8
convert txt to ctl success!
将生成的 dmmpp.ctl 拷贝至另一 EP,保证 MPP 系统中所有 EP 的 dmmpp.ctl 完全相同。
4、运行MPP
经过前面四个步骤,DM MPP 环境已经配置完成了。分别启动 EP01 和 EP02 的 DM 数据库实例(顺序不分先后),DM MPP 系统即能正常运行,用户就可以登录任一 EP 进行数据库操作了。
[root@ep01 ~]# systemctl start DmServiceep01.service
[root@ep02 ~]# systemctl start DmServiceep02.service
5、停止MPP
需要停止 DM MPP 系统的运行时,只需要停止每个 EP 的 DM 实例即可,没有特别的顺序要求。
若在 DM MPP 系统的运行过程中,某一 EP 发生故障停机,则整个 MPP 系统将处于不能正常服务的状态。当前所有的用户会话会被系统断开,不能进行全局登录,只能进行本地登录。
6、创建分布表
DM MPP支持表数据的哈希分布、随机分布、复制分布、范围分布、LIST分布类型,用户可根据实际情况选择合适的分布类型。MPP的数据分布类型和具体设置在建表时指定,语法如下,建表的其他语法分支可参见《DM8_SQL语言使用手册》。
CREATE [[GLOBAL] TEMPORARY] TABLE <表名定义> <表结构定义>;
<表结构定义>::=<表结构定义1> | <表结构定义2>
<表结构定义1>::= (<列定义> {,<列定义>}[,<表级约束定义>{,<表级约束定义>}]) [ON COMMIT <DELETE | PRESERVE> ROWS] [<PARTITION子句>] [<空间限制子句>] [<STORAGE子句>] [<压缩子句>] [<ROW MOVEMENT子句>] [<DISTRIBUTE子句>]
<表结构定义2>::= [ON COMMIT <DELETE | PRESERVE> ROWS] [<空间限制子句>]
[<STORAGE子句>] [<压缩子句>]AS <不带INTO的SELECT语句>[<DISTRIBUTE子句>];
<DISTRIBUTE子句>::=DISTRIBUTED[<RANDOMLY>|<FULLY>]
|DISTRIBUTED BY [<HASH>] (<列名> {,<列名>})
|DISTRIBUTED BY RANGE (<列名> {,<列名>})(<范围分布项> {,<范围分布项>})
|DISTRIBUTED BY LIST (<<列名> {,<列名>}>)(<LIST分布项>
{,<LIST分布项>})
<范围分布项>::= VALUES LESS THAN (<表达式>{,<表达式>}) ON <实例名>
|VALUES EQU OR LESS THAN (<表达式>{,<表达式>}) ON <实例名>
<LIST分布项>::= VALUES (<表达式>{,<表达式>}) ON<实例名>
更多学习资料请访问:https://eco.dameng.com




