手记-集群概述

本文深入探讨了高可用集群、负载均衡集群及高性能运算集群的概念、作用和实现方式。讲解了集群如何通过多台服务器协同工作来提供更稳定、高效的服务,并讨论了集群的扩展方案、心跳检测机制以及解决脑裂问题的方法。
在生产环境中,高可用集群与负载均衡集群是分不开的,(因为负载均衡的设备是需要高可用的,这个设备需要有主、从2台等。如果主设备出现了故障,第二台可以直接接替主的工作,继续将用户的请求,分发到后排的网站节点服务器。)
  所以有时候,高可用也是负载均衡集群,负载均衡集群也是高可用集群。
   集群是一组服务器,用来提供比单一服务器更稳定、更高效、也更具扩展性的一种服务平台。这种服务器平台就叫做集群。

扩展方案:
     1、向上扩展。对硬件的扩展,如:I5换I7的处理器等。
CPU多性能不一定就好,需要做出 仲裁机制。合理分配CPU使用。
     性价比问题:
     数据迁移问题。(更换硬盘需要停止服务也就是数据读取)

     2、向外扩展(水平扩展):横向,添加对应的新的PC一起分担,

均衡分配用户请求:
方案1、利用DNS:一个主机名对应多个IP地址。
弊端:如果有一个PC出现了故障,DNS仍然会把请求发送到对应的主机上。也就是DNS不知道下面的主机是否正常工作。即使有一台出现了故障,DNS仍然会将用户的请求,根据解析记录分配到对应的IP

方案2、大多企业使用。前端设备:按照规则设置,将用户请求,依次分配到后面的WEB服务器,除了依次的方案,还有其他的一些方案。还可以进行后端设备健康检查
问题:用户如果更新WEB网页,就会保存后端的数据库中。无法正确存储图片等。
这时候需要一台共享存储NFS,存放用户提交的图片,视频等信息。


集群的定义:
   Cluster,集群、群集
   集群是一组协同工作的服务集合。对于外界用户来说,集群就是一个独立的服务实体。但实际上,在集群的内部,有俩个或俩个以上的服务实体在协调,配合完成一系列的工作。

1、LVS---通过软件实现负载均衡
  是一种软件的实现方式。
2、RAC---通过软件实现负载均衡
  是oracle剔出的一套,负载均衡的解决方案。
软件实现负载均衡优点:
  1、成本低。
  2、自由度搞,可以随意更改配置。可以根据公司需要来定制网络环境。

3、F5-BIG-IP-GTM---硬件实现负载均衡--成本很高。
  最大的特点:可以将需要用到的功能做成芯片,性能,稳定性都比软件好很多。有响应的厂商。价格很高。

集群的类型:
负载均衡(Load  Balancer cluster)群集(LBC)
     通过单位时间内,执行的任务数多,来提升效率
高可用运算集群比较:
   如果A包含10个子任务,每个子任务需要1小时:
   1台计算机,完成需要10小时10个子任务。
   10台计算机,完成任务需要10小时,每台计算机处理了10个子任务,总共100个子任务。

   高可用(High  Available)群集

高性能运算(High Performance Computer)群集
高性能云计算集群功能:
   高性能计算集群就是将一个大的运算任务拆分,每一个节点计算其中一部分运算内容,最后再讲每台计算机的处理结果汇总,得到想要的答案。这就是高性能运算集群。
     缩短单个任务的执行时间短,执行的任务数少,来提高效率
负载均衡集群比较:
  如果A包含10个子任务,每个子任务需要1小时:
  一台计算机,完成任务需要10小时10个子任务。
  10台计算机,完成任务需要1小时,每台计算机处理了1个子任务,总共完成了10个子任务。


集群满足的条件:
  1、必须有相应的共享存储。也就是不管用户访问到哪个PC都能看到相同的数据。
  2、拥有灵活添加或删除某个服务器,这样的一个功能。
  3、当一个节点发生故障,能及时发现并得到修复。如果一台主机损坏,在集群的环境中,应该有相应的机制,能够及时检测到损坏的主机,从而跳过这台主机,将用户的请求转发到其他主机。


1、负载均衡集群:
  1、分担系统的负载:减少一台的压力,有多台一起分担
     可以在,原有的集群上,再搭建出对应的集群进行分担原有集群的压力。
  2、监控节点的运行情况。
     监看状态检查。需要有响应的设备来检查后端提供服务的主机,是否正常。必须要有这样的机制。
