600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Hadoop集群搭建(七:MySQL的安装配置)

Hadoop集群搭建(七:MySQL的安装配置)

时间:2022-08-15 10:45:31

相关推荐

Hadoop集群搭建(七:MySQL的安装配置)

实验内容

步骤一:MySQL集群版安装环境配置

注:1、MySQL集群版安装过程的所有操作步骤都需要使用root用户进行;

2、此项步骤需要在集群中所有主机上进行;

1、首先,MySQL相关软件包上传到root用户家目录的新建“setups”目录下。

命令:

#mkdir setups

2、匹配MySQL关键字查询包,列出本机yum方式安装的MySQL软件,并卸载删除已安装的MySQL;

命令:

#rpm -qa | grep mysql

#yum list installed | grep mysql

#rpm -e –nodeps 软件包名

#yum -y remove mysql

3、匹配MariaDB关键字查询包,列出本机yum方式安装的MariaDB软件,并卸载删除已安装的MariaDB;

命令:

#rpm -qa | grep mariadb

#rpm -e –nodeps 软件包名

#rpm -qa | grep libaio

#yum list installed | grep libaio

#rpm -ivh 软件包名

4、检查MySQL用户组是否存在,若不存在则创建MySQL用户组;

命令:

#cat /etc/group | grep mysql

#groupadd mysql

5、检查MySQL用户是否存在,若不存在则创建MySQL用户并加入到MySQL用户组中;

命令:

#cat /etc/passwd | grep mysql

#useradd -r -g mysql mysql

6、查看前系统中SELinux服务的运行状态,需要进行永久关闭;

命令:

#sestatus -v

#vi /etc/selinux/config

找到配置项“SELINUX”所在行,将其改为以下内容:

SELINUX=disable

#reboot //重启主机

步骤二:MySQL集群版基本安装配置;

注:以下步骤需要在集群中所有主机上进行操作;

1、MySQL Cluster软件包“mysql-cluster-gpl-7.5.7- linux-glibc2.12-x86_64.tar.gz”我们一提前上传与用户家目录的“setups”目录下;

命令:

#mkdir /mysql

#cd /mysql

#tar -xzf ~/setups/ mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz

2、进入系统的“/usr/local”目录,在该目录下创建一个名为“MySQL”的连接指向MySQL Cluster所在的目录,MySQL源路径以MySQL Cluster软件包实际解压包的路径为准。

命令:

#cd /usr/local

#ln -s /mysql/ mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64mysql

3、进入连接的MySQL目录,创建存放MySQL数据库数据的目录,更改该数据目录的权限设置

命令:

#cd mysql

#mkdir data

#chmod 770 data

4、更改当前“MySQL”目录的所属用户和所属组

命令:

#chown -R mysql

#chgrp -R mysql

5、配置MySQL相关的环境变量,修改系统的配置文件;

命令:

#vi /etc/profile

在文件末尾添加以下内容:

#mysql-cluster environment

MYSQL_CLUSTER_HOME=/usr/local/mysql

PATH=$MYSQL_CLUSTER_HOME/bin:$PATH

Export MYSQL_CLUSTER_HOME PATH

6、使新配置的环境变量立即生效,并查看环境变量是否生效;

命令:

#source /etc/profile

#echo $MYSQL_CLUSTER_HOME

#echo $PATH

步骤三:配置管理节点Cluster-01;

注:该项的所有操作需要在集群中所有管理节点主机上进行操作。

1、进入MySQL Cluster软件所在目录,创建存放MySQL Cluster数据目录;

命令:

#cd /usr/local/mysql

#mkdir mysql-cluster

2、更改“mysql-cluster”目录的所属用户和所属组;

命令:

#chown -R mysql mysql-cluster

#chgrp -R mysql mysql-cluster

创建用于存放MySQL Cluster管理节点配置文件的目录,创建MySQL Cluster管理节点的配置文件,并对配置文件进行修改;

命令:

#mkdir etc

#cd stc

#touch config.ini

#vi config.ini

在文件中添加如下内容:

