推荐

好消息:我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》已经开始在各大网站销售,购书链接地址: 当当购书网址(目前有货)京东购书网址(已卖光)卓越购书网址(已卖光,链接到其他书店)淘宝天猫购买网址(目前有货,注意盗版!)。详情请查看新书官方宣传主页:http://hadoop123.com/

我的联系方式是:http://dongxicheng.org/about/

我的新浪微博是:西成懂,欢迎关注我,很多重要信息将在微博上发布,经常在微博上讨论技术。

——————————————————————————————————————————————————–

在我的技术博客中,推荐以下几个专题:

一、Hadoop-MapReduce(一个离线计算框架)

Hadoop是google分布式计算框架MapReduce与分布式存储系统GFS的开源实现,由分布式计算框架MapReduce和分布式存储系统HDFS(Hadoop Distributed File System)组成,具有高容错性,高扩展性和编程接口简单等特点,现已被大部分互联网公司采用。

本博客一直关注Hadoop的发展动态,并整理了以下几篇文章:

(1) Hadoop框架优化:“Hadoop平台优化综述(一)”, “Hadoop平台优化综述(二)

(2) Hadoop调度器研究:“Hadoop公平调度器解析”,”Hadoop计算能力调度器解析“, “Hadoop的调度器总结”,“如何编写Hadoop调度器

(3) HDFS小文件管理:“HDFS小文件问题及解决方案

(4)  Hadoop上编写分布式程序,当前Hadoop主要有三种编程方式,分别为:

[1] Java语言:“如何在Hadoop上编写MapReduce程序”,

[2] Hadoop Streaming:“Hadoop Streaming 编程”,“Hadoop Streaming 高级编程

[3] Hadoop Pipes:“Hadoop pipes设计原理”,”Hadoop pipes编程

——————————————————————————————————————————————————

二、Hadoop-YARN(Hadoop 2.0的一个分支,实际上是一个资源管理系统)

YARN是Hadoop的一个子项目(与MapReduce并列),它实际上是一个资源统一管理系统,可以在上面运行各种计算框架(包括MapReduce、Spark、Storm、MPI等)。

本博客一直关注YARN的发展动态,并整理了以下几篇文章:

(1)准备篇:

[1]“下一代Apache Hadoop MapReduce框架的架构

[2]“Hadoop 2.0中的基本术语解释

[3]“相比于MRv1,YARN带来的优势是什么?

[4]“Hadoop版本选择探讨

[5]“YARN/MR2编程模型介绍

(2) YARN ResourceManager分析:

[1]“YARN/MRv2 Resource Manager深入剖析—RM总体架构

[2]“YARN/MRv2 Resource Manager深入剖析—用户交互相关模块分析

[3]“YARN/MRv2 Resource Manager深入剖析—服务与事件处理器

[4]“YARN/MRv2 Resource Manager深入剖析—AM管理

[5]“YARN/MRv2 Resource Manager深入剖析—NM管理

[6]“YARN/MRv2 Resource Manager深入剖析—RMApp状态机分析

[7]“YARN/MRv2 Resource Manager深入剖析—RMAppAttempt状态机分析

[8]“YARN/MRv2 Resource Manager深入剖析—RMContainer状态机分析

[9]“YARN/MRv2 Resource Manager深入剖析—资源调度器

(3)YARN NodeManager分析:

[1]“YARN/MRv2 Node Manager深入剖析—整体架构

[2]“YARN/MRv2 Node Manager深入剖析—节点健康状况检测

[3]“YARN/MRv2 Node Manager深入剖析—Container启动过程分析

[4]“YARN/MRv2 Node Manager深入剖析—Application状态机分析

[5]“YARN/MRv2 Node Manager深入剖析—Container状态机分析

[6]“YARN/MRv2 Node Manager深入剖析—LocalizedResource状态机分析

(4) YARN MRAppMaster分析:

[1] “YARN/MRv2 MRAppMaster深入剖析—概述”,

[2] “YARN/MRv2 MRAppMaster深入剖析—整体架构”

[3]“YARN/MRv2 MRAppMaster深入剖析—作业生命周期

[4]“YARN/MRv2 MRAppMaster深入剖析—ContainerAllocator分析

[5]“YARN/MRv2 MRAppMaster深入剖析—ContainerLauncher分析

[6]“YARN/MRv2 MRAppMaster深入剖析—推测执行机制

[7]“YARN/MRv2 MRAppMaster深入剖析—作业恢复

