云上运行 Hadoop 会面临哪些挑战

简介:

在云上运行Hadoop,很多人担心性能。因为一提到虚拟化就会有人想到有成本,往往得出有偏见的结论-在云上运行肯定比物理机器上运行性能差。如果单独把10台物理机虚拟化跑Hadoop,这肯定是有部分性能的开销的。但是如果在公共云上,情况就不是这样了。因为公共云虚拟化的开销最终是由平台方来承担的,其一是平台方采购机器有规模优势,其二平台方可以在保证虚拟机性能的情况超卖部分资源。

平台卖给用户8core32g的虚拟机就保证有这个规格的能力的。结合云上的弹性优势,企业的总体成本是会下降的。

在云上运行Hadoop对平台方还是面临一些挑战的,下面主要讲述这些挑战及平台方怎么解决的。

云上Hadoop的挑战-Shuffle

Shuffle分为Push模式,Pull模式。Push模式就是直接通过网络发送到下一个节点,比如:storm、flink。Pull模式就是数据先存储在本地,再启动下一个节点拉取数据,比如:Hadoop MR、Spark。

在push模式下,主要瓶颈点是网络。在一般的云环境中,网络跟线下没有太多的区别,可以满足需求。

在pull模式下,主要瓶颈点是磁盘。在云环境中,会提供本地磁盘或者用SDD加速的方案。如下:

另外:

根据spark社区的报告,在机器学习等很多场景下,瓶颈点现在是CPU了

云上Hadoop的挑战-数据本地化

数据本地化含义是分析时,把计算移动到数据节点的。如果计算存储分离,则存在数据放在OSS中,需要从OSS远程拉取数据。一般情况下,认为这样会有性能问题。

当前,网络的带宽发展非常快:

从09年到16年对比,大约带宽提升100倍左右,让大家影响深刻的是家庭带宽从4Mbps到了100Mbps了,4G也流行起来了,笔者现在基本不在电脑上存放电影,直接在线看的。现在很多机房在做100Gbps点到点的带宽。磁盘本身并没有太大的吞吐量的提升。还可以采取压缩算法把存储量减少。在 ETL场景下,往往只需要晚上运行数个小时,对性能本身不是太敏感;机器学习场景需要内存缓存数据;流式计算本身数据在移动的。

整体来讲,会随着带宽的增加、业务场景的实时化、多元化,数据本地化不是必须的。

云上Hadoop的挑战-自动化运维

作业的管理、任务编排、监控、报警这些基本功能都还好。Hadoop本身非常复杂,如果Hadoop本身出现点什么问题,则会影响作业的运行。

这些问题包括但是不仅限于:

  • Master挂
  • 各种日志清理等
  • 节点挂掉,自动补回
  • Datanode掉线处理
  • NodeManager掉线处理
  • Job运行监控报警
  • 负载过高监控报警
  • 节点数据均衡
  • 单节点扩容
  • 版本自动升级
  • 重要数据备份
  • Hbase等指标监控报警
  • Storm等指标监控报警

我们需要自动化诊断这些问题并在用户、平台的共同参与下把这些问题解决。

云上Hadoop的挑战-专家建议

是否需要扩容

Hive SQL,可以给SQL评分,给出最优写法

分析存储,比如:指明是否需要压缩;小文件是否过多,是否需要合并;访问记录分析,是否可以把冷数据归档处理

分析运行时各种JOB统计信息,如:Job的map时间是否过小,运行时reduce是否数据倾斜,单个job是否有一些参数调整

这个主要是针对存储、作业调优的,优化性能之类的。在一般企业内部是没有这套系统的。云上可以做成一套这样的系统,帮助广大的中小企业


本文作者:阿里封神

来源:51CTO

相关文章
|
5月前
|
数据采集 分布式计算 监控
Hadoop集群长时间运行数据倾斜原因
【6月更文挑战第20天】
54 6
|
5月前
|
分布式计算 监控 网络协议
Hadoop集群长时间运行网络延迟原因
【6月更文挑战第20天】
140 2
|
1月前
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
41 3
|
3月前
|
存储 分布式计算 算法
探索Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式
在配置Hadoop集群之前,了解这三种模式的特点、适用场景和配置差异是非常重要的。这有助于用户根据个人需求和资源情况,选择最适合自己的Hadoop运行模式。在最初的学习和开发阶段,单机模式和伪分布式模式能为用户提供便利和成本效益。进而,当用户要处理大规模数据集时,完全分布式模式将是理想的选择。
184 2
|
3月前
|
分布式计算 Hadoop Java
Hadoop_MapReduce中的WordCount运行详解
MapReduce的WordCount程序在分布式系统中计算大数据集中单词出现的频率时,提供了一个可以复用和可伸缩的解决方案。它体现了MapReduce编程模型的强大之处:简单、可靠且将任务自动分布到一个集群中去执行。它首先运行一系列的Map任务来处理原始数据,然后通过Shuffle和Sort机制来组织结果,最后通过运行Reduce任务来完成最终计算。因此,即便数据量非常大,通过该模型也可以高效地进行处理。
94 1
|
3月前
|
存储 分布式计算 Hadoop
Hadoop 运行的三种模式
【8月更文挑战第31天】
340 0
|
4月前
|
分布式计算 资源调度 监控
Hadoop中运行Job
【7月更文挑战第10天】
51 2
|
5月前
|
存储 缓存 分布式计算
|
5月前
|
存储 分布式计算 负载均衡
Hadoop集群长时间运行
【6月更文挑战第19天】
53 3
|
5月前
|
分布式计算 Hadoop Java
运行Hadoop自带的wordcount单词统计程序
运行Hadoop自带的wordcount单词统计程序
134 3