这是我在几个QQ群发起的Hadoop每日一讨论小活动,每天中午2点左右发出一个关于Hadoop的知识片段,在此做一个整理。

【每日一讨论】之计算框架(2013-5-21)

就计算框架而言,Hadoop目前比较成熟的只有离线计算框架MapReduce(通常运行时间在1min以上),以及构建在MapReduce之上支持sql的Hive。随着发展,实时计算(通常运行时间在0~5s)有了需求,于是诞生了仿照Google dremel实现的Apache Drill和Cloduera impala,Twitter的Storm和Yahoo!的S4,以及通过优化MapReduce实现的spark,和构建在spark之上支持sql的shark,但是,这些开源系统目前为止尚不稳定,尽管Impala前几天发布了1.0版本,但仍存在很多问题,这些系统中,已经开始投入使用的是Storm(至少淘宝在大规模使用)。

【每日一讨论】之下一代Hadoop(2013-5-22)

下一代Hadoop主要由分布式文件系统HDFS和资源管理系统YARN组成,其中HDFS支持多个NameNode水平扩展和HA,也被称为“HDFS Federation”;YARN是在第一代MapReduce演化而来的,它是一个资源管理系统,之上可以运行多种计算框架,包括MapReduce、Storm、Spark、Tez等,带来的好处包括更好的扩展性、支持多种计算框架等,当前各种计算框架正在往YARN上转移,将来,YARN将变成一个云操作系统,或者称为“轻量级弹性计算平台”,所以计算框架将运行在YARN之上,由YARN统一管理和调度。

【每日一讨论】之下一代Hadoop带来的好处(2013-5-23)

昨天谈到,下一代Hadoop由HDFS Federation和YARN组成,今天重点说一下YARN。YARN是一个资源统一管理系统,相比与MRv1,带来的好处包括:更好的扩展性、可用性、支持多种计算框架等,前两个特性,很多中小公司用不到,毕竟集群规模不大,仅使用MRv1也不会遇到扩展性和可用性的问题,重点说一下第三个特性,MRv1仅支持MapReduce一种离线计算框架,应用场景非常有限。而YARN则不同,它是一个轻量级弹性计算平台,很多新型计算框架只能运行在YARN上(不能独立运行),比如DAG计算框架Tez、实时计算框架Spark(也可运行在另一种资源管理系统Mesos之上),即使现有的计算框架,比如MapReduce(已经支持)、Storm、MPI,也正在转移到YARN上运行。关于YARN的学习,可参考:http://955.cc/dHM2。

【每日一讨论】之MapReduce Shuffle优化方法(2013-5-24)