(4)YARN应用程序开发及实例:

[1]“YARN/MRv2的Client端代码分析

[2]“如何编写YARN应用程序

[3]“YARN编程实例—distributedshell源码分析

[4]“如何运行YARN中的DistributedShell程序

[5]“YARN编程实例—Unmanaged AM工作原理介绍

(5)YARN的其他方面:

[1]“浅谈Hadoop YARN中的事件驱动机制

[2]“浅谈Borg/YARN/Mesos/Torca/Corona一类系统

[3]“Apache Tez:一个运行在YARN之上支持DAG作业的计算框架

[4]“浅谈Apache Tez中的优化技术

[5]“Apache Tajo:一个运行在YARN上支持SQL的分布式数据仓库

[6]“多集群下资源共享方案介绍

[7]“解析Google集群资源管理系统Omega

————————————————————————————————————————————————–

三、FrameWork On YARN

运行在YARN上的框架,包括MapReduce-On-YARN, Spark-On-YARN, Storm-On-YARN和Tez-On-YARN。

(1)MapReduce-On-YARN:YARN上的离线计算;

(2)Spark-On-YARN:YARN上的内存计算;

(3)Storm-On-YARN:YARN上的实时/流式计算;

(4)Tez-On-YARN:YARN上的DAG计算

————————————————————————————————————————————————-

四、日志分析系统

随着网站的访问量越来越大,日志的分析和挖掘显得尤为重要。本博客也一直在关注开源日志系统,包括:facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flume等,并整理了以下几篇文章:

(1) 关于Facebook的Scribe:“ Scribe日志收集系统介绍

(2) 关于LinkedIn的Kafka:“消息系统Kafka介绍

(3) 关于开源日志系统的比较:“开源日志系统比较

————————————————————————————————————————————————-

五、Apache Thrift

Apache Thrift是Facebook开源的RPC框架,包含序列化/反序列化和RPC两部分,本博客关注Thrift发展,并整理一下几篇文章:

[1]“Thirft框架介绍

[2]“Thrift使用指南

[3]“使用Thrift RPC编写程序

[4]“让Thrift支持双向通信

[5]“浅谈Thrift内部实现原理

—————————————————————————————————————————————————

六、数据结构和算法

本人一直以为做IT,积累基础知识尤其重要,因而本人一直在修炼基本功,即数据结构和算法,并不断整理和总结,并将进度汇总在博文“数据结构和算法汇总”中。

—————————————————————————————————————————————————

