Linux系统 CentOS 7怎么搭建集群
CentOS 7下怎么搭建高可用集群。高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。那么新的centos下怎么来搭建高可用集群。
环境:本文以两台机器实现双集热备高可用集群,主机名node1的IP为192168122168 ,主机名node2的IP为192168122169 。
一、安装集群软件必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件
二、配置防火墙
1、禁止防火墙和selinux
修改/etc/sysconfig/selinux确保SELINUX=disabled,然后执行setenforce 0或者reboot服务器以生效
2、设置防火墙规则
三、各节点之间主机名互相解析分别修改2台主机名分别为node1和node2,在centos 7中直接修改/etc/hostname加入本机主机名和主机表,然后重启网络服务即可。
配置2台主机的主机表,在/etc/hosts中加入
四、各节点之间时间同步在node1和node2分别进行时间同步,可以使用ntp实现。
五、各节点之间配置ssh的无密码密钥访问。下面的操作需要在各个节点上操作。
两台主机都要互相可以通信,所以两台主机都得互相生成密钥和复制公钥,相互的节点上的hosts文件是都要解析对方的主机名, 192168122168 node1 192168122169 node2
六、通过pacemaker来管理高可用集群
1、创建集群用户
需要。
需要自己搭建集群。创建一个集群,并同时创建若干个云服务器。您可以通过容器服务直接创建一个包含若干个新云服务器的集群。
云服务器租用价格低于传统的物理服务器租用,且无需支付押金。具有快速供应和部署能力。
一、实战环境
系统版本:CentOS 58x86_64
JAVA版本:JDK-170_25
Hadoop版本:hadoop-220
192168149128namenode (充当namenode、secondary namenode和ResourceManager角色)
192168149129datanode1 (充当datanode、nodemanager角色)
192168149130datanode2 (充当datanode、nodemanager角色)
二、系统准备
1、Hadoop可以从Apache官方网站直接下载最新版本Hadoop22。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src 源码自行编译。(如果是真实线上环境,请下载64位hadoop版本,这样可以避免很多问题,这里我实验采用的是32位版本)
1234 Hadoop
Java
2、我们这里采用三台CnetOS服务器来搭建Hadoop集群,分别的角色如上已经注明。
第一步:我们需要在三台服务器的/etc/hosts里面设置对应的主机名如下(真实环境可以使用内网DNS解析)
[root@node1 hadoop]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail
127001localhostlocaldomain localhost
192168149128node1
192168149129node2
192168149130node3
(注 我们需要在namenode、datanode三台服务器上都配置hosts解析)
第二步:从namenode上无密码登陆各台datanode服务器,需要做如下配置:
在namenode 128上执行ssh-keygen,一路Enter回车即可。
然后把公钥/root/ssh/id_rsapub拷贝到datanode服务器即可,拷贝方法如下:
ssh-copy-id -i ssh/id_rsapub root@192168149129
ssh-copy-id -i ssh/id_rsapub root@192168149130
三、Java安装配置
tar -xvzf jdk-7u25-linux-x64targz &&mkdir -p /usr/java/ ; mv /jdk170_25 /usr/java/ 即可。
安装完毕并配置java环境变量,在/etc/profile末尾添加如下代码:
export JAVA_HOME=/usr/java/jdk170_25/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVE_HOME/lib/dtjar:$JAVE_HOME/lib/toolsjar:/
保存退出即可,然后执行source /etc/profile 生效。在命令行执行java -version 如下代表JAVA安装成功。
[root@node1 ~]# java -version
java version "170_25"
Java(TM) SE Runtime Environment (build 170_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 2325-b01, mixed mode)
(注 我们需要在namenode、datanode三台服务器上都安装Java JDK版本)
四、Hadoop版本安装
官方下载的hadoop220版本,不用编译直接解压安装就可以使用了,如下:
第一步解压:
tar -xzvf hadoop-220targz &&mv hadoop-220/data/hadoop/
(注 先在namenode服务器上都安装hadoop版本即可,datanode先不用安装,待会修改完配置后统一安装datanode)
第二步配置变量:
在/etc/profile末尾继续添加如下代码,并执行source /etc/profile生效。
export HADOOP_HOME=/data/hadoop/
export PATH=$PATH:$HADOOP_HOME/bin/
export JAVA_LIBRARY_PATH=/data/hadoop/lib/native/
(注 我们需要在namenode、datanode三台服务器上都配置Hadoop相关变量)
五、配置Hadoop
在namenode上配置,我们需要修改如下几个地方:
1、修改vi /data/hadoop/etc/hadoop/core-sitexml 内容为如下:
<xml version="10">
<xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile -->
<configuration>
<property>
<name>fsdefaultname</name>
<value>hdfs://192168149128:9000</value>
</property>
<property>
<name>hadooptmpdir</name>
<value>/tmp/hadoop-${username}</value>
<description>A base forother temporary directories</description>
</property>
</configuration>
2、修改vi /data/hadoop/etc/hadoop/mapred-sitexml内容为如下:
<xml version="10">
<xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile -->
<configuration>
<property>
<name>mapredjobtracker</name>
<value>192168149128:9001</value>
</property>
</configuration>
3、修改vi /data/hadoop/etc/hadoop/hdfs-sitexml内容为如下:
<xml version="10"encoding="UTF-8">
<xml-stylesheet type="text/xsl"href=\'#\'" /name>
<value>/data/hadoop/data_name1,/data/hadoop/data_name2</value>
</property>
<property>
<name>dfsdatadir</name>
<value>/data/hadoop/data_1,/data/hadoop/data_2</value>
</property>
<property>
<name>dfsreplication</name>
<value>2</value>
</property>
</configuration>
4、在/data/hadoop/etc/hadoop/hadoop-envsh文件末尾追加JAV_HOME变量:
echo "export JAVA_HOME=/usr/java/jdk170_25/">> /data/hadoop/etc/hadoop/hadoop-envsh
5、修改 vi /data/hadoop/etc/hadoop/masters文件内容为如下:
192168149128
6、修改vi /data/hadoop/etc/hadoop/slaves文件内容为如下:
192168149129
192168149130
如上配置完毕,以上的配置具体含义在这里就不做过多的解释了,搭建的时候不明白,可以查看一下相关的官方文档。
如上namenode就基本搭建完毕,接下来我们需要部署datanode,部署datanode相对简单,执行如下操作即可。
1 fori in`seq 129130` ; doscp -r /data/hadoop/ root@192168149$i:/data/ ; done
自此整个集群基本搭建完毕,接下来就是启动hadoop集群了。
兄弟 您好上海献峰Web服务器集群搭建如下
一 需求分析:
1整体需求:搭建一个高可用的网站服务器集群,能承受高并发请求,能抵御一般的网络攻击,任何一台服务器的退服不影响整个集群的运作,并且能对各服务器的运行情况作出实时监控。
2详细需求分析:
根据需求,计划根据以下拓扑搭建运行环境:
二 详细功能描述:
1前端服务器采用nginx实现反向代理和负载均衡,用keepalive实现HA。此部分由centos1和centos4实现,centos1作为主服务器,centos4作为热备服务器。Nginx会根据不同的请求ip机会均等地把请求发送到后端两台服务器,并且以ip hash的方式保持各个ip的会话。
2后端服务器构建在centos2与centos3上,采用apache作为web发布软件,mysql作为数据库,测试网页用Django来实现。两台服务器的数据库能够自动同步。
3作为热备服务器,centos4在centos1没有故障时并没有业务流量,处于相对空闲的状态,因此在centos4上配置nfs使它成为文件共享服务器,网站文件放在这台服务器上。
4centos5作为监控服务器,运行nagios监控各服务器状态。出现告警时通过告警通知管理员。另外centos5还作为saltstack的服务器,其他主机的软件安装、文件传输、命令运行等操作均通过saltstack批量实现。
三 总体部署描述:
1各个服务器均安装centos64 64位版本,采用cobbler实现批量自动安装。
2各个软件均安装最新的稳定版,centos自带的软件也要进行升级,例如python,Centos自带的版本比较久,会影响Django的运行。
四 详细部署描述:
1nginx设置
Nginx在这里的作用主要是反向代理、作为用户以及服务器之间的缓存、以及以负载均衡的方式把请求发送到后端两台服务器。
采用编译安装的方式安装nginx,具体过程就不在此记述了,不过为了更好地抵挡入侵,建议编译前修改一下安装文件,使入侵者难以查出nginx的版本号,修改安装文件中的nginxh,把相关字段修改如下:
NGINX_VERSION "10" NGINX_VER "webserver" NGINX_VERSION
Nginx的配置文件如下:
212800
default_type application/octet- zone=20;
send_timeout 20;
client_body_buffer_size 1k;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
server_tokens off;
client_body_timeout 20;
client_header_timeout 20;
ip_hash;
server 10003;
server 1000280///100;
limit_rate 500k; 500 502 503 504 /= /
因为后端测试网页是用Django写的,因此nginx就不用处理php等动态网页的请求了。
设置完毕后,把nginx设置为开机启动,可以用如下方式:
echo “/usr/local/nginx/sbin/nginx” >>/etc/rclocal
2Keeplive设置
Keeplive的作用是在两台服务器(centos1、centos4)之间,以VRRP协议实现HA。通过虚拟出一个Virtul IP(本例子中是19216800000)来对外发布业务。两台服务器中的任一台退服了,keeplive会自动把业务转到另一台上。在这里centos1是主服务器,centos4是备用服务器。平时的数据流量只会通过centos1,只有centos1退服了,数据流量才会割接到centos4上。
centos1上的keepalive配置:
! Configuration File @testcom @12700130
virtual_router_id 5119216848139
priority 100
advert_int 1 111119216848138
对于从服务器centos4,只需要把以上配置文件的部分内容修改即可:
1921684814090
同样,配置好配置文件后,把keepalive添加到开机启动中。
对于keepalive,由于是使用VRRP协议来检查对端是否在线的,只要对端能ping通,那么keeplive就会认为对端在线。但也有一种情况是对端服务器没有宕机,但nginx出错关闭了,这种情况下keepalive仍然会判断对端在线,不会把业务割接到备用服务器。因此我们需要在服务器上运行一个脚本,监控nginx进程的状态。假如nginx进程关闭了,先尝试重启nginx,无法重启时就关闭keepalive的进程,使业务割接到备用端。
0条评论