IDH运行的软硬件环境IDHHadoop运行的软硬件环境标准的x86的服务器以太网络多机架数据中心软件环境硬件的选择(处理器,硬盘,网络)IDHHadoop集群中的模块逻辑结构Hadoop集群HDFSMapReduceHBaseHive……管理节点Hive节点1节点2节点3节点N……HDFS客户端MapReduce客户端HBase客户端Hive客户端……IDHHadoop集群典型的节点分配角色描述节点数目HDFSNameNode分布式文件系统用以存储文件系统以及数据块的元数据1个独立节点HDFSSecondaryNameNodeNameNode的影子节点小规模集群可以和NameNode共享节点,大规模集群用独立节点HDFSDataNodeHDFS数据存储多个独立节点MapReduceJobTrackerMapReduce调度程序1个独立节点,小规模集群可以与NameNode共享,大规模集群使用独立节点MapReduceTaskTrackerMapReduce实际计算节点与DataNode运行在相同的节点之上HiveHive元数据以及驱动程序独立配置的话可以与NameNode共享节点,或者将元数据存放在客户端IDHHadoop集群典型的节点分配角色描述节点数目ZooKeeper用以提供集群高可用性的锁服务3个或3个以上的奇数的独立节点(小规模可以和其它角色共享节点)HBaseHMasterHBase用以调度RegionServer的主模块与其它角色共享节点的多个节点HBaseRegionServerHBase中用以管理数据的模块一般与DataNode运行与相同的节点之上ManagementNodeIDH特有的管理节点一般为一个独立的节点,如果小规模集群的话可以与其它角色共享IDH发行版的硬件典型的需求服务器运行英特尔Hadoop发行版至少需要英特尔至强处理器,推荐使用双路4核英特尔处理器。服务器运行英特尔Hadoop发行版的最低内存要求为16GB内存。在此基础上,不同服务器角色和服务类型有着各自的内存要求服务器角色及服务类型内存要求管理节点8GBHadoop集群:MapReduceJobTracker2GBMapReduceTaskTracker2GBMapReduceSlotsonTaskTracker512MB*slot数量HDFSNameNode16GBHDFSSecondaryNameNode16GBHDFSDataNode2GBZooKeeper4GBHBaseMasterServer2GBHBaseRegionServer16GBHiveServer2GB客户端8GB硬件配置的计算用户可以通过简单地叠加相应服务需要的内存要求来计算推荐的内存要求。比如一个服务器计划运行如下服务:HDFSDataNode,MapReduceTaskTracker和HBaseRegionServer。同时计划的slot数量(包括mapslots和reduceslots)为16。这样,对于这个服务器的推荐内存为:2GB+2GB+512MB*16+16GB=28GB.对于所有集群中的服务器(除了主命名节点和从命名节点),推荐在物理硬盘中不要使用RAID。但在RAID无法被移除的情况下,每一个物理硬盘可以被设为一个单独的RAID0IDH集群环境的网络配置典型使用以太网络,为了使得系统能够正常运行,最低使用千兆以太网连接,由于需要有数据交换的需求,建议配置大容量的网络交换机当一台机器上有多个网络适配器时,推荐使用网络适配器绑定Linux的方法配置链路聚合,并把工作模式设为6。在工作模式为6时,负载平衡可以通过循环取得,并且这些网络适配器可以在没有配置交换器的情况下正常工作网络配置环境中的交换机的重要性千兆以太网接口是最基本的要求,更重要的是交换机的背板带宽,是决定数据传输的关键因素一个以太网交换机的接口是以太网交换机到主机的速度,这个速度决定主机到交换机的速度级别,在Hadoop环境中,这个速度最少应该是千兆以太网接口速度即使达到了千兆以太网,实际的运行速度可能并不能真正达到千兆以太网的速度,因为可能有数十个设备同时共享这个交换机决定交换机的性能的关键因素是交换机的背板带宽,具有良好背板交换能力的交换机能够使得任意两个接口之间的速度以及上行的速度都能够达到千兆的速度,而通过总线进行共享的带宽往往不能达到理想的速度为了能够使得Hadoop的处理能力能够得到充分的释放,交换机对于系统运行的性能起到了决定性的左右,建议在可能的情况下尽量选择高端的交换机,使得每一个接口都能够达到线速(网线能够达到什么速度,交换机就能够提供什么速度,没有性能损失)IDH的网络配置推荐最常见的是使用服务器本身的千兆以太网络,每一个机架使用一个交换机,在多个机架之间进行带宽聚合。这种方式在总的节点数目较少(少于40个)集群比较合适如果应用(例如ETL的应用)的IO高负载,这样的话,网络会成为性能瓶颈•12块以上的硬盘,每块以100MB/s速度运行,会很快吃掉所有网络带宽•低端的交换器不能够支持线速,产生阻塞提高网络速度最直接的办法是通过端口绑定,将服务器的多个端口绑定为一个多网卡绑定通过多个网卡绑定为一个IP地址通过软硬件设置将两块或者多块网卡绑定到同一个ip地址上,可以增大网络带宽,形成网卡的冗余阵列、分担负载•分担负载:网络流量可以被同时分配到多个网卡上,在同样的流量下,每块网卡负载降低;在流量增加的时候,由于多个物理网卡的协同作用,能够提高网络流量•提高通信可靠性:当其中的一块网卡发生故障的时候,另外一块网卡可以继续工作,传输不被打断在Windows下可以使用NicExpress软件绑定多块网卡(但是Hadoop并不会运行在Windows之上)在Linux下可以通过配置文件的方式将两个物理网卡绑定在一起IDH的中高端网络配置推荐如果整个集群的负载比较高,或者非常高,这就需要更换性能更好的网络在较高负载的情况下,可以考虑使用性能更好10GBE以太网络•每一个网络端口的成本会是原来的3倍,但有约10倍的性能提升•一些Hadoop模块,例如HBase能够从低延迟中获得利益,能够提高总体的性能如果需要的通信量更大,或者需要混合一些高性能计算程序,整个IDH需要更加高端的网络配置•推荐使用InfiniBand网络,InifiBand网络具有更好的实现机制,能够减少网络的冲突•InfiniBand的带宽有10G,20G以及40G的选择,并延迟更短硬件选择的考虑因素要使得Hadoop集群能够充分发挥作用,需要足够好的硬件,以及足够好的软件。虽然台式机硬件也能够运行Hadoop环境,但是在性能上有差距,解决问题的规模有限合理选择硬件需要对自己所需要处理的问题有全面地了解,这样才能够投资合理的硬件•计算密集型应用–机器学习–数据挖掘•IO密集型应用–索引,检索–统计,聚类–数据解码与解压缩小规模硬件推荐4~10个节点,解决较小规模问题项目指标处理器CPU双路四核服务器处理器,2x42.6GHz内存32G或者以上内存,DDR3,ECC磁盘接口SAS6GB/s磁盘6x或者12xSATA1T7200RPM监控级硬盘网络两个以太网口中规模硬件推荐20+个节点,解决中等规模问题,实际上能够满足大多数中小企业的需求项目指标处理器CPU双路六核服务器处理器,处理器缓存15MB,2x62.9GHz内存64G或者以上内存,DDR3,ECC磁盘接口SAS6GB/s磁盘6x或者12xSATA1T或者3T7200RPM监控级硬盘(依据数据规模而定)网络两个以太网口高端硬件推荐依据问题规模确定所需要的节点数目,解决大规模问题,使用高端的内存,高速网络项目指标处理器CPU双路六核服务器处理器,处理器缓存15MB,2x62.9GHz,依据应用可以选用更高端的处理器内存96G或者以上内存,DDR3,ECC磁盘接口2xSAS6GB/s磁盘24x1TB高速SAS硬盘网络10Gb以太网口高端网络可以考虑使用InifinBand网络IDH软件环境的要求支持的操作系统包括:1.RedHatEnterpriseLinux2.CentOS3.OracleLinux要求所有的这些操作系统至少要64位系统,版本6以上。在把服务器加入集群前,须要确保opnssh-server在运行。如果opnssh-server没有在运行,在Hadoop集群中的所有节点中安装openssh-server包。IDH集群规划规划使用Hadoop的组件,这些组件包括HDFS,MapReduce,Hive,HA组件等规划集群的硬件参数,包括服务器数量,物理布局,机架数目以及服务器在机架上的分配规划集群使用的网络,即决定使用网络的拓扑,节点到交换机的连接,机柜之间的连接规划节点的IP地址设置以及节点的角色,例如用以各个逻辑角色管理的节点,用以存储元数据的NameNode,MapReduce程序的JobTracker,IntelIDH管理节点等构造集群的主要步骤确保用于构建集群的所有的服务器满足集群节点要求(包括硬件要求、软件要求和网络要求。)做好构造Hadoop集群的规划在集群中的所有节点上安装需要的操作系统在管理服务器上安装英特尔Hadoop发行版使用Intel®ManagerforApacheHadoop配置节点进行系统安装正确配置所有节点的RAID