(九)Hadoop中Mysql集群的搭建及使用
目录
一、目的及要求:
目的:
- 掌握Mysql在集群平台的安装
- 完成Mysql集群的安装
要求:
- MySQL集群的相关服务进程正常启动
- MySQL集群的sql服务能够作为系统服务开机自启动
- MySQL集群的sql服务能够远程链接访问
- 创建表、查询数据等操作正常进行
- MySQL数据库数据在多个sql服务节点之间实现同步
二、环境要求:
操作系统:Linux
Hadoop版本:1.2.1或以上
JDK版本:1.6及以上
- 五台独立PC机或虚拟机
- 主机之间有有效的网络连接
- 已安装CentOS 7.4操作系统
- 所有主机已完成网络属性配置
- 选用MySQLcluster的7.57版本,软件包选择linux通用包Generic,软件包名mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz
- MySQL Cluster的安装和使用需要依赖软件libaio,选用该软件的0.3.109版本,软件包名libaio-0.3.109-13.el7.x86_64.rpm
集群规划:
MySQL数据库的集群版本有管理节点、数据服务节点、SQL服务节点总共3类服务节点,集群中要求至少一.台单独的主机作为管理节点,而集群模式需要满足数据有备份和数据处理能够分布并行的基本要求,所以需要两台或以上的主机作为数据服务节点以及两台或以上的主机作为SQL服务节点,具体规划如下:
主机名 |
IP地址 |
服务描述 |
Cluster-01 |
192.168.10.111 |
MC管理节点 |
Cluster-02 |
192.168.10.112 |
MC数据服务节点 |
Cluster-03 |
192.168.10.113 |
MC数据服务节点 |
Cluster-04 |
192.168.10.114 |
MC SQL服务节点 |
Cluster-05 |
192.168.10.115 |
MC SQL服务节点 |
三、具体步骤:
一.MySQL集群安装环境配置
★MySQL集群版安装过程的所有操作步骤都需要使用root用户进行。
★本项步骤需要在集群中所有主机上进行操作。
1.新建setups文件夹
2.上传相关软件包到root用户下的setups目录下
3.匹配MySQL,mariadb,libiao关键字包,并删除mariadb已有的包,然后查询libiao包,发现已安装,则无需安装。
4.查询是否有MySQL组,发现没有,创建组MySQL。并创建MySQL用户然后加入组中。
5.查看当前系统服务运行状态,然后修改配置文件进行永久关闭。
二.MySQL集群版基本安装配置
★本项步骤需要在集群中所有主机上进行操作。
1.创建存放MySQL相关文件的目录,将软件包解压到目录下。
2.进入系统目录/usr/local/,在该目录下创建MySQL的链接指向MySQLcluster所在的目录,MySQL源路径一实际解压为准。然后创建存放数据的目录data
3.修改数据目录的权限
4.配置MySQL相关的环境变量,修改系统配置文件
5.查看新添加和修改的环境变量
三.配置管理节点
★本项步骤需要在集群中所有管理节点主机上进行操作。
1.创建存放数据的目录,并更改MySQL-cluster目录的所属用户和所属组
2.创建相关配置文件,并进行修改
3.更改当前属组
4.启动管理节点并查看
5.进入控制台
四.配置数据服务节点
★本项步骤需要在集群中所有数据服务节点主机上进行操作。
1.进入系统配置文件目录,创建数据服务节点配置文件并修改。
2.启动并查看数据服务节点
3.查看连接信息
五.配置sql服务节点
★本项步骤需要在集群中所有SQL服务节点主机上进行操作。
1.进入系统配置文件目录,创建数据服务节点配置文件并修改。
2.将MySQL加入系统的可控启动服务目录内,命名为‘MySQL’,启动服务节点,查看系统进程‘MySQL’字样表示启动成功。然后对数据库进行初始化,会显示密码,一定记下。
3.在管理节点上查看节点状况
4.登陆MySQL数据库,修改登陆密码。
5.查看数据库host信息
6.刷新权限
★只有本步骤的验证实在集群中管理节点主机上进行操作,之后的操作仍然是在SQL服务节点主机继续操作。
六.MySQL集群版验证
1.登陆数据库后,创建test数据库
2.在另一个数据节点showdatabases,可以看到已创建
七、集群启动关闭顺序
1.启动顺序
2.关闭顺序
八、集群测试
1.测试一
2.测试二
九.关闭数据节点
四、总结:
MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。
数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。
无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。
通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余。
一、MySQL集群有如下三层:
应用程序层:负责与MySQL服务器通信的各种应用程序。
Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。
NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。
二、其中MySQL数据库集群主要包括如下三部分:
1) SQL节点(SQL node - 下图对应为 mysqld):分布式数据库。包括自身数据和查询中心结点数据
2) 数据节点(Data node - ndbd):集群共享数据(内存中)
3) 管理服务器(Management Server - ndb_mgmd):管理集群 SQL node,Data node