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

在云上运行Hadoop,很多人担心性能。因为一提到虚拟化就会有人想到有成本,往往得出有偏见的结论-在云上运行肯定比物理机器上运行性能差。确实,在云上运行Hadoop对平台方还是面临一些挑战的,下面主要讲述这些挑战及平台方怎么解决的。

作者:阿里封神来源:云栖博客|2016-06-02 14:15 收藏 分享

前言

在云上运行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是否有一些参数调整

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

本文转自d1net(转载)

时间: 2024-09-10 22:54:56

云上运行 Hadoop 会面临哪些挑战的相关文章

ParallelX助力在GPU上运行Hadoop任务

文章讲的是ParallelX助力在GPU上运行Hadoop任务,在面对大规模计算密集型算法时,MapReduce范式的表现并不总是很理想.为了解决其瓶颈,一支小型创业团队构建了名为ParallelX的产品--它将通过利用GPU的运算能力,为Hadoop任务带来显著的提升. ParallelX的联合创始人Tony Diepenbrock表示,这是一个"GPU编译器,它能够把用户使用Java编写的代码转化为OpenCL,并在亚马逊AWS GPU云上运行".它的最终产品是一项与亚马逊Elas

云计算-我在java上运行Hadoop的例程 FindFileOnHDFS 结果报错了

问题描述 我在java上运行Hadoop的例程 FindFileOnHDFS 结果报错了 Exception in thread "main" java.lang.ClassCastException: org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.hadoop.hdfs.DistributedFileSystem at org.apache.hadoop.examples.FindFileOnHDF

hadoop集群-HADOOP集群主机上运行HADOOP相关命令回车后响应慢

问题描述 HADOOP集群主机上运行HADOOP相关命令回车后响应慢 HADOOP集群主机上运行HADOOP相关命令回车后响应慢,如集群主机上输入hivehbase shell或者hdfs dfs -ls / 回车后终端响应非常慢,至少10秒上才出来 Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.3.1-1.cdh5.3.1.p0.5/jars/hive-common-0.13.1-

在阿里云上运行ASP.NET Docker应用

微软的.NET开源后可以运行在Mac和Linux平台,也支持运行在Docker容器里.我们今天要尝试的是在Mac上开发一个.NET应用,并且把它用Docker跑起来,然后部署到阿里云容器服务上. 本文的后续文章介绍了如何访问SQLServer数据库,点击[在Docker中运行SQLServer ASP.NET应用].(https://yq.aliyun.com/articles/60857) 在Mac上安装.NET Core 按照微软的官方文档,我们可以非常容易地在Mac上安装.NET Core

【Hadoop Summit Tokyo 2016】操纵云上基于Hadoop 集群的YARN

本讲义出自Abhishek Modi在Hadoop Summit Tokyo 2016上的演讲,主要介绍了Qubole的Hadoop技术.Qubole的架构设计.短生命周期的Hadoop集群的相关内容以及面对的挑战以及YARN的自动扩展和不断发展的HDFS技术.

关于在阿里云上运行的docker

问题描述 一些疑问,想发出来大家讨论下:在我的理解中如下:首先在阿里云平台(由不同的物理节点构成)-使用阿里云平台提供ESC(即租户现在使用的redhat或者其它实例)--在这个实例上再搭建docker(现在是这样子吗)?那么,是不是理解为,在物理机上的一个虚拟实例中搭建了docker?使用docker再创建了不同的container(redhat或其它来承载应用)?那么为何不是在物理机上直接docker,在docker中承载应用?即,模式一:物理机-实例-docker(container)模式

云上Hadoop之挑战

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

【Hadoop Summit Tokyo 2016】云上Hadoop——从专家的角度解释What、Why和How

本讲义出自SATO Naoki在Hadoop Summit Tokyo 2016上的演讲,主要从What.Why和How三个角度解释了在云上应该如何使用Hadoop,在Why方面,他分享了Hadoop运行在云上的好处:在What方面,主要分享了云上Hadoop的选项以及云上的Hadoop集群以及集群定制等内容:在How方面,主要分享了如何在云上部署Hadoop架构.

混合云架构分析及其面临的挑战

公共云计算曾在IT界一度风靡.2010年,在IT人士表达了对公共云安全问题的担忧后,业界的重点又转至私有云.目前,因为每个人都希望要求操作的灵活性,混合云就自然而然地进入了人们的视野. 近期进行的几次云计算调查的结果也证实了人们对混合云产生越来越大的兴趣.2010年进行的Unisys调查结果显示,21%的IT组织正关注混合云,而2010年Sand Hill集团的一份对超过500名IT管理人员所作的调查结果也表明,混合云的使用量将在未来三年内增加两倍. 混合云的架构分析 那么什么是混合云呢?对于初