已经有20个网友发表了留言

  • 1楼X周 回复

    Post: 2013-05-13 03:03

    新书电子版 只有三章?

    [回复]

    Dong 回复:

    前三章试读。

    [回复]

    X周 回复:

    如果想看完整的,还是的买书!

    [回复]

    Ancin 回复:

    哥是山东临沂哪里的?我费县的。

    [回复]

    Dong 回复:

    呵呵。

    [回复]

    asdf 回复:

    牛逼!

    [回复]

  • 2楼Napoleon 回复

    Post: 2013-05-22 05:59

    好,关于Yarn,我之前在测试集群上安装过,我发现之前在用mapreduce写的用于hbase插入数据的job在yarn(cdh4)中几乎无法执行,我是个hadoop的初级使用者,谈不上修改源码,只是想问问作者是不是cdh4的mr api都改变了呢?还有希望作者能写一篇关于cdh4环境变量的cheat sheet,因为我的mr不能运行好像就是我按照cdh3设置的HADOOP_HOME等环境变量都不起作用,官网也没有做太多说明。btw,我是hadoop技术内幕的忠实读者,希望作者在改版中普及cdh4的中文教程和实例。谢谢

    [回复]

  • 3楼Dong 回复

    Post: 2013-05-22 06:40

    YARN是兼容第一代MapReduce程序的,可能细节之处有一些问题,我抽时间写,谢谢你的反馈。

    [回复]

  • 4楼lshmouse 回复

    Post: 2013-05-27 15:44

    cassandra只是借鉴了column family的概念,和bigtable架构相差很远,更像dynamo一些,所以cassandra是bigtable开源实现太牵强了

    [回复]

  • 5楼董是b哥 回复

    Post: 2013-06-04 15:53

    呵呵,B哥 年纪轻轻就出书了 真是佩服
    数钱数的手软了吧

    [回复]

    Dong 回复:

    出技术书能赚多少钱?你知道吗?这方面知识,你得补补,关于技术书籍出版领域。

    [回复]

  • 6楼freeman 回复

    Post: 2013-06-05 06:20

    话说技术书籍不怎么赚钱,就是赚钱,那也是通过贡献知识赚的钱,很合法,很正当,又不是腐败和官商勾结来的。

    [回复]

  • 7楼宝林 回复

    Post: 2013-06-14 09:31

    原来是学长,佩服

    [回复]

  • 8楼海豚 回复

    Post: 2013-06-27 09:55

    你好。Yarn中现在对container只有对CPU核数目和内存的分配,对吧?
    我现在想做实验,试试在hadoop集群中增加一项资源配置(增加了其他硬件),所以需增加这个硬件描述,并且在对container进行资源分配时,也加上这项硬件的分配,请问需要理解和修改的相关的代码主要在哪块?谢谢

    [回复]

    Dong 回复:

    ResourceManager NodeManager以及两者之间的通信协议,都要修改。

    [回复]

  • 9楼huizane 回复

    Post: 2013-07-26 14:01

    你的新书会出kindle版本吗

    [回复]

    Dong 回复:

    过段时间应该有。

    [回复]

    Navy.Chen 回复:

    Roadmap?赶紧出kindle版本吧,背着那么厚重的书的确很费劲,谢谢了

    [回复]

  • 10楼wo 回复

    Post: 2013-08-02 01:20

    1.3节 搭建hadoop源代码阅读环境 实现是太简单了吧。。。。。最好出个详细版的,谢谢,刚买开始看,书很贵,希望能物有所值

    [回复]

  • 11楼Jerry Zang 回复

    Post: 2013-08-08 05:23

    校友+老乡
    :D

    [回复]

  • 12楼人来人往 回复

    Post: 2013-08-28 09:35

    有个群说你在淘宝开班培训hadoop是真的吗

    [回复]

    Dong 回复:

    http://chinahadoop.net/edu/

    [回复]

  • 13楼酷酷的码农 回复

    Post: 2013-09-02 08:50

    学习~!

    [回复]

  • 14楼Andy 回复

    Post: 2013-10-15 02:17

    dong学长,你好,能否把Ambari的日志系统详细介绍下,3Q

    [回复]

  • 15楼Vanluo 回复

    Post: 2013-12-20 05:57

    我觉得不试读了,直接买。

    [回复]

    Dong 回复:

    O(∩_∩)O~

    [回复]

  • 16楼linda 回复

    Post: 2014-01-07 11:12

    我买书了,发现书里有些代码不完整,书还是有帮助的!

    [回复]

  • 17楼dolphin 回复

    Post: 2014-02-14 03:34

    您好,我有个问题请教。默认在Yarn框架中,在map输出之前都会对KEY进行sort。我现在想修改这个sort,是需要直接修改框架MapTask.java中的内容呢?还是我可以通过 job.setSortComparatorClass(MyComparator.class);进行指定。我自己实现MyComparator?
    我想通过后者而不去修改yarn框架。后者的话,是我理解中的这样吗?到时候map会自己调用我实现的MyComparator?谢谢

    [回复]

  • 18楼hongchen 回复

    Post: 2014-07-16 09:06

    您好,我这碰到了点问题,求赐教,Hadoop2.2简单上传文件,web环境下启动报错,下面代码在main方法中执行没有问题,顺利通过,但是将这段代码放到Servlet的doGet方法中项目启动时出错,
    代码:
    InputStream in = new BufferedInputStream(new FileInputStream(src));
    Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(URI.create(home), conf);
    OutputStream out = fs.create(new Path(home+dst));
    IOUtils.copyBytes(in, out, 4096, true);
    异常:
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/test]]

    Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

    [回复]

  • 19楼mr.onroad 回复

    Post: 2014-08-03 10:09

    开始接触大数据处理平台。感觉现在快速发展的这些技术,可能是过去很多技术的一个归纳和整理,如传统的集群计算,web服务器端软件技术,数据库服务器技术。在这些技术的基础上,结合分布式计算理论,提炼模式,再把模式进行实作,形成现在这些技术框架和平台。这些平台反过来,以后肯定也会影响到之前的那些计算场景,如web服务,现在已经有一些尝试再往这方面做了。

    [回复]

  • 20楼ainubis 回复

    Post: 2014-08-22 01:21

    你的两倍hadoop技术内幕 书,先看哪本

    [回复]

    Dong 回复:

    建议mapreduce那本开始

    [回复]

发表留言