MapReduce的性能瓶颈之一在于Shuffle阶段,Shuffle阶段采用了C/S模型,Reduce Task作为Client端从各个Map Task所在节点上(装有一个Http Server)拉取数据。因此,shuffle优化优化可分为两个方面,一是对Server端优化,通常用Netty代替Jetty(1.0中采用)作为Http Server,以提高并发性能;二是Client端优化,常用方法是将Shuffle从Reduce Task中独立出来,让其不再占用槽位,这样可交错使用IO和CPU,进而提高资源利用率。关于Shuffle阶段的详细过程分析可参考最新Hadoop内幕书籍《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》(http://hadoop123.com/)中的第8.4节“Reduce Task内部实现 ”和8.5节”Map/Reduce Task优化“。

【每日一讨论】之Hadoop 1.0与Hadoop 2.0(2013-5-31)

Hadoop 1.0:对应版本为apache 1.x和cdh3,主要由HDFS和MapReduce构成,当前是稳定版,各大公司普遍采用这一版本;Hadoop 2.0:对应版本为apache 0.23.x,2.x和cdh4,主要由HDFS、MapReduce和YARN构成,其中HDFS解决了HA,YARN支持多种计算框架,目前尚不稳定,只发布了alpha版本,预计一年左右会出现稳定版(目前是alpha版,过段时间belta版,最后是稳定版),目前只有很少的公司尝试性使用或者测试用。如果想学习或使用Hadoop,推荐使用最新版本的1.1.x版本或者cdh3u6,这两个版本属于不同发行版(不同之处对比可阅读:http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/),但是包含的功能一致。尽管Hadoop 2.0采用了新的架构,但是很多模块仍重用了1.0的,比如Map Task和Reduce Task实现,调度器实现(包括FIFO、Fair Scheduler 和Capacity Scheduler)等,对于Hadoop 1.0尚未搞透的同学,不提倡直接学习2.0,因为2.0学习难度远大于1.0. 对于Hadoop初学者,一定要多动手实践,如果不知如何开始,那就从搭建一个Hadoop集群开始吧,对于有一定基础的Hadoop学习者,如果想进一步学习Hadoop内部实现,可参考最新Hadoop畅销书籍《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》(前三章试读已经放到群共享里了。该书链接:http://955.cc/dYzX)

【每日一讨论】之如何规划属于自己的Hadoop发展道路(2013-6-3)

这次仅是我个人片面之词,供Hadoop初学者和迷茫着借鉴。通常而言,选择Hadoop作为自己未来的方向,可有两个选择方向:Hadoop应用程序开发和Hadoop内核优化,前面侧重于Hadoop之上的应用,比如利用Hadoop进行数据分析,推荐和数据挖掘算法的开发等,后者侧重Hadoop系统本身,通常根据实际遇到的问题开发一些新特性或者修复Hadoop bug等,当然也会为应用开发者提供技术指导。不管选择哪一个方向,都需要从Hadoop基础学习,而Hadoop是一个实践性很强的技术,因此必须多实践,如果你还不知道从何学起,那么就先从搭建一个Hadoop集群开始吧,然后使用它,玩弄它,感受它,之后可以尝试编写MapReduce程序,阅读一些入门书籍,比如Hadoop权威指南等,学习过程中,一定要多实践多交流,努力给自己创造一个良好的Hadoop学习氛围。如果你已经入门了,不管是Hadoop应用开发还是Hadoop内核开发,都要努力了解Hadoop内部实现原理(技术内幕)。

【每日一讨论】之Hadoop 2.0离稳定到底还有多远?(2013-6-6)

Hadoop 2.0(对应版本为apache 0.23.x,2.x和cdh4)是下一代Hadoop,采用了全新的架构和软件设计,目前apache官方仍处于alpha版,而cloudera早就发布了cdh4系列,并声称是稳定版,可以线上使用。实际上,cdh4的所有代码和补丁来自apache官方,只不过是提前将一些补丁打入自己的版本,但它并没有经过严格的测试,cloudera声称cdh4稳定是不太可靠的,毕竟apache版本才处于alpha版(而apache每次发布版本时,都会说明在多少节点的线上集群上得到试用)。究其原因,可能是Hadoop发行版之间竞争过于激烈,都想第一时间抢夺市场导致的。据Hadoop负责人介绍(http://955.cc/evdX),hadoop 2.0 beta版将在2个月后发布,而稳定版将在3个月后发布,按照软件总是延期的理论,我们可以乐观推测6个月后,也就是年底,2.0版本可以稳定,届时可以在线上环境中使用。

【每日一讨论】之常见开源系统的问题域(2013-6-7)

在Hadoop生态系统或者周边开源系统中,存在大量的数据计算相关的系统,包括MapReduce、Hive、Pig、Impala、Storm、Spark等,它们之间到底什么关系,是替代还是互补呢?个人认为,这些系统共同构建了一个良好的生态系统,他们各有自己对应的问题域,互补解决各类问题。根据Cloudera对系统的划分,按照时间指标可分为四个种类,划分标准与对应的系统分别是(1)实时应用场景(0~5s):Storm、S4、Cloudera Impala,Apache Drill等;(2)交互式场景(5s~1m):这种场景通常能要求必须支持SQL,则可行系统有:Cloudera Impala、Apache Drill、Shark等;(3)非交互式场景(1m~1h):通常运行时间较长,处理数据量较大,对容错性和扩展性要求较高,可行系统有:MapReduce、Hive、Pig、Stinger等;(4)批处理场景(1h+):通常运行时间很长,处理数据量很大,对容错性和扩展性要求很高,可行系统有:MapReduce、Hive、Pig、Stinger等。

【每日一讨论】几个学习Hadoop必须知道的资料(2013-6-8)

今天给大家介绍几个学习Hadoop必须知道的资料,这些资料大部分是英文的。(1)博客:cloudera和hortonworks的官方博客,从这两个博客里,你可以了解最新的Hadoop动态,博客地址:http://blog.cloudera.com/blog/和http://hortonworks.com/blog/(也可以参考我的博客:http://dongxicheng.org/ ) ,(2)Hadoop书籍:入门级《Hadoop权威指南 》和《Hadoop实战》(外国人写的那本,有中文翻译版),进阶的是《Hadoop技术内幕》书籍。(3)Hadoop源代码下载地址,Apache下载:http://hadoop.apache.org/releases.html(仅包含最新的alpha版、beta版和稳定版下载包 )、Hadoop SVN:http://svn.apache.org/repos/asf/hadoop/common/branches/(包含Apache 各个版本,可直接导入eclipse),CDH版本下载:http://archive.cloudera.com/cdh/3/(CDH3系列) 和http://archive.cloudera.com/cdh4/cdh/4/(CDH4系列), (4)Hadoop jira(Hadoop项目管理工具,可下载各种patch,跟踪每个问题的解决思路和进展,也可以自己提交问题和patch):https://issues.apache.org/jira/browse/YARN,https://issues.apache.org/jira/browse/HDFS。

【每日一讨论】认识Hadoop jira的重要性(2013-6-13)

很多人没有意识到Hadoop jira(Hadoop项目管理工具)的作用,jira的作用非常的不可小觑,首先,每次Hadoop版本发行的时候,在release文件(比如http://hadoop.apache.org/docs/r2.0.5-alpha/hadoop-project-dist/hadoop-common/releasenotes.html)中,会注明增加的特性或者修复的bug,里面每条会带一个 jira链接,你如果对哪个特性感兴趣,可以查看或者打补丁(jira链接里有补丁) ,其次,每个jira链接记录了每个特性的来龙去脉,你可以了解这个问题是怎么产生的,怎么解决的,整个过程,尽管不是直接的研发人员,但是你可以清楚的了解到,比如HADOOP-7206记录了如何将google的snappy压缩算法集成到Hadoop中,链接是https://issues.apache.org/jira/browse/HADOOP-7206。在我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》中引用了大量的jira链接(这些都是最重要的jira链接,经过我筛选的,节省了大家很多时间),全部在最后的附录中罗列出来了,有兴趣的可以阅读每个jira链接。最后,尽管我们大部分人无法参与Hadoop源代码的编写,但是可以参与讨论每个特性,你可以在jira网站(https://issues.apache.org/jira/)上 注册一个账号,并点击你感兴趣jira页面中的watch按钮,这样,该jira链接中有任何改动,均会发到你的邮箱,你可以参与讨论,甚至贡献patch。总之,学会利用Hadoop jira是一个Hadoop程序员必备的能力之一。

【每日一讨论】计算框架之上的SQL引擎(2013-6-14)

当前开源届有很多计算框架,包括MapReduce、Tez、Storm、Spark等,你可以直接在这些计算框架上编写应用程序(低效、难度较大),也可以通过结构化或者脚本语言(简单,易于上手)解决一些大数据问题。我们重点谈一下后一种。MapReduce之上的SQL引擎是Hive和Pig(Pig是一种脚本语言,功能比SQL更强大);Tez正在发展中,将来也会用于Hive上,该新系统被命名为Stinger;Spark之上的SQL引擎为Shark;Storm目前没有可用的开源SQL引擎,阿里巴巴内部实现了一个,但是不支持开源版本。还有其他两种系统,对SQL有非常迫切要求,第一个是HBase,目前开源届没有支持SQL的版本,但是有商业公司已经做出来了;第二个是Impala这种类google dremel的系统,这种系统是传统数据库与HDFS的杂种,它几乎支持所有传统数据库的SQL语法,而其他系统,包括Hive、Shark、SQL-On-HBase等则只支持ANSI-92 SQL语法的一个子集,这主要是由于大数据时代特殊的计算模型和扩展性、容错性要求导致的,比如Hive只支持查询语句,不支持修改和删除,而SQL-On-HBase则支持各种语句,但是仅能有限的支持,尤其是Join难以支持。对于以上知识,传统公司(采用传统数据库存储和解决问题的公司)向Hadoop解决方案转型时,应当十分注意。

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoope-every-day/

Hadoop每日一讨论整理版相关推荐

  1. numeric比较大小 数据库_数据库基础知识个人整理版-强烈推荐

    <数据库基础知识个人整理版-强烈推荐>由会员分享,可在线阅读,更多相关<数据库基础知识个人整理版-强烈推荐(20页珍藏版)>请在人人文库网上搜索. 1.数据库知识要点总结第一章 ...

  2. 老男孩51CTO博客博文列表整理版20170620更新

    老男孩51CTO博客博文列表整理版 (本文原自于一道考试题http://oldboy.blog.51cto.com/2561410/1860985) 老男孩教育运维脱产班35期  刘同学 2017-0 ...

  3. 央视《家有妙招》整理版,共125招,值得永远收藏

    原文地址为: 央视<家有妙招>整理版,共125招,值得永远收藏 1.不用水,毛绒玩具巧清洁 方法:将半碗大粒盐(即粗盐,超市有售,2元一袋)和脏了的毛绒玩具一起放入一个塑料袋,系口,用力摇 ...

  4. hadoop权威指南第三版 发布说明

    (此文摘自http://hadoopbook.com) hadoop权威指南第三版发行说明: 第三版会在2012年5月发行.你现在可以预定一份电子版,或购买"Early Release&qu ...

  5. 超市服务器的维护和管理制度,社区生鲜超市管理制度整理版.doc

    社区生鲜超市管理制度整理版.doc PAGE 社区生鲜超市管理制度 篇一:超市店面管理制度 一 1. 具备生鲜商品知识,品规要求. 2.具备生鲜工作技能,精肉分割.熟食制作.蔬果保鲜 及陈列技术. 3 ...

  6. 李宏毅深度学习笔记——呕心整理版

    李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...

  7. Hadoop之MapReduce介绍整理

    Hadoop之MapReduce介绍整理 什么是批处理 ​ 在了解MapReduce之前,需要了解批处理的概念,批处理模式是一种最早进行大规模数据处理的模式.批处理主要操作大规模静态数据集,并在整体数 ...

  8. 转载:CDH6.2离线安装(整理版)

    引用地址:https://www.cnblogs.com/swordfall/p/10816797.html CDH6.2离线安装(整理版) 1.概述 CDH,全称Cloudera's Distrib ...

  9. TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理

    TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理 TVM/Relay 的图形分区功能.以下简单示例,错误信息. PartitionGraph() 函数指定图形是用带有 ...

最新文章

  1. 暖通专业标准规范大全_中高级职称专业分类改革 机械类十大热门专业分享
  2. 关于linux特殊重定向的理解
  3. golang的定时器NewTimer、NewTicker使用
  4. ALV动态列Demo
  5. System.setProperty()
  6. antd vue 树更新数据后不展开_很全面的vue面试题总结
  7. mongodb最详细的安装与配置
  8. .NetCore中三种注入方式的思考
  9. java的super_Java中的Super()
  10. PHP学习之二:变量
  11. matlab iir滤波器设计 实验报告,IIR数字滤波器的设计实验报告
  12. 人事面试100问题--巧妙应答
  13. 英语口译笔记法实战指导 吴钟明 pdf_三口过关,名师指导备考干货帖(内附口译笔记讲解)...
  14. LM2596电源降压调整器(150KHZ 3A)原理图中文版
  15. ACM 6174问题Java解决
  16. 2012年的Android之旅:梦想、学习、坚持、自信、淡定
  17. PMP工作绩效数据、信息和报告三者的区别
  18. python工程师认证证书报考条件_Python工程师需要具备什么条件
  19. 2015 Syrian Private Universities Collegiate Programming Contest 题解
  20. linux怎么查看证书库,curl --resolve 查看证书情况

热门文章

  1. MapReduce示例——WordCount(统计单词)
  2. @springbootapplication 注解_Spring Boot最核心的27个干货注解,你了解多少?
  3. 实战并发编程 - 09多线程Guarded Suspension模式案例实战
  4. 白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索
  5. Python-爬取自己博客文章的URL
  6. linux源码编译rpm,Linux的RPM和源码包(CentOS)
  7. oppo如何更新计算机,OPPO R17Pro手机怎么升级和降级系统?
  8. animiz动画制作软件_实用动画制作软件分享——万彩动画大师
  9. 电磁悬浮控制系统仿真设计
  10. 2021-05-20 Matlab实现傅里叶变换