`
- 浏览:
26705 次
- 性别:
- 来自:
深圳
-
下一代 Hadoop YARN 简介
(1) 更快地MapReduce计算
MapReduce仍是当前使用最广泛的计算框架。YARN利用异步模型对MapReduce框架的一些关键逻辑结构(如JobInprogress、TaskInProgress等)进行了重写,相比于MRv1,具有更快地计算速度。当然,YARN具有向后兼容性,用户在MRv1上运行的作业,无需任何修改即可运行在YARN之上。
(2) 对多框架支持
与MRv1相比,YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上,由YARN进行统一管理和资源分配,由于将现有框架移植到YARN之上需要一定的工作量,当前YARN仅可运行MapReduce这种离线计算框架。
我们知道,不存在一种统一的计算框架适合所有应用场景,也就是说,如果你想设计一种计算框架,可以高效地进行离线计算、在线计算、流式计算、内存计算等,是不可能的。既然没有全能的计算框架,为什么不开发一个容纳和管理各种计算框架的框架管理平台(实际上是资源管理平台)呢,而YARN正是干这件事情的东西。
YANR本质上是一个资源统一管理系统,这一点与几年前的mesos(http://www.mesosproject.org/),更早的Torque(http://www.adaptivecomputing.com/products/open-source/torque/)基本一致。将各种框架运行在YARN之上,可以实现框架的资源统一管理和分配,使他们共享一个集群,而不是“一个框架一个集群”,这可大大降低运维成本和硬件成本。
如果你还没有意识到当前已经进入多计算框架纵横捭阖的新时代,那让我来给你细数一下当前出现的,已小有名气的计算框架吧:
1) MapReduce: 这个框架人人皆知,它是一种离线计算框架,将一个算法抽象成Map和Reduce两个阶段进行处理,非常适合数据密集型计算。
2) Spark: 我们知道,MapReduce计算框架不适合(不是不能做,是不适合,效率太低)迭代计算(常见于machine learning领域,比如PageRank)和交互式计算(data mining领域,比如SQL查询),MapReduce是一种磁盘计算框架,而Spark则是一种内存计算框架,它将数据尽可能放到内存中以提高迭代应用和交互式应用的计算效率。官方首页:http://spark-project.org/
3) Storm: MapReduce也不适合进行流式计算、实时分析,比如广告点击计算等,而Storm则更擅长这种计算、它在实时性要远远好于MapReduce计算框架。官方首页:http://storm-project.net/
4) S4: Yahoo开发的流式计算框架,与Storm较为类似。官方首页:http://incubator.apache.org/s4/
5) Open MPI: 非常经典的消息处理框架,非常适合高性能计算,现在仍被广泛使用。
6) HAMA: 基于BSP(bulk-synchronous parallel model)模型的分布式计算框架,与Google的Pregel类似,可用于大规模科学计算,如矩阵,图算法,网络算法等,官方首页:http://hama.apache.org/。
7) Cloudera Impala/ Apache Drill: 基于Hadoop的更快的SQL查询引擎(比Hive快得多),Google Dremel的模仿者。Cloudera Impala官方首页:https://github.com/cloudera/impala,Apache Drill官方首页:http://incubator.apache.org/drill/
8) Giraph:图算法处理框架,采用BSP模型,可用于计算pagerank,shared connections, personalization-based popularity等迭代类算法。官方首页:http://giraph.apache.org/
上面很多框架正在或正准备往YARN上迁移,具体见:http://wiki.apache.org/hadoop/PoweredByYarn/
(3) 框架升级更容易
在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上(比如MapReduce框架,不再需要部署JobTracler、TaskTracker等服务),而是被封装成一个用户程序库(lib)存放在客户端,当需要对计算框架进行升级时,只需升级用户程序库即可,多么容易!
总结
YARN是在Hadoop 1.0基础上衍化而来的,它具有比Hadoop 1.0更为先进的理念和思想,它充分吸取了Hadoop 1.0的优势,但同时增加了很多新的特性和改进点。即使你不使用YARN,研究YARN对于改进你们当前Hadoop版本仍有巨大的帮助。
需要说明的是,由于YARN是一个崭新的系统,它完全不同于Hadoop 1.0。对于一般公司而言,将旧Hadoop系统往YARN上移植将是一件十分困难的事情,因为不同公司对YARN进行了或多或少的改造,这些改造或许已经不再兼容于主流的Hadoop版本。当向YARN升级时,你需要对兼容性进行充分的测试,以确保当前运行的作业仍可以正常地运行在移植后的系统上。 另外,需要引起注意的是,YARN会给运维人员带来巨大的麻烦,毕竟它是一个新系统。
当然,当前YARN还不成熟,仍处于高速酝酿阶段,讨论如何在线上使用它仍为时过早。不过,开始研究和学习它,作为一名有进取心和前瞻眼光的hadoopor,仍是十分必要的。
杂谈分布式计算
在Hadoop、S4、Strom如此火的今天,不关注下分布式计算还真有点out了。分布式计算,一般来说会非常两大类:离线计算和在线实时计算。离线计算的理论基础是Map Reduce模型,典型开源代表就是hadoop了。在线实时计算方面这两年开始成为关注的重点,目前相对比较成熟的有雅虎的s4和twitter的storm。
在分布式计算框架方面,目前开源中做的比较好的是facebook和twitter,其中可以重点关注下facebook的这篇文章Real-time Analytics at Facebook。通过这里也可以看出一个比较好的分布式计算框架有三个部分:分布式日志采集系统、离线计算框架、在线实时计算框架。本文也从三个方面来谈。
分布式日志采集方面,目前facebook和twitter都是采用开源的scribe。对于大部分公司来说,直接基于scribe做一些优化基本上能够满足需要了。该系统的基本原理是:在日志采集源的地方部署对应的scribe客户端,然后把日志或者其他数据通过网络传输到scribe服务中转机器上,最后通过相应的agent写入到hdfs离线存储或者直接对应在线计算的输入流。
离线计算框架方面,目前基本上都是基于hadoop,然后在上游加入hive、pig做一些更加人性化或者通用化的工作,基本上能够满足所有的离线计算需求。关于hadoop,推荐入门文章《Hadoop:你不得不了解的大数据工具》。
在实时计算方面,有一些比较折中的做法,比如说facebook的ptail、puma等等。也有一些比较系统化的方案,比如twitter的storm、雅虎的s4等等。storm资料方面,推荐中文翻译的wiki库、Twitter Storm 实时数据处理框架分析总结、淘宝的一些文章(据说目前淘宝已经在生产环境使用)。关于s4方面,感兴趣的可以看看Yahoo!S4分布式流处理引擎分析总结、Yahoo! s4和Twitter storm的粗略比较
目前总体来说,最有挑战最不成熟也最有需求的还是在线实时计算方面。
http://dongxicheng.org/mapreduce-nextgen/resourcemanager-code-details/
http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/
http://dongxicheng.org/mapreduce-nextgen/use-hadoop-yarn-to-build-a-cloud-system/
http://dongxicheng.org/mapreduce-nextgen/mesos_vs_yarn/
Impala
Impala入门笔记 : http://tech.uc.cn/?p=817
Impala/Hive现状分析与前景展望 : http://yanbohappy.sinaapp.com/?p=220 ;
大数据提速:Impala能否取代Hive: http://developer.51cto.com/art/201211/364219.htm
浅谈SQL on Hadoop系统 : http://www.weibo.com/cloudv8?is_ori=1
项目地址:https://github.com/cloudera/impala
hawq
左手Hive右手Impala :
http://cloud.chinabyte.com/news/99/12558599.shtml
hbase
http://www.searchtb.com/2011/01/understanding-hbase.html
hbase 0.95 最新官版hbase 0.95 最新官版
http://abloz.com/2012/05/30/hbase-0-95-chinese-version-of-the-official-document.html ;
hive
http://blog.didu.me/article/518
http://wenku.baidu.com/view/28609b80bceb19e8b8f6bab8.html
http://m.oschina.net/blog/81771
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
为了克服这些限制,Hadoop社区推出了下一代计算平台——YARN。YARN的设计旨在解耦编程模型与资源管理基础设施,同时将许多调度功能(如任务容错)委托给应用程序级别的组件来实现。这一新的架构不仅提高了资源利用...
这些问题限制了Hadoop在多种计算场景下的使用。 为了解决这些问题,Hadoop 2.0版本引入了一种新的资源管理系统YARN,即MRv2。YARN是一种通用的资源调度体系,它支持多种计算框架(如MapReduce、Spark、Storm等),...
### Hadoop 2.0:从YARN到下一代大数据处理平台 #### 1. Hadoop 2.0:新时代的大数据处理平台 Hadoop 2.0是Apache Hadoop的一个重要版本,它标志着Hadoop从单一的MapReduce计算框架转变为一个更加通用、可扩展和...
YARN,全称为Yet Another Resource Negotiator,是Apache Hadoop项目自0.23.0版本引入的新一代资源管理框架,旨在解决原Hadoop MapReduce框架的诸多问题,提高可扩展性、资源利用率和整体性能。YARN将MapReduce的...
下一代MapReduce: Yarn9. HDFS简介10. HDFS文件结构11. Hive详解12. HBase详解13. Mahout简介14. Pig详解15. ZooKeeper详解16. Avro详解17. Chukwa详解18. Hadoop的常用插件与开发19. Hadoop在yahoo的应用附录A: ...
此外,Hadoop还支持Spark、Flink等新一代计算框架,提供了更高效的实时处理能力。例如,用户可以通过编写Java、Python或Scala程序,利用Hadoop API实现数据清洗、分析和挖掘。 不仅如此,Hadoop 2.6.4还支持HBase...
3. **配置Hadoop**:修改`etc/hadoop`目录下的配置文件,如`hadoop-env.sh`、`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`,设置Hadoop的相关参数,如HDFS的命名节点、数据节点路径等。 4. **格式化...
YARN是Hadoop的下一代资源管理系统,取代了最初的JobTracker。YARN的主要目标是分离资源管理和作业调度,提高系统利用率和灵活性。配置YARN包括: 1. 修改`yarn-site.xml`配置文件,设置ResourceManager和...
14. YARN(Yet Another Resource Negotiator)是Hadoop的下一代资源管理系统,它分离了资源管理和作业调度,提高了集群的资源利用率和灵活性。 这些知识点构成了Hadoop基础知识的骨架,理解和掌握它们对于理解和...
- **yarn-site.xml**:YARN是Hadoop的新一代资源管理系统,需要对其进行配置。 ##### 4. 启动Hadoop 启动Hadoop通常需要执行如下命令: - `bin/hdfs namenode -format`:格式化HDFS。 - `sbin/start-dfs.sh`:...
5. **YARN**:下一代资源管理系统,负责集群资源的管理和调度,取代了原来的JobTracker,提高了系统的灵活性和资源利用率。 6. **Hadoop安装与配置**:详述在不同操作系统上安装Hadoop的步骤,包括单机模式、伪...
在云技术的推动下,Hadoop也进入了云端,如Amazon EMR(Elastic MapReduce)、Microsoft Azure HDInsight等云服务提供了托管的Hadoop集群,让用户无需自建硬件就能享受大数据处理的便利。此外,Hadoop与Spark等新...
Hadoop作为开源分布式系统基础架构,由Apache基金会开发,允许用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。它解决了大数据存储和处理的问题,尤其适合处理非结构化...
此外,书中还讨论了Hadoop的下一代MapReduce框架——Spark,它提供了更高效的内存计算,增强了交互式数据分析的能力。 除了基本概念和架构,本书还深入探讨了Hadoop的安装、配置、管理和优化技巧,这对于实际操作...
2. 使用`start-yarn.cmd`启动YARN(Yet Another Resource Negotiator),这是MapReduce的下一代资源管理器。 3. 使用`hadoop fs -mkdir /user/<username>`创建一个HDFS上的用户目录,以便存放数据和输出结果。 至此...
下一代MapReduce: Yarn9. HDFS简介10. HDFS文件结构11. Hive详解12. HBase详解13. Mahout简介14. Pig详解15. ZooKeeper详解16. Avro详解17. Chukwa详解18. Hadoop的常用插件与开发19. Hadoop在yahoo的应用附录A: ...
4. **YARN资源管理**:了解下一代JobTracker——YARN(Yet Another Resource Negotiator),它的主要任务是资源调度和作业监控,确保高效利用集群资源。 5. **Hadoop生态系统的扩展组件**:熟悉Pig、Hive、Spark、...
6. **YARN**:下一代资源管理系统YARN(Yet Another Resource Negotiator)引入,以解决原版MapReduce的局限性,提供更好的资源管理和调度能力,支持更多种类的应用。 7. **Hadoop优化**:包括硬件选择、数据分布...
3. **YARN**:YARN 是 Hadoop 的下一代资源调度器,它分离了资源管理和应用程序管理。学习 Resource Manager、Application Master 和 Node Manager 如何协同工作。 4. **Hadoop 安装与配置**:学习如何搭建 Hadoop ...
Hadoop的生态还包括其他组件,比如YARN(Yet Another Resource Negotiator),它是新一代Hadoop资源管理器,负责资源管理和任务调度;HDFS(Hadoop Distributed File System)是一个高吞吐量的分布式文件系统,用于...