提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:陈俊吉|2017-11-10 09:44:32.000|阅读 620 次
概述:虽然Hadoop被设计为可以运行在标准的X86硬件上,但在选择具体服务器配置的时候其实没那么简单。为已知的工作负载或者应用场景选择硬件时,往往都要综合考虑性能因素和性价比,才能选择合适的硬件。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
当我们想搭建一个时,碰到的第一个问题就是我们到底该如何选择硬件。
虽然被设计为可以运行在标准的X86硬件上,但在选择具体服务器配置的时候其实没那么简单。为已知的工作负载或者应用场景选择硬件时,往往都要综合考虑性能因素和性价比,才能选择合适的硬件。比如,对于IO密集型的工作负载,用户往往需要为每个CPU core匹配更多的存储或更高的吞吐(more spindles per core)。
通过本文,您将学习到如何根据工作负载来选择硬件,包括一些其他您需要考虑的因素。
1.计算和存储
过去的十年,业界基本已经形成了刀片和SANs(Storage Area Networks)的标准,从而满足网格和处理密集型的工作负载。这种模式对于许多标准应用(比如Web服务器,应用服务器,较小的结构化数据和数据搬运)还都是适用的,但是随着数据量和用户数据的增长,基础设施的需求也发生了变化。Web服务器现在已经有了缓存层,数据库借助本地磁盘开始支持海量并发,数据搬运的压力迫使我们需要更多的在本地处理数据。
“很多人在搭建时都没有去真正了解过工作负载”
硬件供应商更新了对应的产品来满足相应的需求,包括存储刀片,SAS(Serial Attached SCSI)交换机,外挂的SATA阵列和容量更大的机架。然而,Hadoop是基于一个全新的存储和处理数据的方式,尽量避免数据传输。Hadoop通过软件层来实现大数据的处理以及可靠性,而不像一个SAN存储所有数据,如果计算则传输到一系列刀片进行计算。
Hadoop将数据在各台服务器上,使用文件副本来保证数据不丢以及容错。这样一个计算请求可以直接分发到存储数据的相应服务器并开始进行本地计算。由于Hadoop集群的每台节点都会存储和处理数据,所以你就需要考虑怎样为集群里的这些服务器选择合适的配置。
2.为什么跟工作负载有关系
在很多情况下,MapReduce/Spark都会遭遇瓶颈,比如从磁盘或者网络读取数据(IO-bound的作业),或者在CPU处理大量数据时(CPU-bound的作业)。IO-bound的作业的一个例子是排序,一般需要很少的处理(简单的比较)却需要大量的读写磁盘。CPU-bound的作业的一个例子是分类(classification),一些数据往往需要很复杂的处理。
典型的IO-bound的工作负载如下:
典型的CPU-bound工作负载如下:
我们需要完全了解工作负载,才能够正确的选择合适的Hadoop硬件。很多人因为从来没有研究过工作负载,往往会导致Hadoop运行的作业是基于不合适的硬件。此外,一些工作负载往往会受到一些其他的限制。比如因为选择了压缩,本应该是IO-bound的工作负载实际却是CPU-bound的,或者因为算法选择不同而使MapReduce或者Spark作业受限。由于这些原因,当您不熟悉未来将要运行的工作负载时,可以选择一些较为均衡的硬件配置来搭建Hadoop集群。
接下来我们就可以在集群中运行一些MapReduce/Spark作业进行基准测试,来分析它们的bound方式。可以通过一些监控工具来确定工作负载的瓶颈。当然提供了这个功能,包括CPU,磁盘和网络负载的实时统计信息。通过Cloudera Manager,当集群在运行作业时,系统管理员可以通过dashboard很直观的查看每台机器的性能表现。
“第一步是了解运维部门管理的硬件。”
除了根据工作负载来选择硬件外,还可以与硬件厂商一起了解耗电和散热以节省额外的开支。由于Hadoop是运行在数十,数百甚至数千个节点上,尽可能多的考虑方方面面都可以节省成本。每个硬件厂商都提供了专门的工具来监控耗电和散热,以及如何改良的最佳实践。
3.为CDH集群挑选硬件
在挑选硬件的时候,第一步是了解您的运维部门所管理的硬件类型。运维部门往往倾向于选择他们熟悉的硬件。但是,如果您是在搭建一个新的集群,并且无法准确的预测集群未来的工作负载,我们建议您还是选择适合Hadoop较为均衡的硬件。
一个Hadoop集群通常有4个角色:NameNode(和Standby NameNode),ResourceManager,NodeManager和DataNode。集群中的绝大多数机器同时是NodeManager和DataNode,既用于数据存储,又用于数据处理。
以下是较为通用和主流的NodeManager/DataNode配置:
NameNode负责协调集群上的数据存储,ResourceManager则是负责协调数据处理。Standby NameNode不应该与NameNode在同一台机器,但应该选择与NameNode配置相同的机器。我们建议您为NameNode和ResourceManager选择企业级的服务器,具有冗余电源,以及企业级的RAID1或RAID10磁盘配置。
NameNode需要的内存与集群中存储的数据块成正比。我们常用的计算公式是集群中100万个块(HDFS blocks)对应NameNode的1GB内存。常见的10-50台机器规模的集群,NameNode服务器的内存配置一般选择128GB,NameNode的堆栈一般配置为32GB或更高。另外建议务必配置NameNode和ResourceManager的HA。
以下是NameNode/ResourceManager及其Standby节点的推荐配置。磁盘的数量取决于你想冗余备份元数据的份数。
“记住,Hadoop生态系统的设计需考虑并行环境。”
如果预期你的Hadoop集群未来会超过20台机器,建议集群初始规划就跨两个机架,每个机柜都配置柜顶(TOR,top-of-rack)的10GigE交换机。随着集群规模的扩大,跨越多个机架时,我们在机架之上还要配置冗余的核心交换机,带宽一般为40GigE,用来连接所有机柜的柜顶(TOR)交换机。拥有两个机架,可以让运维团队更好的了解机架内以及跨机架的网络通信需求。Hadoop网络要求可以参考Fayson之前的文章CDH网络要求(Lenovo参考架构)。
当搭建好Hadoop集群后,我们就可以开始识别和整理运行在集群之上的工作负载,并且为这些工作负载准备基准测试,以定位硬件的瓶颈在哪里。经过一段时间的基准测试和监控,我们就可以了解需要如何增加什么样配置的新机器。异构的Hadoop集群是比较常见的,特别是随着数据量和用例数量的增加,集群需要扩容时。所以如果因为前期并不熟悉工作负载,选择了一些较为通用的服务器,也并不是不能接受。Cloudera Manager支持服务器分组,从而使异构集群配置变的很简单。
以下是不同的工作负载的常见机器配置:
注意:以上2路6核为最低的CPU配置,推荐的CPU选择一般为2路8核,2路10核,2路12核
下图显示如何根据工作负载来选择你的机器:
4.其他注意事项
Hadoop生态系统是一个并行环境的系统。在选择购买处理器时,我们不建议选择主频(GHz)最高的芯片,这样一般都代表了更高电源瓦数(130W+)。因为这会产生两个问题:更高的功率消耗和需要更多的散热。较为均衡的选择是在主频,价格和核数之间做一个平衡。
当存在产生大量中间结果的应用程序 – 输出结果数据与输入数据相当,或者需要较多的网络交换数据时,建议使用绑定的万兆网,而不是单个万兆网口。
当计算对内存要求比较高的场景,请记住,Java最多使用10%的内存来管理虚拟机。建议严格配置Hadoop使用的堆大小的限制,从而避免内存交换到磁盘,因为交换会大大影响计算引擎如MapReduce/Spark的性能。
优化内存通道宽度也同样重要。比如,当使用双通道内存时,每台机器都应配置一对DIMM。使用三通道内存时,每个机器都应该具有三倍的DIMM。同样,四通道DIMM应该被分为四组。
5.Hadoop其他组件的考虑
Hadoop远远不止HDFS和MapReduce/Spark,它是一个全面的数据平台。CDH平台包含了很多Hadoop生态圈的其他组件。我们在做群集规划的时候往往还需要考虑HBase,Impala和Solr等。它们都会运行在DataNode上运行,从而保证数据的本地性。
HBase是一个可靠的,列存储数据库,提供一致的,低延迟的随机读/写访问。Cloudera Search通过Solr实现全文检索,Solr是基于Lucene,CDH很好的集成了Solr Cloud和Apache Tika,从而提供更多的搜索功能。Apache Impala则可以直接运行在HDFS和HBase之上,提供交互式的低延迟SQL查询,避免了数据的移动和转换。
由于GC超时的问题,建议的HBase RegionServer的heap size大小一般为16GB,而不是简单的越大越好。为了保证HBase实时查询的SLA,可以通过Cgroups的的方式给HBase分配专门的静态资源。
Impala是内存计算引擎,有时可以用到集群80%以上的内存资源,因此如果要使用Impala,建议每个节点至少有128GB的内存。当然也可以通过Impala的动态资源池来对查询的内存或用户进行限制。
Cloudera Search在做节点规划时比较有趣,你可以先在一个节点安装Solr,然后装载一些文档,建立索引,并以你期望的方式进行查询。然后继续装载,直到索引建立以及查询响应超过了你的预期,这个时候你就需要考虑扩展了。单个节点Solr的这些数据可以给你提供一些规划时的参考,但不包括复制因子因素。
6.总结
选择并采购Hadoop硬件时需要一些基准测试,应用场景测试或者Poc,以充分了解你所在企业的工作负载情况。但Hadoop集群也支持异构的硬件配置,所以如果在不了解工作负载的情况下,建议选择较为均衡的硬件配置。还需要注意一点,Hadoop平台往往都会使用多种组件,资源的使用情况往往都会不一样,专注于多租户的设计包括安全管理,资源隔离和分配,将会是你成功的关键。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
工业4.0优选产品 | 商业智能和绩效管理软件领导者,帮助企业成为业绩最佳的分析驱动型企业
SPSS Modeler工业4.0优选产品 | 在历史数据中发现规律以预测未来事件,做出更好的决策,实现更好的成效
IBM BigInsights for Apache Hadoop经济高效地存储、管理和分析大数据
IBM InfoSphere Streams高效捕获和分析动态数据的软件平台
InfoSphere DataStage助您发现、充实、集成和管理数据的整个生命周期
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