[NDB_MGMD DEFAULT]DataDir=/usr/local/mysql/data[NDBD DEFAULT]NoOfReplicas=2DataMemory=512MIndexMemory=32MDataDir=/usr/local/mysql/data[NDB_MGMD]NodeId=1HostName=Cluster-01[NDBD]NodeId=2HostName=Cluster-02[NDBD]NodeId=3HostName=Cluster-03[NDBD]NodeId=4HostName=Cluster-04[NDBD]NodeId=5HostName=Cluster-05

4、更改当前“etc”目录的所属用户和所属组,并启动MySQL Cluster的管理节点;

注:*首次启动或修改之后启动需要添加参数“--initial”,正常启动时不需要添加参数“--initial”;

命令:

#chown -R mysql .

#chgrp -R mysql .

#ndb_mgmd -f /usr/local/mysql/etc/config.ini –initial

5、查看系统进程信息,若存在信息中包含“ndb_mgmd”关键字的进程则表示MySQL Cluster的管理节点启动成功,进入MySQL Cluster管理节点的控制台,查看节点状况;

命令:

#ps -ef | grep ndb_mgmd

#ndb_mgm

>show

>exit

步骤四:配置数据服务节点Cluster-02、Cluster-03;

注:*以下步骤需要在集群中所有数据服务节点主机上进行操作。

1、进入系统配置文件所在目录,创建MySQL Cluster数据服务节点的配置文件,并对配置文件进行修改;

命令:

#cd /etc

#touch my.conf

#vi my.conf

在其中添加如下内容:

[MYSQLD]ndbclusterndb-connectstring=Cluster-01[MYSQL_CLUSTER]ndb-connectstring=Cluster-01

2、启动数据服务节点,查看系统进程信息,若存在信息中包含“ndbd”关键字的进程则表示MySQL Cluster的数据服务节点启动成功,并进入MySQL Cluster管理节点的控制台。

命令:

#ndbd –initial

#ps =ef | grep ndbd

#ndb_mgm

>show

>exit

步骤五:配置SQL服务节点Cluster-04、Cluster-05;

注:*以下步骤需要在集群中所有SQL服务节点主机上进行操作

1、进入系统配置文件所在目录,创建MySQL Cluster数据服务节点的配置文件,并对配置文件进行修改;

命令:

#cd /etc

#touch f

#vi f

在其中添加如下内容:

2、对MySQL数据库的安装进行初始化,执行该命令后会有一些提示信息,特别注意最后一行的“[Note]”相关信息,信息内容如下:

[Note] A temporary password is generated for

root@localhost:XXXXXXXXXXXXXX

信息末尾的 “XXXXXXXXXXXXXX”是安装程序随机生成的初始密码, 在首次以root用户登录数据库时雷要使用,非常重要 一定要记下;

命令:

# mysql-initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data

3、将MySQL加入到系统的可控制启动服务目录内,并将服务命名为“MySQL”,启动SQL服务节点,查看系统进程信息,若存在信息中包含“ndbd”关键字的进程则表示MySQL Cluster的数据服务节点启动成功;

命令:

#cp /usr/local/mysql/support-files/mysql.server/etc/init.d/mysql

#service mysql start

#ps -ef | grep mysql

4、进入MySQL Cluster管理节点的控制台;

命令:

#ndb_mgm

>show

>sxit

注意:只有本步骤的验证实在集群中管理节点主机上进行操作,之后的操作仍然是在SQL服务节点主机继续操作;

5、登录MySQL数据库,会提示输入密码,该密码为之前进行安装初始化时所显示的初始化密码,然后进入MySQL的控制台;

命令:

#mysql -u root -p

5.1、在控制台使用命令“SET PASSEORD=PASSWORD(‘mysqlabc’);”,重新设置数据库的“root”用户的登录密码,其中“mysqlabc”部分为自定义的新密码。

5.2、在MySQL控制台使用命令“USE mysql;” 切换到 “mysql” 数据库。

5.3、在MySQL控制台使用命令“UPDATE user SET host='%' WHERE user='root'” , 修改数据库的root用户所接收请求来源的范围。 允许远程登录。

5.4、使用命令“select host from user where user=root”查看数据库的host信息6、使新配置的环境变量立即生效,并查看环境变量是否生效;

5.5、在MySQL控制台使用命令“FLUSH PRIVILEGES”,刷新数据库的权限信息使新配置的权限生效。

5.6、在MySQL控制台使用命令 "exit”可以退出,MySQL控制台返回到系统命令行界面。

