Linux系统 CentOS 7怎么搭建集群

Linux系统 CentOS 7怎么搭建集群,第1张

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的进程,使业务割接到备用端。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux系统 CentOS 7怎么搭建集群

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情