什么情况要求几台服务器相同配置,这个还真难找,没有固定的规定说是一定要相同的。比较变化性比较大。只是有时候为了做软件或者其他应用方便的话,这样要求。但是这也只是一个小问题,不是非要求一定要相同的。
成都网烁信息科技----专业服务器DIY,服务器配件批发;为你解答 *** 作系统
我们选择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。可以,集群不要求配置一样~
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。--百度百科
集群下不同节点去实现对应的功能,可以对应功能去搭配合适的硬件,所以不会要求配置一样。
首先,你要评估你的用户数量。
在这些用户访问的情况下需要占用的资源。
包括你使用的中间件,数据库, *** 作系统等需要占用到的资源。
还有就是软件本身的并发数量,如果你的web高峰期访问超过几万,而你单台web服务器只能处理2000并发,是不是需要考虑集群和负载均衡。
当然如果你预估的用户数量不多的话可以先买主流配置的服务器看看效果。不建议,将web、数据库和数据放在同一台服务器上。
市面上存在两种数据库负载均衡的思路:1
基于数据库连接的负载均衡:例如总共有100个数据库连接,50个连接登录到数据库机器A,另外50个连接登录到数据库机器B,这样每个连接中接下来的所有请求全都是发往同一台数据库机器的
这种数据库负载均衡的思路模拟了WEB上的负载均衡方法,但是由于WEB连接是短时间连接(连接建立后,获取需要的HTML等资源后,连接马上被关闭),而数据库连接是长时间连接(连接建立后,可长时间保持,客户可不停向数据库发送SQL请求,数据库做出回答,如此不断循环直到连接被人为或因错而断开为止),因此这种数据库负载均衡思路存在着明显的缺点:有可能会发生绝大部分的请求压力都集中到某台数据库机器上去,从而使得负载均衡效果失效
2
基于批处理请求的负载均衡:在建立数据库连接的时候,会同时与每台数据库服务器建立连接,之后针对客户端的每次请求,都会根据负载均衡算法,独立地选出某个数据库节点来执行这个请求
此种思路符合数据库长时间连接的特征,不存在上面所述的基于连接的负载均衡方法的缺点
市面上的负载均衡厂商,既有基于连接的,也有基于批处理请求的,用户需仔细辨别才能找到自己想要的合适产品
问题一:选购IA服务器时应考察的主要配置参数有哪些CPU和内存:CPU的类型、主频和数量在相当程度上决定着服务器的性能;服务器应采用专用的ECC校验内存,并且应当与不同的CPU搭配使用。
芯片组与主板:即使采用相同的芯片组,不同的主板设计也会对服务器性能产生重要影响。
网卡:服务器应当连接在传输速率最快的端口上,并最少配置一块千兆网卡。对于某些有特殊应用的服务器(如FTP、文件服务器或视频点播服务器),还应当配置两块千兆网卡。
硬盘和RAID卡:硬盘的读取/写入速率决定着服务器的处理速度和响应速率。除了在入门级服务器上可采用IDE硬盘外,通常都应采用传输速率更高、扩展性更好的SCSI硬盘。对于一些不能轻易中止运行的服务器而言,还应当采用热插拔硬盘,以保证服务器的不停机维护和扩容。
冗余:磁盘冗余采用两块或多块硬盘来实现磁盘阵列;网卡、电源、风扇等部件冗余可以保证部分硬件损坏之后,服务器仍然能够正常运行。
热插拔:是指带电进行硬盘或板卡的插拔 *** 作,实现故障恢复和系统扩容。 同时,在选择IA服务器时通常需要考虑可管理性、可用性、可扩展性、安全性以及可靠性等几方面的性能指标。
问题二:64位服务器覆盖的应用范围
从应用类型来看,大致可分为主域服务器、数据库服务器、Web服务器、FTP服务器和邮件服务器、高性能计算集群系统几类。 而目前,主流的服务器处理器有:英特尔安腾处理器、英特尔至强处理器和AMD公司的Opteron处理器,这些处理器是近几年推出的新型64位服务器。笔者就以上的几种应用,讨论一下服务器在不同的应用当中,对服务器子系统的不同要求进行简单概述:
主域控制器 网络、用户、计算机的管理中心,提供安全的网络工作环境。主域控制器的系统瓶颈是内存、网络、CPU、内存配置。
文件服务器 文件服务器作为网络的数据存储仓库,其性能要求是在网络上的用户和服务器磁盘子系统之间快速传递数据。
数据库服务器 数据库引擎包括DB2、SQL Server、Oracle、Sybase等。数据库服务器一般需要使用多处理器的系统,以SQL Server为例,SQL Server能够充分利用SMP技术来执行多线程任务,通过使用多个CPU,对数据库进行并行 *** 作来提高吞吐量。另外,SQL Server对L2缓存的点击率达到90%,所以L2缓存越大越好。内存和磁盘子系统对于数据库服务器来说也是至关重要的部分。
Web服务器 Web服务器用来响应Web请求,其性能是由网站内容来决定的。如果Web站点是静态的,系统瓶颈依次是:网络、内存、CPU;如果Web服务器主要进行密集计算(例如动态产生Web页),系统瓶颈依次是:内存、CPU、磁盘、网络,因为这些网站使用连接数据库的动态内容产生交易和查询,这都需要额外的CPU资源,更要有足够的内存来缓存和处理动态页面。
高性能计算用的集群系统 一般在4节点以上,节点机使用基于安腾、AMD 64技术的Opteron系统,这种集群系统的性能主要取决于厂商的技术实力、集群系统的设计、针对应用的调优等方面。
问题三:多核时代,处理器内核越多越好吗?
二大芯片巨头英特尔、AMD公司于2005年底推出多核处理器,目前,不管是双核、还是即将成为2007年主流四核处理器或是将来的八核、十六核处理器,英特尔、AMD之间激烈的竞争,促使处理器市场新品越来越多。在性能上、在功耗节能方面还是其它服务器配件方面,都极大地促进了产业的发展。
而对于大部分用户来讲,服务器在应用层次方面,仍旧是不变的。唯一需要考虑的就是用户自身的发展对于服务器的性能是否能够满足。现今,对于一款四核高性能服务器,其采购成本远远高于现今主流的双核服务器,如果双核服务器就能够满足您的需求,同时也能够为将来的3~5年发展预留足够的空间,那么就没必要选择价格昂贵的四核服务器。
综合以上:对于单核/双核/多核综合交叉时代,选购服务器应该把目光放在自身需求上面,以本身应用需求、资金投入为因素,选购最合适的服务器产品。 1集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
2负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的 *** 作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。
3特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统 (Cluster)主要解决下面几个问题:
(1)高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务;
(2)高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等;
(3)负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。你得明白,你的重点是在高可用上,还有我想给你个建议,在百度知道提问应该是提问一个具体的知识点,你提问的是一整套解决方案有没有?
首先,你得说说你是做什么服务的吧?服务器得有主从吧?得有负载均衡检查服务器是否宕机吧?这三点其实你得想到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)