6、启添加系统防火墙的端口策略, 对外开启MySQL所使用的端口“3306”,并重启系统防火墙服务,使新添加的端口策略生效;

命令:

#firewall-cmd --zone=public --add-port=3306/tep --permanent

#firewall-cmd--reload

步骤六:MySQL集群版验证;

1、在任意一台SQL服务 节点主机 上使用命令“mysql-u root -p” 登录到MySQL数据库,会提示输入密码,正确输入密码成功登录MySQL数据库之后会进入MySQL的控制台;

命令:

# mysql -u root -P

2、在MySQL控制台使用命令“CREATEDATABASE test;"创建数据库“test”;

命令:

>CREATE DATABASE test;

3、在MySQL控制台使用命令“SHOW DATABASES;"显示数据库列表,若存在名为“test”的数据库,则表示集群同步数据成功;

命令:

> SHOW DATABASES

注:可以使用命令"ssh 目标主机名或IP地址”远程登录到集群中其它SQU服务节点主机进行操作,完成所有操作后使用命令"logout"退出当前登录

4、在任意一台集群主机上执行;

命令:

#ndb_mgm -e show

步骤七:MySQL集群测试;

1、测试一:

a)现在我们在其中一个SQL节点上进行相关数据库的创建然后到另外一 个SQL节点上看看数据是否同步。

在SQL节点1.上执行:

shell> /usr/local/mysql/bin/mysql -u root -P

mysql>show databases;mysql>create database aa;

mysql>use aa;

mysql>CREATE TABLE ctest2 Gi INT) ENGINE=NDB;

//这里必须指定数据库表的引擎为NDB,否则同步失败

mysql> INSERT INTO ctest2 O VALUES (1);

mysql> SEL ECT * FROM ctest2;

b)然后在SQL节点2上看数据是否同步过来了

经过测试,在非master.上创建数据,可以同步到master上查看表的引擎是不是NDB,>show create table表名:

2、测试二:

a) 关闭一个数据节点,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来。

首先把数据节点1重启,然后在节点2上添加数据

在SQL节点2上操作如下:

mysql> create database bb;

mysql> use bb;

mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;

mysql> use aa;

mysql> INSERT INTO ctest2 O VALUES (3333);

mysql> SELECT* FROM ctest2;

b) 等数据节点1启动完毕,启动数据节点1的服务

#/usr/local/mysql/bin/ndbd -initial

#service mysqld start

c) 然后登录进去查看数据

# /ustrlocal/mysql/bin/mysql -u root p

可以看到数据已经同步过来了,说明数据可以双向同步了。

出现的问题与解决方案

本实验未遇到错误,介绍几个排错技巧:

1、一般,报错的时候都会有error code。比如ERROR 1504,Error: 2303等等,遇到这些报错,我们可以先用mysql的报错工具perror查看,比如查看报错号为1504的错误,使用命令为:perror --ndb 1504

2、在出现报错以后,查看WARNINGS或ERRORS信息,比如出现Error CODE : 1528 Failed TO CREATE LOGFILE GROUP后输入SHOW WARNINGS;,会显示出具体的报错信息:

Got error 1504 'Out of logbuffer memory' FROM NDB

Failed TO CREATE LOGFILE GROUP

以上报错代码,均可在官网找到解决方案。

知识拓展

1、MySQL集群优缺点;

优点:

a) 99.999%的高可用性

b)快速的自动失效切换

c)灵活的分布式体系结构,没有单点故障

d)高吞吐量和低延迟

e)可扩展性强,支持在线扩容

缺点:

a)存在很多限制,比如:不支持外键

b)部署、管理、配置很复杂

c)占用磁盘空间大,内存大

d)备份和恢复不方便

e)重启的时候,数据节点将数据load到内存需要很长时间

2、MySQL集群如何存储数据;

a)Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交。

b)每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好(或者无法准备该事务)。

c)Master等待所有Slave发送OK或ABORT消息

如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;如果Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。

e)每个Slave等待来自Master的OK或ABORT消息。

如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。

f)当Master收到来自所有Slave的确认后,就会报告该事务被提交(或中止),然后继续进行下一个事务处理。

3、使用SQLyog连接MySQL集群192.168.10.114或者192.168.10.115

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。