重要的是:需要哪些软件来实现:负载均衡集群。


2、高可用集群:用来保证持续提供服务的集群
高可用工具:
     1、Heartbeat HA:Linux中高可用工程中的组成部分,提供了:心跳检测,性能接管等。并且支持冗余电路。用的还是比较多的。
     2、RHCS:Rad Head ...:红帽集群套件,主要提供高可用,高可靠性,负载均衡。能廉价的实现高性价比的集群解决方案。红帽自己的解决方案。
     3、ROSE:美国的公司提供的防止业务主机因为一些不可避免的 qinyi 或则计划性的down机,而出现的一些问题,这是一个商业软件,功能强大,价钱高。
     4、keepalived:做高可用用到的非常多的软件,与LVS集合起来非常好:能够检测所有主机的状态,并且实现高可用的功能,以及支持健康状态检查。当一个主机出现了问题,能通过keepalived及时发现,并且将这个故障节点从集群中剔出。
 标准:99%。2个9.;99.9% 3个9  

主要功能:
  1、为应用程序提供持久访问
  2、出现故障自动切换
需要有2台数据一样的服务器。
心跳检测。如果检测到1台故障,抢夺IP,服务,数据等。

实现心跳检测都需要通过心跳线
  1、使用RS232串口线,实现异步传输的标准接口。
  2、通过现有网卡
     必须保证每台主机有多与1块的网卡, eth1,连接eth1,在eth1之间牵一根网线,每隔一段时间发送数据包,检测是否存活,本身的网卡提供用户访问。

脑列:如果心跳线断了(或许是一些其他原因导致);此时2台主机是正常工作的,但是因为心跳线断了,则2台主机就会人为对方主机down机了。这个时候2台主机就会去抢一些共享的数据,资源等。从而导致一些问题。
带来的影响:
  1、数据不完整,甚至是在南极的。(都需要有共享数据,提供给用户的服务器都是挂载的共享数据)
     如果脑列:2台主机都会读取或写入共享服务中的数据。从而导致数据混乱
  2、对服务造成影响,导致服务不可达到。
     正常情况下:备用主机会将down掉主机的IP拿过来使用
     这俩台主机的业务网卡是联通着的。
解决脑列方案:
  方案一:
     预防为主,添加冗余心跳线(冗余一根心跳线,也就是2条心跳线)
     比较被动,不能真正解决需求。
  方案二:
     强制隔离。爆头(Stonish:Shoot the other node in the head)(需要电源交换机,当备用主机通过心跳线检测不到工作主机,备用主机就会向电源交换及发送一个指令,从而将在工作中的主机电源断开,从而保证工作的主机完全停止工作)
  方案三:用工具实现。(ipfail:可以为2台主机设置参考IP:192.168.1.254(这种IP一般是网关))工具中设置好参考IP。会主动ping这个参考IP。如果ping自己的网关ping不同,则表示自己处理问题,就会停止自身的服务,以及释放资源等。自己将自己掐掉。


3、高性能运算集群
用来提供,单个计算机所不能提供的强大的分析能力,进行一些告诉运算,和存储的解决方案,
广泛应用在:军工,气象,生物等领域。
  大数据处理软件:
     1、hadoop
     2、spark
     3、storm
分布式文件系统,实现高性能运算必须要有。
     hadoop:提供的是:HDFS
处理数据的机制,功能:如何将1PE的数据拆分成100G的数据,怎么来拆分。
     hadoop:处理数据的机制,也就是将数据打碎的机制:Mapreduce

Hadoop:中,Mapreduce告诉客户端如何将速度打碎,然后分配不同的节点主机上,再一个有HDFS的支持,能够将打碎后的数据练习起来。




