克服部署挑战,让Hadoop和云成为最佳拍档
Hadoop 和云似乎是最佳搭档。它们都包含灵活和分布式的处理与存储,而且都带有一个灵活的实例系统。它们还使您能够根据数据和处理需求来扩大和收缩 Hadoop 集群。但这会引发各种管理与调度问题。本文将了解所有这些问题,并描述基于云的 Hadoop 部署的挑战与优势。
了解云部署的范围
Hadoop 系统是一个用起来颇有挑战性的环境,但由于云环境所具有的限制(与自由),云部署会引入额外的复杂性。
例如,借助云中的 Hadoop,如何处理可变的集群规模与信息的有效分布?如何有效地扩大和收缩云环境,以便应付您期望处理的 Hadoop 负载?如何计划和控制任务与处理,以便在云实例可用时最大限度地利用它们?
根据具体云服务的不同,云部署的优势与劣势会对这些环境中 Hadoop 的使用产生相应的影响。请记住,与公有云相比,私有云服务的约束与限制存在巨大差异。如果使用自己的 VM 环境或诸如 OpenStack 这样的解决方案时,那么您将拥有极大的灵活性来定制服务与功能。
为了让云中的 Hadoop 发挥最大功效,您首先需要了解已经存在的云部署解决方案,以及它们对于 Hadoop 环境有哪些影响。
基于服务的云部署
大数据培训越来越火,大数据产业蓬勃发展。某些云解决方案完全基于某个特定服务,该服务将会加载并处理数据。例如,借助 IBM Bluemix®,您可以基于 IBM InfoSphere® BigInsights™ 配置一个 MapReduce 服务,该服务可以处理高达 20GB 的信息。但 Hadoop 服务的大小、配置与复杂性是不可配置的。其他基于服务的解决方案也提供同样类别的复杂性。
您必须根据自己的需要来选择或配置服务解决方案的大小,因为您可能无法控制磁盘、I/O、CPU 或 RAM 的可用性。
确定需求的惟一途径就是通过测试。在计算结果上再增加 25% 或更高,以便为使用率最高和最复杂的情况留出余地。
基于(虚拟)机器的云部署
尽管云环境完全基于机器或虚拟机风格的部署,Hadoop 在虚拟环境中的安装方式与在物理机器上极为相似。您可以对可配置参数的范围进行配置,而这些参数会改变您针对集群部署的选择。
每个节点的配置尤其需要认真考虑,包括 CPU、RAM、磁盘容量和磁盘 I/O 速度。尽管优秀的 Hadoop 集群部署可以隐藏节点之间的镜像差异,但在需要标准支持和提高速度与运算能力时,了解配置可以帮助您调整部署的规模。
和所有基于云的系统或安装部署一样,配置取决于以下因素:
CPU
精确的 CPU 计算或任意单元。除非部署的是基于 YARN 的解决方案,否则应考虑为集群内所有的数据与处理节点部署完全相同的配置。这种方法让计算所需的集群规模与容量变得更轻松。针对基于 YARN 的部署,可以将集群内不同节点配置为支持和处理不同级别的 CPU 容量。例如,这种方法可以使用指定项目的特定高性能 CPU 节点组来扩展现有集群。
RAM
大数据培训越来越火,大数据产业蓬勃发展。所有节点都至少应该拥有 4GB 空间,但此空间的大小可能会受到实际可用空间的限制。此外还要记住,一定要留出一些空间用于文件缓存,这样可以提高性能。有些解决方案(如 HBase)可以使用额外的内存。
存储器容量
确保对操作系统和 Hadoop 存储使用了单独的卷,这种实践可以提高性能并让扩展 HDFS 存储变得更简单。在缩放集群大小之前,应估计要使用的存储容量,并标准化指定的大小。这种方法可确保在整个集群上实现最大程度的平均分布。
磁盘 I/O
HDFS 环境应该限制磁盘 I/O 的暴露,因为所有工作都分布在集群上。然而在没有必要的情况下,不要将磁盘 I/O 限制到节点无法有效访问和处理数据的程度。在众多云环境中,基准或最低的磁盘 I/O 配置可能过低,甚至降低了总体性能。更糟糕的是,如果无法确保磁盘 I/O 速率位于某个特定水平上,那么在处理任务的过程中,可能会遭遇性能下降。
网络 I/O
Hadoop 需要进行大量的网络 I/O 才能完成操作;除了原始写入之外,每个文件都至少被复制两次,而且 MapReduce 操作期间使用的数据都必须采用类似的方式通过网络进行传输。在众多云环境中,网络性能是受限的,这可能成为部署中的一个限制因素。
混合型云部署
在一些混合型云部署中,有些元素是固定的,而其他元素是可变的。在这种情况下,您可以在某些限制下定义特定的机器容量,同时控制节点的总体数量。在这些 Hadoop 云部署中,选择正确的 RAM 与 CPU 组合,然后调整集群,使之满足这种配置。
扩展与收缩 Hadoop 集群
云环境最吸引人的方面之一就是能够扩展和收缩 Hadoop 集群的规模,使之满足将要提交的任务对于负载与存储的要求。在以基于服务架构为基础的云环境中,扩展与收缩通常是通过云服务的控制部分进行管理的。
扩展集群通常很容易,因为通过给现有配置增加更多节点,就可以更加轻松地使用额外的资源。收缩集群困难一些,有可能会导致性能受损和任务中断。
根据您选择的云环境,用于增加或减少 Hadoop 集群规模的具体方法也会有所不同。基于服务的云环境有一些内置的伸缩功能。基于虚拟机的单元需要在集群内进行部署、安装软件和授权。
使用有弹性的 Hadoop 集群
大数据培训越来越火,大数据产业蓬勃发展。真正有弹性的 Hadoop 集群需要大量的工作与管理。即便是启动云服务,大量增加节点,稍后再删除它们,实际的数据增加与管理工作也会很复杂。
大问题在于,对于要以最高效率处理问题的集群而言,真正需要做的是将数据与工作负载分布到集群上。
此外,还要考虑这些处理所花费的时间。甚至在最理想的情况下,启动每个节点并让它们开始处理工作的过程需要花费 5 到 10 分钟。
收缩规模一直是更为复杂的问题,因为必须避免可能保存同一数据块的所有副本的节点停止运行。为了缩小集群的规模,必须首先执行再次平衡,确定数据被正确存储,而且数据副本分布在余下的节点上,如果需要再次缩小规模,只需重复以上过程即可。
光环大数据科技提供大数据培训,行业独家领先的课程,高薪就业不是梦!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!