精华内容
下载资源
问答
  • 大数据基础知识:什么是集群

    千次阅读 2019-11-27 21:09:02
    什么是集群集群是一组相互独立的、通过高速计算机网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。 计算机集群简称集群是一种计算机...

    什么是集群?

    在这里插入图片描述
    集群是一组相互独立的、通过高速计算机网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。

    计算机集群简称集群是一种计算机系统, 它通过一组松散集成的计算机软件/硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。
    在这里插入图片描述

    什么是计算机网络?

    计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

    什么是交换机?

    交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。
    在这里插入图片描述
    在这里插入图片描述

    什么是局域网?

    局域网是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
    在这里插入图片描述
    在这里插入图片描述

    什么是网络拓扑?

    网络拓扑(Network Topology)结构是指用传输介质互连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。
    在这里插入图片描述
    以太网络
    优点:
    是当前局域网的实时标准,配置方便,即插即用,软件支持丰富。
    价格便宜,随处可得。
    缺点:
    无论是延迟还是吞吐量都不如一些专用网络。
    用途:
    是构建局域网最方便的方式。
    现在被广泛用于云计算中的大规模数据处理集群中。
    常见的带宽,1Gbps以及10Gbps。
    InfiniBand网络
    优点:
    延迟极低(不到400纳秒)、很高吞吐量(高达40Gbps)。
    结构先进(Offloading Engine,Zero Copy)。
    缺点:
    价格较贵、软件支持较少。
    影响较低,与传统以太网络不兼容。
    用途:
    多用于高性能计算领域。
    常见的带宽,10Gbps,20Gbps以及40Gbps。

    什么是机架?

    全称为机架式服务器,是用于固定电信柜内的接插板、外壳和设备。通常宽19英寸,高7英尺。对于IT行业,可简单理解为存放服务器的机柜。
    机柜一般是冷轧钢板或合金制作的用来存放计算机和相关控制设备的物件,可以提供对存放设备的保护,屏蔽电磁干扰,有序、整齐地排列设备,方便以后维护设备。机柜一般分为服务器机柜、网络机柜、控制台机柜等。
    在这里插入图片描述

    IDC数据中心

    互联网数据中心(Internet Data Center)简称IDC,就是电信部门利用已有的互联网通信线路、带宽资源,建立标准化的电信专业级机房环境,为企业、政府提供服务器托管、租用以及相关增值等方面的全方位服务。
    在这里插入图片描述
    在这里插入图片描述

    为什么和谐号、复兴号会这么快?

    在这里插入图片描述
    在这里插入图片描述
    原因在于
    老式火车动力集中在一个车头。
    和谐号、复兴号动力分布在多个车头、车厢
    在这里插入图片描述

    展开全文
  • 今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群。 一。下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hadoop2.6 在官网中找到对应的链接即可...

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群。

    一。下载Spark安装包

    可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hadoop2.6

    在官网中找到对应的链接即可http://spark.apache.org/downloads.html

    或者用本人云盘下载地址 附上链接如下链接:https://pan.baidu.com/s/1o7Vrkue 密码:sc2z

    二。部署和规划Spark集群

    提前准备好四台虚拟主机,三台主机 node1 node2 node4 做Spark集群  develop做Spark客户端用于提交程序

    集群规划如下:

    node1 Master节点 node2,node4 Worker节点 架构图如下:

     在此之前需要配置Master节点到Worker的免密登陆因为在Master节点需要启动所有的Worker节点,所有需要配置Master到Worker的免密登陆 只需要这一个免密配置即可 不需要配置woker--worker  worker-master节点的免密  因为主要是在Master节点上启动集群

       免密设置具体参考如下:http://blog.csdn.net/leexide/article/details/17252369

    1.分别在三台集群下创建同名目录 (目录一定要一致,方便集群部署)

    本集群环境创建为/root/spark目录

    2.使用Xshell将文件上传至其中某个节点即可(没有必要上传全部节点,因为后期还要重新配置)

    上传至某个节点之后,假设上传到主节点Master节点后

     3.解压目录,命令和结构如下

     tar -zxf   spark-1.6.0-bin-hadoop2.6.tar

    然后重命名 方便后期部署

    mv  spark-1.6.0-bin-hadoop2.6  spark-1.6.0

    结构如下:

    4.配置参数

    进入到配置目录,路径为

    /root/spark/spark-1.6.0/conf

    后可看见文件如下

    我们需要把template关键字去掉 因为是个模板文件 简单介绍下文件作用:

    slaves文件---worker几点所在目录

    spark-default.conf目录文件 默认配置文件

    spark-env.sh环境配置文件

    这几个是我们主要用的

    更改后的目录文件格式如下:

    配置spark-env.sh

    可以看到集群配置参数如下,我们主要配置这些参数

    配置完后的截图如下:

     

     解释一下参数意义:

    SPARK_MASTER_IP=node1  #主节点主机名

    SPARK_MASTER_PORT=7077 #主节点和Worker的通信端口

    SPARK_WORKER_CORES=2 # 每个worker进程能管理两个核

    SPARK_WORKER_MEMORY=2g # 每个worker进程能管理2g内存

    SPARK_MASTER_WEBUI_PORT=8888 # 主节点WEB-UI展示图  默认端口是8080

    SPARK_WORKER_INSTANCES=1 #每个worker节点能够启动的worker进程 默认是一个 如果为2  则每一个worker几点能够启动2个Worker进程 就这意思

    根据这配置 则 Master节点能够管路4core 4g内存(有两个Worker进程 每一个worker进程管理两个核,2g内存)

     配置slaves文件:配置从节点的ip 或主机名

    截图如下

    5.将主节点的配置分发到从节点 同名目录下

    命令如下:

    回到spark的主目录配置文件

     

    然后分发到node2  node4节点 这里命令如下`pwd`即到当前目录

    6、启动Spark集群:
        执行安装包sbin目录下的start-all.sh脚本
        ./sbin/start-all.sh

     7.查看集群状态

    jps命令为jvm的命令与局之一 专门查看java进程

    Master节点状态:

    Worker节点状态:

     

    查看WEBUI是否能访问:

    注意关闭Linux的防火墙:具体操作如下

    /etc/init.d/iptables status

    会得到一系列信息,说明防火墙开着。

    /etc/init.d/iptables stop

    永久关闭:

    chkconfig --level 35 iptables off

    在本机访问node1:8888(别忘配置host)

     

     至此,集群搭建成功!

    8.测试集群是否可用

     将主节点中的spark文件同步到客户端develop节点

    在develop节点中提交spark任务 ,由于本例测试 所以直接提交spark自带测试用例 计算Pi的值

    注意别忘配置Client(develop)客户端的host 因为要提交任务到Master节点(node1)节点上去运行

    即可看见运行状态

    在WebUI也可以看见

     

     到此集群测试完毕!!!

     

    持续更新中。。。。,欢迎大家关注我的公众号LHWorld.

     

    展开全文
  • 集群服务器是什么

    2020-05-11 20:23:51
    一、什么是服务器群集? 集群,英文名称为Cluster,通俗地说,集群是这样一种技术:它将多个系统连接到一起,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提高系统的稳定性...

    一、什么是服务器群集?

    集群,英文名称为Cluster,通俗地说,集群是这样一种技术:它将多个系统连接到一起,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。

    服务器集群系统通俗地讲就是把多台服务器 通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。另外,有两种常见的服务器群集类型:手动和自动。

    集群服务器

    集群服务器

    手动群集不是理想的解决方案,因为将节点手动配置为相同的数据IP和地址会伴随停机时间。即使是2到5分钟的停机时间对于企业来说也很关键,更不用说花钱了。

    另一方面,在部署自动集群时,由于之前配置了用于执行切换的软件,因此会进行自动切换。

    集群服务器机房

    集群服务器机房

    二、服务器群集的类型是什么?

    服务器群集有四种类型,每种都可以满足不同的业务目标和基础架构需求。

    1.高可用性(HA)服务器群集

    高可用性(HA)群集是高流量网站(例如在线商店或应用程序)的最佳选择,以确保关键系统保持可靠的性能,以实现最佳的连续性能。高可用性群集避免了单个故障点,因为它们基于冗余的硬件和软件构建。它们对于负载平衡,系统备份和故障转移至关重要,二者结合在一起可提供全时可用性并确保网站连续运行。高可用性集群由多个可以在服务器关闭时接管的主机组成,可确保在过载或服务器故障的情况下将停机时间降至最低。

    高可用性群集可以具有两种不同的体系结构,即主动-主动或主动-被动。双活群集意味着所有节点同时工作以平衡负载。另一方面,主动-被动体系结构意味着主节点可以处理所有工作负载,而第二个节点正在等待接管以防停机。当一个组件崩溃时,辅助服务器即热备用或热备用服务器将立即接管,因为主服务器中的数据库已被复制到其他节点。与Active-Active相比,这是一种成本较低的实现。

    高可用性集群可确保可靠性,无缝可伸缩性,更有效的维护和强大的基础架构安全性。用户不仅将从增强的网站体验中受益,而且高可用性群集还可以通过减少停机时间来节省成本。

    2.负载平衡集群

    负载平衡群集是一个服务器场,可将用户请求分发到多个活动节点,以加快操作速度,确保冗余,减少网络拥塞和过载并改善工作负载分配。负载平衡是服务器群集非常重要的用例。

    请求由负载平衡软件处理,该软件根据一组规则或算法将请求定向到不同的服务器,然后处理传出响应。负载平衡允许服务器之间的功能分离和工作负载划分,以最大程度地利用资源和提高资源利用率。

    例如,高可用性群集在主动-主动配置中使用负载均衡器来响应不同的请求,然后将其分发给所有独立的服务器。在这种情况下,工作负载分配可以对称或不对称,具体取决于配置和计算机性能。在主动-被动高可用性群集中,负载均衡器监视节点的可用性,因此,如果一个负载均衡器关闭,它不会再向它发送任何流量,直到它再次完全运行为止。

    负载平衡架构还允许同时使用多个链接,此功能在具有冗余通信的基础架构中非常有用。电信公司和数据中心广泛部署了这种类型的体系结构,以降低成本,优化高带宽数据传输并实现出色的可伸缩性和可用性。

    3.高性能和集群存储

    高性能群集由连接到同一网络以执行任务的许多计算机组成。高性能集群连接到数据存储集群,并共同组成一个复杂的体系结构,可以极其快速地处理数据。存储和网络组件必须彼此保持同步,以实现无缝性能和高速数据传输。

    高性能群集也称为超级计算机,不像高可用性群集和负载平衡群集那样常见,但是用于资源密集型工作负载的企业可以使用它们来提高性能,容量和可靠性。它们被广泛用于IoT(物联网)和AI技术,因为它们促进了诸如实时流,风暴预测或患者诊断等项目的创新,并提供了实时数据处理。它们被大量部署在研究实验室,媒体和娱乐以及金融行业以及许多其他行业中。

    4.集群存储

    群集存储由至少两个扩展性能,节点空间I / O(输入/输出)和可靠性的存储服务器组成。根据业务需求和存储需求,可以在紧密耦合的体系结构中针对主存储部署数据存储,并且可以将数据分为节点之间的很小的块,或者在独立的松散耦合结构中不存储数据跨节点,并提供更大的灵活性。在松散耦合的体系结构中,性能和容量受限于存储数据的节点的功能。与紧密耦合的体系结构不同,在此设置中,不能选择具有新节点的可伸缩性。

    展开全文
  • 什么是集群,集群的概念介绍

    万次阅读 2018-10-04 15:55:34
    集群术语须知 服务硬件:指提供计算服务的硬件,比如 PC 机、PC 服务器。 服务实体:服务实体通常指服务软体和服务硬体。 节点(node):运行 Heartbeat 进程的一个独立主机称为节点,节点是 HA 的核心组成部分,每...

    集群术语须知

    服务硬件:指提供计算服务的硬件,比如 PC 机、PC 服务器。

    服务实体:服务实体通常指服务软体和服务硬体。

    节点(node):运行 Heartbeat 进程的一个独立主机称为节点,节点是 HA 的核心组成部分,每个节点上运行着操作系统和Heartbeat 软件服务。

    资源(resource):资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管。如: 磁盘分区、文件系统、IP 地址、应用程序服务、共享存储

    事件(event):事件也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源发生转移,HA 的测试也是基于这些事件进行的。

    什么是集群

    集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node)。集群提供了以下关键的特性。

    (一) 可扩展性。集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。

    (二) 高可用性。集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。

    (三) 负载均衡。负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。

    (四) 错误恢复。如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复。

    分布式与集群的联系与区别如下:

    (一) 分布式是指将不同的业务分布在不同的地方。

    (二) 而集群指的是将几台服务器集中在一起,实现同一业务。

    (三) 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,一个节点宕了,这个业务就不可访问了。

    集群主要分成三大类:

    HA:高可用集群(High Availability Cluster)。

    LBC:负载均衡集群/负载均衡系统(Load Balance Cluster)

    HPC:科学计算集群(High Performance Computing Cluster)/高性能计算(High Performance Computing)集群。

    为什么搭建数据库集群

    随着经济的高速发展,企业规模的迅猛扩张,企业用户的数量、数据量的爆炸式增长,对数据库提出了严峻的考验。对于所有的数据库而言,除了记录正确的处理结果之外,还面临着以下几方面的挑战。
    l 如何提高处理速度,实现数据库的均衡负载。l 如何保证数据库的可用性、数据安全性、以及如何实现数据集群可扩性。l 怎么综合解决这些问题成为众多企业关注的焦点。
    在数据库上,组建集群也是同样的道理,主要有以下几个原因:

    (一) 伴随着企业的成长,业务量提高,数据库的访问量和数据量快速增长,其处理能力和计算速度也相应增大,使得单一的设备根本无法承担。

    (二) 在以上情况下,若扔掉现有设备,做大量的硬件升级,势必造成现有资源的浪费,而且下一次业务量提升时,又将面临再一次硬件升级的高额投入。于是,人们希望通过几个中小型服务器组建集群,实现数据库的负载均衡及持续扩展;在需要更高数据库处理速度时,只要简单的增加数据库服务器就可以得到扩展。

    (三) 数据库作为信息系统的核心,起着非常重要的作用,单一设备根本无法保证系统的下持续运行,若发生系统故障,将严重影响系统的正常运行,甚至带来巨大的经济损失。于是,人们希望通过组建数据库集群,实现数据库的高可用,当某节点发生故障时,系统会自动检测并转移故障节点的应用,保证数据库的持续工作。

    (四) 企业的数据库保存着企业的重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据库的安全性,一旦发生丢失,很难再找回来。于是,人们希望通过组建数据库集群,实现数据集的冗余,通过备份数据来保证安全性。

    数据库集群的分类

    数据库集群技术是将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术,这种技术不但能满足应用的需要,而且大幅度的节约了投资成本。数据库集群技术分属两类体系:基于数据库引擎的集群技术和基于数据库网关(中间件)的集群技术。在数据库集群产品方面,其中主要包括基于数据库引擎的集群技术的 Oracle RAC、Microsoft MSCS、IBM DB2UDB、Sybase ASE,以及基于数据库网关(中间件)的集群技术的 ICX-UDS 等产品。

    一般来讲,数据库集群软件侧重的方向和试图解决的问题划分为三大类:
    l 负载均衡集群(Load Balance Cluster,LBC)侧重于数据库的横向扩展,提升数据库的性能。l 高可用性集群(High Availability Cluster,HAC)侧重保证数据库应用持续不断。大部分的数据库集群侧重与此。l 高安全性集群(High Security Cluster,HSC)侧重于容灾。
    只有 Oracle RAC 能实现以上三方面

    可扩展的分布式数据库架构

    (一) Oracle RAC:

    其架构的最大特点是共享存储架构(Shared-storage),整个 RAC 集群是建立在一个共享的存储设备之上的,节点之间采用高速网络互联。OracleRAC 提供了非常好的高可用特性,比如负载均衡和应用透明切块(TAF),其最大的优势在于对应用完全透明,应用无需修改便可切换到RAC 集群。但是RAC 的可扩展能力有限,首先因为整个集群都依赖于底层的共享存储,所以共享存储的 I/O 能力和可用性决定了整个集群的可以提供的能力,对于 I/O 密集型的应用,这样的机制决定后续扩容只能是
    Scale up(向上扩展)类型,对于硬件成本、开发人员的要求、维护成本都相对比较高。Oracle显然也意识到了这个问题,在 Oracle 的 MAA(Maximum Availability Architecture)架构中,采用 ASM 来整合多个存储设备的能力,使得 RAC 底层的共享存储设备具备线性扩展的能力,整个集群不再依赖于大型存储的处理能力和可用性。

    RAC 的另外一个问题是,随着节点数的不断增加,节点间通信的成本也会随之增加,当到某个限度时,增加节点可能不会再带来性能上的提高,甚至可能造成性能下降。这个问题的主要原因是 Oracle RAC 对应用透明,应用可以连接集群中的任意节点进行处理,当不同节点上的应用争用资源时,RAC 节点间的通信开销会严重影响集群的处理能力。所以对于使用 ORACLE RAC 有以下两个建议:
    l 节点间通信使用高速互联网络;l 尽可能将不同的应用分布在不同的节点上。
    基于这个原因,Oracle RAC 通常在 DSS 环境(决策支持系统Decision Support System ,简称DSS)中可以做到很好的扩展性,因为 DSS 环境很容易将不同的任务分布在不同计算节点上,而对于 OLTP 应用(On-Line Transaction Processing联机事务处理系统),Oracle
    RAC 更多情况下用来提高可用性,而不是为了提高扩展性。

    (二) MySQL Cluster

    MySQL cluster 和 Oracle RAC 完全不同,它采用 无共享架构Shared nothing(shared nothing architecture)。整个集群由管理节点(ndb_mgmd),处理节点(mysqld)和存储节点(ndbd)组 成,不存在一个共享的存储设备。MySQL cluster 主要利用了 NDB 存储引擎来实现,NDB 存储引擎是一个内存式存储引擎,要求数据必须全部加载到内存之中。数据被自动分布在集群中的不同存 储节点上,每个存储节点只保存完整数据的一个分片(fragment)。同时,用户可以设置同一份数据保存在多个不同的存储节点上,以保证单点故障不会造
    成数据丢失。MySQL cluster 主要由 3 各部分组成:
    l SQL 服务器节点l NDB 数据存储节点l 监控和管理节点
    这样的分层也是与 MySQL 本身把 SQL 处理和存储分开的架构相关系的。MySQL cluster 的优点在于其是一个分布式的数据库集群,处理节点和存储节点都可以线性增加,整个集群没有单点故障,可用性和扩展性都可以做到很高,更适合 OLTP 应用。但是它的问题在于:
    l NDB(“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。)
    存储引擎必须要求数据全部加载到内存之中,限制比较大,但是目前 NDB 新版本对此做了改进,允许只在内存中加 载索引数据,数据可以保存在磁盘上。l 目前的 MySQL cluster 的性能还不理想,因为数据是按照主键 hash 分布到不同的存储节点上,如果应用不是通过主键去获取数据的话,必须在所有的存储节点上扫描, 返回结果到处理节点上去处理。而且,写操作需要同时写多份数据到不同的存储节点上,对节点间的网络要求很高。
    虽然 MySQL cluster 目前性能还不理想,但是 share nothing 的架构一定是未来的趋势,Oracle 接手 MySQL之后,也在大力发展 MySQL cluster,我对 MySQL cluster 的前景抱有很大的期待。

    (三) 分布式数据库架构

    MySQL 5 之后才有了数据表分区功能(Sharding), Sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(Scale Out,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。比如 Oracle 的 RAC 是采用共享存储机制,对于 I/O 密集型的应用,瓶颈很容易落在存储上,这样的机制决定后续扩容只能是 Scale Up(向上扩展) 类型,对于硬件成本、开发人员的要求、维护成本都相对比较高。Sharding
    基本上是针对开源数据库的扩展性解决方案,很少有听说商业数据库进行 Sharding 的。目前业界的趋势基本上是拥抱 Scale Out,逐渐从 Scale Up 中解放出来。

    Sharding 架构的优势在于,集群扩展能力很强,几乎可以做到线性扩展,而且整个集群的可用性也很高,部分节点故障,不会影响其他节点提供服务。Sharding 原理简单,容易实现,是一种非常好的解决数据库扩展性的方案。Sharding 并不是数据库扩展方案的银弹,也有其不适合的场景,比如处理事务型的应用它可能会造成应用架构复杂或者限制系统的功能,这也是它的缺陷所在。读写分离是架构分布式系统的一个重要思想。不少系统整体处理能力并不能同业务的增长保持同步,因此势必会带来瓶颈,单纯的升级硬件并不能一劳永逸。针对业务类型特点,需要从架构模式进行一系列的调整,比如业务模块的分割,数据库的拆分等等。集中式和分布式是两个对立的模式,不同行业的应用特点也决定了架构的思路。如互联网行业中一些门户站点,出于技术和成本等方面考虑,更多的采用开源的数据库产品(如 MYSQL),由于大部分是典型的读多写少的请求,因此为
    MYSQL 及其复制技术大行其道提供了条件。而相对一些传统密集交易型的行业,比如电信业、金融业等,考虑到单点处理能力和可靠性、稳定性等问题,可能更多的采用商用数据库,比如 DB2、Oracle 等。就数据库层面来讲,大部分传统行业核心库采用集中式的架构思路,采用高配的小型机做主机载体,因为数据库本身和主机强大的处理能力,数据库端一般能支撑业务的运转,因此,Oracle 读写分离式的架构相对MYSQL 来讲,相对会少。读写分离架构利用了数据库的复制技术,将读和 写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。最通常的做法是利用
    MySQL Replication 技术,Master DB 承担写操作,将数据变化复制到多台 Slave DB上,并承担读的操作。这种架构适合 read-intensive 类型的应用,通过增加 Slave DB 的数量,读的性能可以线性增长。为了避免 Master DB 的单点故障,集群一般都会采用两台 Master DB 做双机热备,所以整个集群的读和写的可用性都非常高。除了 MySQL,Oracle 从 11g 开始提供 Active Standby 的功能,也具备了实现读写分离架构的基础。读写分离架构的缺陷在于,不管是
    Master 还是 Slave,每个节点都必须保存完整的数据,如 果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力,而且对于 Write-intensive 类型的应用,读写分离架构并不适合。

    采用 Oracle 读写分离的思路,Writer DB 和 Reader DB 采用日志复制软件实现实时同步; Writer DB 负责交易相关的实时查询和事务处理,Reader DB 负责只读接入,处理一些非实时的交易明细,报表类的汇总查询等。同时,为了满足高可用性和扩展性等要求,对读写端适当做外延,比如 Writer DB 采用 HA 或者 RAC 的架构模式,目前,除了数据库厂商的 集群产品以外,解决数据库扩展能力的方法主要有两个:数据分片和读写分离。数据分片(Sharding)的原理就是将数据做水平切分,类似于
    hash 分区 的原理,通过应用架构解决访问路由和Reader DB 可以采用多套,通过负载均衡或者业务分离的方式,有效分担读库的压力。

    对于 Shared-nothing 的数据库架构模式,核心的一个问题就是读写库的实时同步;另外,虽然 Reader DB只负责业务查询,但并不代表数据库在功能上是只读的。只读是从应用角度出发,为了保证数据一致和冲突考虑,因为查询业务模块可能需要涉及一些中间处理,如果需要在数据库里面处理(取决与应用需求和设计),所以Reader DB 在功能上仍然需要可写。下面谈一下数据同步的技术选型问题:

    能实现数据实时同步的技术很多,基于 OS 层(例如 VERITAS VVR),基于存储复制(中高端存储大多都支持),基于应用分发或者基于数据库层的技术。因为数据同步可能并不是单一的 DB 整库同步,会涉及到业务数据选择以及多源整合等问题,因此 OS 复制和存储复制多数情况并不适合做读写分离的技术首选。基于日志的 Oracle 复制技术,Oracle 自身组件可以实现,同时也有成熟的商业软件。选商业的独立产品还是 Oracle 自身的组件功能,这取决于多方面的因素。比如团队的相应技术运维能力、项目投入成本、业务系统的负载程度等。

    采用 Oracle 自身组件功能,无外乎 Logical Standby、Stream 以及 11g 的 Physical Standby(Active Data Guard),对比来说,Stream 最灵活,但最不稳定,11g Physical Standby 支持恢复与只读并行,但由于并不是日志的逻辑应用机制,在读写分离的场景中最为局限。如果技术团队对相关技术掌握足够充分,而选型方案的处理能力又能支撑数据同步的要求,采用 Oracle 自身的组件完全可行。选择商业化的产品,更多出于稳定性、处理能力等考虑。市面上成熟的
    Oracle 复制软件也无外乎几种,无论是老牌的 Shareplex,还是本土 DSG 公司的 RealSync 和九桥公司的 DDS,或是 Oracle 新贵 Goldengate,都是可供选择的目标。随着 GoldenGate 被 Oracle 收购和推广,个人认为 GoldenGate 在容灾、数据分发和同步方面将大行其道。当然,架构好一个可靠的分布式读写分离的系统,还需要应用上做大量设计,不在本文讨论范围内。

    (四) CAP 和 BASE 理论

    分布式领域 CAP 理论:
    l Consistency(一致性), 数据一致更新,所有数据变动都是同步的l Availability(可用性), 好的响应性能l Partition tolerance(分区容错性) 可靠性
    定理:任何分布式系统只可同时满足二点,没法三者兼顾。

    忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。

    关系数据库的 ACID 模型拥有 高一致性 + 可用性 很难进行分区:
    l Atomicity 原子性:一个事务中所有操作都必须全部完成,要么全部不完成。l Consistency 一致性. 在事务开始或结束时,数据库应该在一致状态。l Isolation 隔离层. 事务将假定只有它自己在操作数据库,彼此不知晓。l Durability. 一旦事务完成,就不能返回。
    (五) 跨数据库事务

    2PC (two-phase commit), 2PC is the anti-scalability pattern (Pat Helland) 是反可伸缩模式的,也就是说传统关系型数据库要想实现一个分布式数据库集群非常困难,关系型数据库的扩展能力十分有限。而近年来不断发展壮大的 NoSQL(非关系型的数据库)运动,就是通过牺牲强一致性,采用 BASE 模型,用最终一致性的思想来设计分布式系统,从而使得系统可以达到很高的可用性和扩展性。那么,有没有可能实现一套分布式数据库集群,既保证可用性和一致性,又可以提供很好的扩展能力呢?

    BASE 思想的主要实现有按功能划分数据库 sharding 碎片BASE 思想主要强调基本的可用性,如果你需要 High 可用性,也就是纯粹的高性能,那么就要以一致性或容错性为牺牲,BASE 思想的方案在性能上还是有潜力可挖的。
    l 共同点:都是关系数据库 SQL 以外的可选方案,逻辑随着数据分布,任何模型都可以自己持久化,将数据处理和数据存储分离,将读和写分离,存储可以是异步或同步,取决于对一致性的要求程度。l 不同点:NOSQL 之类的 Key-Value 存储产品是和关系数据库头碰头的产品 BOX,可以适合非 Java 如 PHP RUBY等领域,是一种可以拿来就用的产品,而领域模型 + 分布式缓存 + 存储是一种复杂的架构解决方案,不是产品,但这种方式更灵活,更应该是架构师必须掌握的。
    目前,已经有很多分布式数据库的产品,但是绝大部分是面向 DSS 类型的应用,因为相比较 OLTP 应用,DSS 应用更容易做到分布式扩展,比如基于 PostgreSQL 发展的 Greenplum,就很好的解决了可用性和扩展性的问题,并且提供了很强大的并行计算能力。对于 OLTP 应用,业务特点决定其要求:高可用性,一致性, 响应时间短,支持事务和 join 等等。数据库和 NoSQL当越来越多的 NoSQL 产品涌现出来,它们具备很多关系型数据库所不具备的特性,在可用性和扩展性方面都可以做到很好。

    第一,NoSQL 的应用场景非常局限,某个类型的 NoSQL 仅仅针对特定类型的应用场景而设计。而关系型数据库则要通用的多,使用 NoSQL 必须搞清楚自己的应用场景是否适合。

    第二,利用关系型数据库配合应用架构, 比如 Sharding 和读写分离技术,同样可以搭建出具备高可用和扩展性的分布式数据库集群。

    第三,关系型数据库厂商依然很强大,全世界有大量的 用户,需求必然会推动新的产品问世。

    第四,硬件的发展日新月异,比如闪存的技术的不断成熟,未来闪存可以作为磁盘与内存之间的 cache,或者完 全替代磁盘。而内存价格越来越低,容量越来越大,In-memory cache 或 database 的应用越来越广泛,可以给应用带来数量级的性能提升。数据库面临的 IO 问题将被极大改善。


    本文来自 不懂IT的人 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/sandy_hmily/article/details/77847542?utm_source=copy

    展开全文
  • 1.什么是RHCS? RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件 红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置 以满足对高可用性,负载均衡,可扩展...
  • 聊聊什么是集群

    千次阅读 2018-03-26 22:32:29
    什么是集群? 计算机集群简称集群,是一种计算机系统,它通过一组松散集成的计算机软件(和/或)硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常...
  • 一、什么是服务器群集? 集群,英文名称为Cluster,通俗地说,集群是这样一种技术:它将多个系统连接到一起,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提高系统的稳定性和...
  • 什么是集群(cluster)

    万次阅读 2008-02-18 15:31:00
    1、集群 1.1 什么是集群 简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点...
  • Kafka原理、集群、监控企业实战

    千人学习 2020-03-31 13:55:15
    kafka是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。它最初由LinkedIn公司... 之前有报名过 《ELK/ELFK企业PB级日志系统实战》的同学建议学习本门课程 温馨提示: 课件在最后一节(课堂总结) 可以打包下载
  • 什么是集群方案 “集群”是指计算机集群,也就是说该架构是由集成的软件和硬件紧密连接,分层架构,彼此协调,共同完成某项任务。 IPFS/Filecoin是一个存储项目,挖矿就是将数据打包存储,并向网络展示有效存储,以...
  • Hadoop集群安装-企业

    2017-10-17 11:15:07
    1.集群安装 操作系统准备 安装RHEL/CentOS/Hanwate7操作系统 插入操作系统光盘并且挂载 # mount /dev/cdrom /mnt/cdrom 安装操作系统的核心软件 # cd /mnt/cdrom/Packges/base #rpm -ivh make*openssl-1* 卸载光盘 #...
  • 什么是RHCS? RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件。 RHCS 是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web...
  • 分布式与集群的区别是什么? 关注者 1,561 被浏览 449,153 关注问题写回答 ​邀请回答 ​1 条评论 ​分享 ​举报 ​ 53个回答 默认排序​ 大闲人柴毛毛 渴求Java开发!内推蚂蚁金服 673 人赞同了...
  • 文章目录企业级高可用集群---RHCS(一)1.RHCS是什么2.集群的概念3.集群中的相关术语4.RHCS的特点5.RHCS的核心功能高可用集群LVSgfs文件系统iscsiCluster Logical Volume Manger6.RHCS的集群架构 企业级高可用集群—...
  • 什么要使用集群 集群的常见分类 3.1 集群的常见分类 3.2 不同种类的集群介绍 4.1 企业中常见的集群软硬件产品 4.2 对于集群软硬件产品如何选型 4.3 如何选择开源集群软件产品 集群简介 简单地说,集群就是...
  • 一、集群的基本概念 有一种常见的方法可以大幅提高服务器的安全性,这就是集群。 Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户...
  • 负载均衡:将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器,web服务器,企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。 举例子:例如此时有两个人搬砖,小明和小张...
  • RHCS,即RedHat Cluster Suite ,中文意思即红帽集群套件。红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足对 高可用性,负载均衡,可扩展性,文件...
  • 大白话解释什么是集群(举生活中最通俗易懂的案例) 举列场景:招商银行办理业务 2019年04月29号,招商银行门口来了30个人办理业务 此时,招商银行的柜台只有一个窗口,一个银行职员,然后该窗口里的银行职员就...
  • 集群系统

    2007-03-20 09:09:00
    网格的意思是,一种分布式计算的解决之道,利用OGSA等协议来实现。网格的概念晚于集群。网格的目标是为了改善分布式计算环境,让这个环境对人更友好。例如,web service的发布,可以提高企业的生产率。集群系统是...
  • #负载均衡:意思是分摊到多个操作单元上进行执行,例如web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务 二、集群的定义 1、集群技术是一种较新的技术,...
  • 什么是RHCS? RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件。 它是能提供高可用性,高经济性,负载均衡,存储共享且经济廉价的集群工具集合,它将集群系统中的三大经济架构融为一体,可以给web应用,...
  • 集群】 Cluster,在百度翻译中的名词意思解释为:群,簇。 在我们计算机的磁盘中,每个磁盘都是由一个个扇区组成的,而若干个扇区合为一个簇。而我们所说的集群,它是指一种技术,它可以将多个系统连接到一起,使多...
  • 搭建企业web集群架构配置【详解】

    千次阅读 2018-02-01 20:14:33
    一、什么是Nginx? Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人 Igor Sysoev为...
  • 集群监控

    千次阅读 2016-09-20 17:13:28
    集群监控 大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转。宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不...
  • weblogic集群集群说明

    千次阅读 2016-03-10 16:05:00
    预备知识 什么是Domain和Server Domain Domain是WebLogic Server实例的基本治理单元。所谓Domain就是,由配置为Administrator Server的WebLogic Server实例治理的逻辑单元,这个单元是有所有相关资源的集合。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,781
精华内容 7,512
关键字:

企业集群是什么意思