一、为什么要集群?
1JavaEE项目,如果部署在一台Tomcat上,所有的请求,都由这一台服务器处理,存在很大风险:
A:并发处理能力有限
(一般单台服务器处理的并发量为250左右,超过250,可能会出现数据丢失,链接不稳定的情况)。因为单服务器的性能有限制。所以单台Tomcat的最大连接数有限制,
B:容错率低,一旦服务器故障,整个服务就无法访问了。
eBay于 1999年6月停机22小时的事故,中断了约230万的拍卖,使eBay的股票下降了92个百分点。
C:单台服务器计算能力低,无法完成复杂的海量数据计算。
提高CPU主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过某一阈值,这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。
使用集群架构完成工作主要有以下几点决定:
1、高性能计算
一些国家重要的计算密集型应用(如天气预报,核试验模拟等),需要计算机有很强的运算处理能力⌄以全世界现有的技术,即使是大型机器,其计算能力也是有限的,很难单独完成此任务。因为计算时间可能会相当长,也许几天,甚至几年或更久。因此,对于这类复杂的计算业务,便使用了计算机集群技术,集中几十上百台,甚至成千上万台计算机进行计算。
2、价格有效性
早期的淘宝,支付宝的数据库等核心系统就是使用上百万元的小型机服务器。后因使用维护成本太高以及扩展设备费用成几何级数翻倍,甚至成为扩展瓶颈,人员维护也十分困难,最终使用PC服务器集群替换之,比如,把数据库系统从小机结合Oracle数据库迁移到MySQL开源数据库结合PC服务器上来。不但成本下降了,扩展和维护也更容易了。
3、可伸缩性
当服务负载,压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。
通常情况下,硬件设备若想扩展性能,不得不增加新的CPU和存储器设备,如果加不上去了,就不得不购买更高性能的服务器,就拿我们现在的服务器来讲,可以增加的设备总是有限的。如果采用集群技术,则只需要将新的单个服务器加入现有集群架构中即可,从访问的客户角度来看,系统服务无论是连续性还是性能上都几乎没有变化,系统在不知不觉中完成了升级,加大了访问能力,轻松地实现了扩展。集群系统中的节点数目可以增长到几千乃至上万个,其伸缩性远超过单台超级计算机。
4、高可用性
单一的计算机系统总会面临设备损毁的问题,如CPU,内存,主板,电源,硬盘等,只要一个部件坏掉,这个计算机系统就可能会宕机,无法正常提供服务。在集群系统中,尽管部分硬件和软件还是会发生故障,但整个系统的服务可以是724小时可用的。
集群架构技术可以使得系统在若干硬件设备故障发生时仍可以继续工作,这样就将系统的停机时间减少到了最小。集群系统在提高系统可靠性的同时,也大大减小了系统故障带来的业务损失,目前几乎100%的互联网网站都要求724小时提供服务。
5、透明性
多个独立计算机组成的松耦合集群系统构成一个虚拟服务器。用户或客户端程序访问集群系统时,就像访问一台高性能,高可用的服务器一样,集群中一部分服务器的上线,下线不会中断整个系统服务,这对用户也是透明的。
6、可管理性
整个系统可能在物理上很大,但其实容易管理,就像管理一个单一映像系统一样。在理想状况下,软硬件模块的插入能做到即插即用。
7、可编程性
在集群系统上,容易开发及修改各类应用程序。
蓝海大脑水冷工作站超融合架构承担着计算资源池和分布式存储资源池的作用,极大地简化了数据中心的基础架构,通过软件定义的计算资源虚拟化和分布式存储架构实现无单点故障、无单点瓶颈、d性扩展、性能线性增长等能力。通过简单方便的统一管理界面,实现对数据中心计算、存储、网络、虚拟化等资源的统一监控、管理和运维。
型号 蓝海大脑水冷服务器
英特尔
处理器 Intel Xeon Gold 6240R 24C/48T,24GHz,3575MB,DDR4 2933,Turbo,HT,165W1TB
Intel Xeon Gold 6258R 28C/56T,27GHz,3855MB,DDR4 2933,Turbo,HT,205W1TB
Intel Xeon W-3265 24C/48T 27GHz 33MB 205W DDR4 2933 1TB
Intel Xeon Platinum 8280 28C/56T 27GHz 385MB,DDR4 2933,Turbo,HT 205W 1TB
Intel Xeon Platinum 9242 48C/96T 38GHz 715MB L2,DDR4 3200,HT 350W 1TB
Intel Xeon Platinum 9282 56C/112T 38GHz 715MB L2,DDR4 3200,HT 400W 1TB
AMD
处理器 AMD锐龙Threadripper Pro 3945WX 40GHz/12核/64M/3200/280W
AMD锐龙Threadripper Pro 3955WX 39GHz/16核/64M/3200/280W
AMD锐龙Threadripper Pro 3975WX 35GHz/32核/128M/3200/280W
AMD锐龙Threadripper Pro 3995WX 27GHz/64核/256M/3200/280W
AMD锐龙Threadripper Pro 5945WX 41G 12核/64M/3200/280W
AMD锐龙Threadripper Pro 5955WX 40G 16核/64M/3200/280W
AMD锐龙Threadripper Pro 5965WX 38G 24核/128M/3200/280W
AMD锐龙Threadripper Pro 5975WX 36G 32核/128M/3200/280W
AMD锐龙Threadripper Pro 5995WX 27G 64核/256M/3200/280W
显卡 NVIDIA A100×4, NVIDIA GV100×4
NVIDIA RTX 3090×4, NVIDIA RTX 3090TI×4,
NVIDIA RTX 8000×4, NVIDIA RTX A6000×4,
NVIDIA Quadro P2000×4,NVIDIA Quadro P2200×4
硬盘 NVMe2 SSD: 512GB,1TB; M2 PCIe - Solid State Drive (SSD),
SATA SSD: 1024TB, 2048TB, 5120TB
SAS:10000rpm&15000rpm,600GB,12TGB,18TB
HDD : 1TB,2TB,4TB,6TB,10TB
外形规格 立式机箱
210尺寸mm(高深宽) : 726 x 616 x 266
210A尺寸mm(高深宽) : 666 x 626 x 290
210B尺寸mm(高深宽) : 697 x 692 x 306
声卡:71通道田声卡
机柜安装 : 前置机柜面板或倒轨(可选)
电源 功率 : 1300W×2; 2000W×1
软件环境 可预装 CUDA、Driver、Cudnn、NCCL、TensorRT、Python、Opencv 等底层加速库、选装 Tensorflow、Caffe、Pytorch、MXnet 等深度学习框架。
前置接口 USB32 GEN2 Type-C×4
指承灯电和硬盘LED
灵动扩展区 : 29合1读卡器,eSATA,1394,PCIe接口(可选)
读卡器 : 9合1SD读卡器(可选)
模拟音频 : 立体声、麦克风
后置接口 PS2接口 : 可选
串行接口 : 可选
USB32 GEN2 Type-C×2
网络接口 : 双万兆 (RJ45)
IEEE 1394 : 扩展卡口
模拟音频 : 集成声卡 3口
连接线 专用屏蔽电缆(信号电缆和电源电缆)
资料袋 使用手册、光盘1张、机械键盘、鼠标、装箱单、产品合格证等在腾讯云TKE上构建集群详细教程
2022-04-07 09:48:42
阅读 5320
导语
在腾讯云上构建集群需要两个步骤:购买云服务器CVM、将CVM构建成集群。
一、购买云服务器CVM
以节点(8核16G,带宽按量计费,外网带宽100Mbps,系统盘配置50GB高性能云硬盘)为例,说明购买步骤。
在腾讯云官网登录账号后,进入到云服务器界面,点击“新建”

