以下更改主机名,配置网络,关闭防火墙,关闭selinux,时间同步,主机映射和免密登录三台虚拟机都要进行,不同的是主机名和IP地址,其余配置信息都相同
为了便于集群管理,需要更改主机名
为了便于使用和管理,需要配置静态IP
1.打开”虚拟网络编辑器”
进入网络配置文件,进行修改,命令如下:
再添加IP地址,自行设置,前面的部分要与网关一致,最后一位的主机号可随意,建议三台主机分别设置为101,102,103
再添加网关,即前面查看到的网关
注意ONBOOT是否等于yes,将它设置为yes开机自启
可以用ping命令是否能够ping通
如果能够ping通,即完成网络配置
为了三台服务器能够互相通信,需要关闭防火墙
可以看到防火墙开启状态
可以看到我们的防火墙已经关闭了
为了避免安装过程出现各种错误,建议关闭
如下图可以看到当前状态是开启的
为了防止服务器之间因时间的不同而导致出现问题,建议同步网络时间
如果没有安装,则执行以下命令
为了便于集群管理,需要将三台服务器的主机名和IP做映射关系
首先进入所在文件目录,进行编辑,命令如下:
将主机ip和主机名一一对应写入进去
为了便于集群之间的互联通信,需要进行免密登录的操作,可以减少输入密码次数,避免重复输入密码
2.然后连续按四下回车,出现如下就ok了
然后ls或ll查看,可以发现有两个文件
复制ssh生成的本地公钥至远程服务器,命令如下:
如果不需要输入密码说明已经完成好免密设置
ll命令可以看到如下安装包
可以看到有三个jdk,需要全部卸载
再次查看就会发现已经卸载完了
这里我将Java安装在/usr/local下,如果不加-C和后面的目录参数,则默认安装在当前目录
写下如下内容,将Java的安装目录添加进去
之后配置hadoop环境变量,如下
1.同Java和Hadoop安装,重命名之后配置环境变量,之后source生效
将1写入myid文件,如下
上述配置可以在一台节点机器上配置完成,然后通过scp命令远程传输到另外两台数据节点机器上,只需修改myid文件里的对应的数字即可,同时将/etc/hosts和java,hadoop以及~/.bashrc的环境变量配置文件也分发过去。例如我在hadoop01上配置完成的,传输至hadoop02,hadoop03
查看hdfs的各节点状态信息
至此,Hadoop的HA高可用版已经搭建完成
在编辑文件的时候出现”只读”,没有权限且加了sudo出现
“不在 sudoers 文件中。此事将被报告。”问题
将当前用户添加到sudoers文件中
将自己的用户添加进去,格式与root一致,如下设置
之后保存退出,再切换回自己的用户即可
常见高可用集群解决方案
corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色;
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。通常它与corosync的结合方式有两种:
pacemaker作为独立的守护进程运行;
由于corosync的早期版本不具备投票能力,所以集群内的节点总数应为奇数,并且大于2
查看日志信息,可以明显的看到corosync是否启动正常(在每一个节点上都要查看)
如果正常后,就可以使用crm status命令来查看当前集群节点信息了
当前有两个节点在线,node2和node3
四、pacemaker资源管理器(CRM)命令注解
1、crm有两种工作方式
就是在命令行中直接输入命令(如上个命令执行时使用的crm status)
进入到crmsh中交互执行
上图表示所有的资源都在node2上,也就是
服务果然没有回来,看我咋把它收回来的a_c!
第一步,删除组限定,最好的办法使用edit命令,同样也可使用命令
dc-version=":对那一个资源指定多少权重在那一个节点资源己在node3上运行了
事实证明,资源还是夺回来了
英文不好,可能注释的不够准确,各们看官请多多海涵a_c~~~~~~