### 回答1: 很高兴为您提供CentOS 7搭建Hadoop 3.3.集群手记。 1. 安装Java 首先,需要安装Java。可以使用以下命令安装OpenJDK 8: sudo yum install java-1.8.-openjdk-devel 2. 下载Hadoop 下载Hadoop 3.3.版本,并将其解压缩到/opt目录下: sudo tar -xzf hadoop-3.3..tar.gz -C /opt 3. 配置Hadoop 进入Hadoop目录并编辑hadoop-env.sh文件: cd /opt/hadoop-3.3. sudo nano etc/hadoop/hadoop-env.sh 将JAVA_HOME设置为Java安装路径: export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk 编辑core-site.xml文件: sudo nano etc/hadoop/core-site.xml 添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:900</value> </property> </configuration> 编辑hdfs-site.xml文件: sudo nano etc/hadoop/hdfs-site.xml 添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3./data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3./data/datanode</value> </property> </configuration> 编辑mapred-site.xml文件: sudo cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml sudo nano etc/hadoop/mapred-site.xml 添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 编辑yarn-site.xml文件: sudo nano etc/hadoop/yarn-site.xml 添加以下内容: <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> 4. 启动Hadoop 格式化Hadoop文件系统: sudo bin/hdfs namenode -format 启动Hadoop: sudo sbin/start-all.sh 5. 验证Hadoop 在浏览器中访问http://localhost:987/,可以看到Hadoop集群的状态。 在Hadoop集群中创建一个目录: sudo bin/hdfs dfs -mkdir /test 在Hadoop集群中上传一个文件: sudo bin/hdfs dfs -put etc/hadoop/core-site.xml /test 在Hadoop集群中查看文件: sudo bin/hdfs dfs -ls /test 以上就是CentOS 7搭建Hadoop 3.3.集群手记,希望对您有所帮助。 ### 回答2: 本篇文章主要介绍了如何在CentOS7系统上搭建Hadoop-3.3.0的集群,并在这个过程中遇到的一些问题和解决方案。 一、环境准备 操作系统:CentOS7 JDK版本:1.8.0_282 Hadoop版本:hadoop-3.3.0.tar.gz(可自行到官网下载) 二、系统设置 1、关闭防火墙 因为Hadoop集群需要互相通信和数据传输,所以需要关闭系统的防火墙,以避免互相之间的阻拦。 systemctl stop firewalld systemctl disable firewalld 2、设置hostname 为了方便节点之间的通信,需要给每个节点设置一个唯一的hostname。可以通过以下命令设置: hostnamectl set-hostname <hostname> 三、安装 JDK Hadoop运行依赖于JDK,需要先安装JDK。这里默认已经安装了openjdk-1.8.0_282版本,因此就不再重复说明了。如果您还没有安装JDK,可以通过以下命令进行安装: yum install java-1.8.0-openjdk-devel.x86_64 四、安装 Hadoop 1、解压缩 Hadoop 将下载好的hadoop-3.3.0.tar.gz复制到/opt/目录下,并解压缩: tar -zxvf hadoop-3.3.0.tar.gz 2、配置Hadoop环境变量 配置Hadoop环境变量,可以方便我们在任何地方都能够使用hadoop相关命令。在/etc/profile.d/目录下创建一个hadoop.sh文件,输入以下内容: export HADOOP_HOME=/opt/hadoop-3.3.0 export PATH=$HADOOP_HOME/bin:$PATH 最后执行以下命令,让环境变量生效: source /etc/profile 3、配置Hadoop 进入hadoop-3.3.0目录下,修改etc/hadoop/hadoop-env.sh文件,将JAVA_HOME指向正确的JDK目录: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64 接下来修改etc/hadoop/core-site.xml文件,添加以下配置: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://<NameNode_IP>:9000</value> </property> </configuration> 其中,NameNode_IP需要替换为NameNode的IP地址。 修改etc/hadoop/hdfs-site.xml文件,添加以下配置: <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hdfs/datanode</value> </property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> </configuration> 其中,dfs.replication表示副本数,dfs.namenode.name.dir表示NameNode元数据的存放路径,dfs.datanode.data.dir表示DataNode数据的存放路径,dfs.namenode.datanode.registration.ip-hostname-check设置为false表示关闭IP和hostname的检查,否则可能会导致节点无法正常注册。 最后,在etc/hadoop/mapred-site.xml和etc/hadoop/yarn-site.xml文件中添加以下内容: mapred-site.xml: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> yarn-site.xml: <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 五、配置ssh免密登录 在Hadoop集群中,各个节点之间需要相互通信,并且需要使用ssh远程登录操作。为了方便操作,可以实现ssh免密登录,即在各个节点之间可以直接相互访问而无需输入密码。具体实现步骤如下: 1、在每个节点上生成公钥和私钥 ssh-keygen -t rsa 2、将公钥拷贝到各个节点上 ssh-copy-id -i ~/.ssh/id_rsa.pub <hostname> 其中,<hostname>需要替换成对应节点的hostname。 3、测试是否成功 ssh <hostname> 如果可以直接登录而无需输入密码,则表示ssh免密登录配置成功。 六、启动Hadoop集群 1、启动Hadoop 首先需要启动NameNode和DataNode,使用以下命令启动: hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode 然后启动ResourceManager和NodeManager,使用以下命令启动: yarn-daemon.sh start resourcemanager yarn-daemon.sh start nodemanager 启动成功后使用jps命令查看进程,看是否启动正常。 2、验证Hadoop 在启动Hadoop集群之后,可以通过以下命令验证是否正常: hadoop fs -mkdir /test hadoop fs -ls / 如果命令执行没有报错,则表示Hadoop集群启动成功并且在操作系统上正常运行。 以上便是在CentOS7系统上搭建Hadoop-3.3.0集群的过程。在实际操作中可能还会遇到一些其他的问题,需要我们不断的尝试和调试。相信通过这篇文章,读者可以对Hadoop的安装和配置有更深入的理解,并可以顺利搭建自己的Hadoop集群。 ### 回答3: CentOS 7是一种广泛使用的Linux操作系统,用于服务器和桌面应用程序。Hadoop是一个开源的分布式计算框架,专门用于处理大规模数据。在本文中,将介绍如何在CentOS 7上安装Hadoop 3.3.0,并建立Hadoop集群。 1. 安装Java 由于Hadoop是使用Java编写的,因此必须首先在系统上安装Java。可以使用以下命令来安装Oracle Java: ```shell $ sudo yum install java-1.8.0-openjdk-devel ``` Java将安装在`/usr/lib/jvm/java-1.8.0-openjdk`目录中。 2. 配置DNS 为了更好地管理Hadoop集群,可以将每个节点的IP地址映射到相应的主机名。可以在/etc/hosts文件中添加这些条目。例如,假设存在以下主机: - 192.168.1.10:master - 192.168.1.11:slave1 - 192.168.1.12:slave2 可以在每个节点上编辑/etc/hosts文件,添加以下内容: ```shell 192.168.1.10 master 192.168.1.11 slave1 192.168.1.12 slave2 ``` 3. 安装Hadoop 可以从Hadoop官方网站下载Hadoop二进制文件,或者使用以下命令下载并解压缩最新版本: ```shell $ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz $ tar -xzvf hadoop-3.3.0.tar.gz -C /opt ``` Hadoop将解压缩到/opt/hadoop-3.3.0目录中。 4. 配置Hadoop 接下来需要配置Hadoop。可以在/opt/hadoop-3.3.0/etc/hadoop目录中找到所有Hadoop配置文件。必须编辑以下文件: - core-site.xml - hdfs-site.xml - mapred-site.xml - yarn-site.xml 第一个文件是core-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000/</value> </property> </configuration> ``` 第二个文件是hdfs-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3.0/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3.0/data/datanode</value> </property> </configuration> ``` 第三个文件是mapred-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 最后一个文件是yarn-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> ``` 5. 配置SSH 为了在集群节点之间进行通信,必须配置SSH。可以使用以下命令在每个节点上安装SSH客户端和服务器: ```shell $ sudo yum install openssh-server openssh-clients ``` 要在所有节点上免密码认证,必须使用以下命令生成SSH秘钥: ```shell $ ssh-keygen -t rsa ``` 按照默认设置创建SSH秘钥对,并在使用此命令的过程中将公共SSH秘钥添加到所有节点上的~/.ssh/authorized_keys文件中: ```shell $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ``` 6. 启动Hadoop 现在,可以在集群节点上启动Hadoop。首先要格式化NameNode: ```shell $ /opt/hadoop-3.3.0/bin/hdfs namenode -format ``` 然后,在master节点上启动Hadoop: ```shell $ /opt/hadoop-3.3.0/sbin/start-all.sh ``` 这将启动Hadoop集群中的所有节点。可以在每个节点上检查日志,以确保节点正在正确运行: ```shell $ tail -f /opt/hadoop-3.3.0/logs/*.log ``` 7. 使用Hadoop 现在,可以在Hadoop集群上运行MapReduce作业。可以使用Hadoop的example程序来运行简单的MapReduce任务。例如,可以使用以下命令来运行wordcount程序: ```shell $ /opt/hadoop-3.3.0/bin/hadoop jar /opt/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount input output ``` 该命令将从input目录中读取数据,并将结果写入output目录。可以使用以下命令查看输出: ```shell $ /opt/hadoop-3.3.0/bin/hdfs dfs -cat output/* ``` 以上是搭建Hadoop集群的基本步骤,如果需要实现更复杂的功能,可以在这些基本步骤的基础上进行进一步的配置和调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值