选择合适的计费模式、地域。

选择合适的机器配置,镜像默认选择最新版本即可,后续构建集群时会自动重装系统。

勾选上“免费分配独立公网IP”,选择“按使用流量”,带宽配置100Mbps,机器数量按需要进行配置,点击下一步。

安全组放开常用的端口/IP
设置CVM的登录密码,密码不能过于简单,否则很容易被攻击;如果能够确定压测机的使用时长,可设置机器自动销毁的时间,然后点击下一步。

确认配置信息后点击开通,然后等待机器构建。

二、构建TKE集群
在容器服务页面新建集群

2 在“集群信息”步骤填写集群名称,选择集群所在地域,集群网络需要和压测机器在同一个网络下

3 *** 作系统建议选择Tencent Linux Release 22(Final),然后点击下一步。
4 在“选择机型”步骤选择已有节点,选择需要加入集群的节点,然后点击下一步。
5 在“云服务器配置”步骤设置CVM的登录密码,然后点击下一步。
6 组件配置不需要改动,然后点击下一步。
7 最后确认配置信息无误,点击完成,集群开始创建,大约需要15分钟。
8 待集群构建完成后,在基本信息页面中,开放集群外网访问0000/0,如果无法直接放通,请联系TCPS管理员提供压测平台的ip添加白名单。
9 将集群的config文件下载到本地,后续会用到。
原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。如有侵权,请联系 cloudcommunity@tencentcom 删除。 *** 作系统
我们选择Linux作为 *** 作系统。Linux有许多不同的发行版,包括Ubuntu、RedHat和CentOS等,无论选择哪一个都可以。基于支持和许可费用的考虑,我们最终选择了CentOS 57。最好是定制一个CentOS的映像,把那些需要的软件都预装进去,这样所有的机器可以包含相同的软件和工具,这是一个很好的做法。
根据Cloudera的建议,OS层应该采用以下设置:
文件系统
Ext3文件系统
取消atime
不要使用逻辑卷管理
利用alternatives来管理链接
使用配置管理系统(Yum、Permission、sudoers等)
减少内核交换
撤销一般用户访问这些云计算机的权限
不要使用虚拟化
至少需要以下Linux命令:
/etc/alternatives
ln、chmod、chown、chgrp、mount、umount、kill、rm、yum、mkdir
硬件要求
由于Hadoop集群中只有两种节点(Namenode/Jobtracker和Datanode/Tasktracker),因此集群内的硬件配置不要超过两种或三种。
图2 - Hadoop集群服务器角色
硬件建议:
Namenode/Jobtracker:1Gb/s以太网口x2、16GB内存、4个CPU、100GB磁盘
Datanode:1Gb/s以太网口x2、8GB内存、4个CPU、多个磁盘,总容量500GB以上
实际的硬件配置可以与我们建议的配置不同,这取决于你们需要存储和处理的数据量。但我们强烈建议不要在集群中混用不同的硬件配置,以免那些较弱的机器成为系统的瓶颈。
Hadoop的机架感知
Hadoop有一个“机架感知”特性。管理员可以手工定义每个slave数据节点的机架号。为什么要做这么麻烦的事情有两个原因:防止数据丢失和提高网络性能。
图3 - Hadoop集群的机架感知
为了防止数据丢失,Hadoop会将每个数据块复制到多个机器上。想象一下,如果某个数据块的所有拷贝都在同一个机架的不同机器上,而这个机架刚好发生故障了(交换机坏了,或者电源掉了),这得有多悲剧为了防止出现这种情况,必须要有一个人来记住所有数据节点在网络中的位置,并且用这些知识来确定——把数据的所有拷贝们放在哪些节点上才是最明智的。这个“人”就是Name Node。
另外还有一个假设,即相比不同机架间的机器,同一个机架的机器之间有着更大的带宽和更小的延时。这是因为,机架交换机的上行带宽一般都小于下行带宽。而且,机架内的延时一般也小于跨机架的延时(但也不绝对)。
机架感知的缺点则是,我们需要手工为每个数据节点设置机架号,还要不断地更新这些信息,保证它们是正确的。要是机架交换机们能够自动向Namenode提供本机架的数据节点列表,那就太棒了。
Hadoop软件的安装和配置
Hadoop集群有多种构建方式:
手工下载tar文件并复制到集群中
利用Yum仓库
利用Puppet等自动化部署工具
我们不建议采用手工方式,那只适合很小的集群(4节点以下),而且会带来很多维护和排障上的问题,因为所有的变更都需要用scp或ssh的方式手工应用到所有的节点上去。
从以下方面来看,利用Puppet等部署工具是最佳的选择:
安装
配置
维护
扩展性
监控
排障
Puppet是Unix/Linux下的一个自动化管理引擎,它能基于一个集中式的配置执行增加用户、安装软件包、更新服务器配置等管理任务。我们将主要讲解如何利用Yum和Puppet来安装Hadoop。
利用Yum/Puppet搭建Hadoop集群
要利用Puppet搭建Hadoop集群,首先要符合以下前置条件:
包含所有必需Hadoop软件的中央仓库
用于Hadoop部署的Puppet装载单(manifest)
用于Hadoop配置管理的Puppet装载单
用于集群维护的框架(主要是sh或ksh脚本),以支持集群的start/stop/restart
利用puppet构建整个服务器(包括 *** 作系统和其它软件)
注:如果要用Yum来安装Hadoop集群,则所有服务器应该预先构建完成,包括 *** 作系统和其它软件都应安装完毕,yum仓库也应在所有节点上设置完毕。
构建Datanode/Tasktracker
如果用Yum安装Datanode/Tasktracker,需在所有数据节点上执行以下命令:
yum install hadoop-020-datanode –y
yum install hadoop-020-tasktracker –y
换成Puppet的话,则是:
class setup_datanode {
if ($is_datanode == true) {
make_dfs_data_dir { $hadoop_disks: }
make_mapred_local_dir { $hadoop_disks: }
fix_hadoop_parent_dir_perm { $hadoop_disks: }
}
# fix hadoop parent dir permissions
define fix_hadoop_parent_dir_perm() {
…
}
# make dfs data dir
define make_dfs_data_dir() {
…
}
# make mapred local and system dir
define make_mapred_local_dir() {
…
}
} # setup_datanode
构建Namenode(及辅助Namenode)
如果用Yum安装Namenode,需在所有数据节点上执行以下命令:
yum install hadoop-020-namenode –y
yum install hadoop-020-secondarynamenode –y
换成Puppet的话,则是:
class setup_namenode {
if ($is_namenode == true or $is_standby_namenode == true) {
}
exec {"namenode-dfs-perm":
}
exec { "make ${nfs_namenode_dir}/dfs/name":
}
exec { "chgrp ${nfs_namenode_dir}/dfs/name":
}
if ($standby_namenode_host != "") {
}
exec { "own $nfs_standby_namenode_dir":
}
}
# /standby_namenode_hadoop
if ($standby_namenode_host != "") {
}
exec { "own $standby_namenode_hadoop_dir":
}
}
}
}
class setup_secondary_namenode {
if ($is_secondarynamenode == true) {
}
}
exec {"namenode-dfs-perm":
}
}
}
构建JobTracker
如果用Yum安装Jobtracker,需在所有数据节点上执行以下命令:
yum install hadoop-020-jobtracker –y
换成Puppet的话,则是使用与构建Namenode相同的装载单,唯一的区别在于,在Jobtracker机器上,会启动Jobtracker——即将该机器上的is_jobtracker设置为true。如果想要同一时间有数亿人在线,TB级别带宽,CDN加速和多节点,负载均衡等等技术缺一不可。
其实,抖音,百度,阿里云,腾讯都是自建的数据中心,都是TB级别出口带宽(总出口带宽),也就是达到1TB=1024G/s的出口带宽,服务器总署基本都在20万台以上,甚至阿里云都超过了100万台。
据研究,字节跳动(抖音)的数据中心总带宽,可能在10TB级别左右,预期突破15TB级别不远了。
抖音为什么能够供上亿人同时刷?它的带宽有多大?
服务器集群
抖音并不是全国所有刷视频用户都在同一个地方的数据中心接入我们看视频的流量,如果是这样的话,那么这个数据数据中心所需的带宽就是过于巨大。
一般来说,抖音在全国各地会建设几个比较大的数据中心,也就是服务器集群,我们刷视频的请求是就近接入的。
而且每个数据中心都会和三大运营商网络对接。这也就意味着你是如果是上海移动用户,那么刷出来抖音的视频将会从上海移动的网络接入抖音。
抖音为什么能够供上亿人同时刷?它的带宽有多大?
字节跳动有多少台服务器?
根据网络数据整理,字节跳动2017年有2-3万台服务器,这个时候主要是租用服务器为主。2018年,字节跳动自己建设了数据中心,最大的数据中心在河北怀来官厅湖新媒体产业园,一期5万台服务器。二期9万台服务器。
抖音为什么能够供上亿人同时刷?它的带宽有多大?
2018年,租用+自建的服务器数量达到17万台服务器。
2020年,根据字节跳动招聘公告的数据,显示有42万台服务器。比2018年增长了15倍。(数据来自网络)
在海外,例如在美国的TIKTOK(抖音国际版)是独立出来的运营,数据在美国当地存储和分发。2020年TIKTOK在美国也租用了近10万台服务器,占地面积可达数十万平方英尺。
抖音为什么能够供上亿人同时刷?它的带宽有多大?
CDN让视频不卡顿
上面说到服务器集群,再说说CDN等技术,属于是硬性要求,基本都是视频行业的标配了,抖音肯定也不例外。
CDN是做内容分发,用通俗的话解释CDN就是:会把一些页面,专门压缩,有的压缩为静态页面,静态页面直接分发,速度快。用户可以在2s内看到内容,体验感更好。这是静态传输。
对于动态视频,首先通过智能路由,寻找最佳路径,然后协议优化将长连接,内容进行压缩,去除冗余。这就是动态压缩。
抖音为什么能够供上亿人同时刷?它的带宽有多大?
早在2015年腾讯就有5亿日活,集合了音乐,即时通讯等等产品的CDN的级别,达到了10TB带宽。每天请求万亿次。
目前抖音日活有6亿,西瓜视频+今日头条我们粗略算是2亿,总计有8亿的日活。所以,字节跳动整体服务器有10TB只少不多。
所以,拥有这么大的带宽和技术实力,才能让上亿人同时刷视频不卡顿。
很高兴回答你的问题我是林创云,如果我的回答对你有帮助欢迎给我评论留言或者点赞加个关注!
如果是托管服务器的话,服务商基本都会提供以下几种网络:
共享
常见的有100M共享,保底5M或者10M等,这个等于就是一台交换机上接入了很多客户复用这一个网络。
独享
独享就是没人跟你抢网络的,例如购买了20M独享,你随时都可以跑到20M
如果是云主机,基本都是d性网络,可以自己去控制台自由伸缩的。
最低配置为1Mbps,换算为下载速度就是128kb左右。
有一些服务商限制的比较死,1Mbps的带宽,下载任何资源都是128kb,有一些服务商有部署cdn,比如咱们林创云主机,虽然最低也是1Mbps,不过市面上常用的文件,软件包都有cdn,购买1Mbps的带宽,下载速度也可以达到几十Mbps。
总结:
不管是托管还是云服务,带宽都是可以随时扩容的,可以先购买小一点的带宽,如果觉得差不多了,就继续用,觉得不够了,再去扩容就好了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)