小朱笔记之hadoop应用实战、源码分析

1.1 背景目的

该笔记从宏观架构、安装配置、源码分析、使用案例四个方面剖析了Hadoop1.0.3,希望能对同学们提供帮助,赠人玫瑰,手留余香。能够把hadoop理论、源码和实践结合起来的资料少之又少,作者历时近一年搜集各种相关资料,取其精华,并经过实践检验。鉴于个人对于云计算的理解非常的浅薄,缺少足够的实践经验,深入的问题就不班门弄斧了,仅做梳理和解析。特别感谢李大嘴、奔跑的羚羊、觉先、阿笨猫、逸情公子、heyutao007、caibin、彭帅、千与、zhangyu8374、庄周梦蝶等同学,从你们探索的资料中,我学习了很多东西,受益匪浅。再次感谢!另外我的学习源码(内含大量注释和分析)将会分享给大家下载。

另外mapreduce模块,我这边最近比较忙,很难尽快发布。有同学感兴趣的话,可以加我好友,大家一起分析。谢谢!

1.2 读者范围

读者需对hadoop有一定的了解,如果读者想只是想从原理上更加深入Hadoop 原理以及运行机制的话,只需要阅读第1、2章综述即可。如果读者想深入Hadoop的源码,则需阅读该文档第3-7章。读者熟练掌握Java语言的基本语法,并且对反射机制、动态代理、网络通讯有一定的了解。

官方源码svn地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.3

注意:目前线上集群已经全部升级为hadoop-branch-2.2.0,所以小朱就hadoop 2.2版本也一并做分析。

1.3 目录安排

下面是小朱笔记-hadoop系列目录安排,希望大家的关注,并提出建议或意见。

备注:绿色(已发布)、蓝色(已写完)、橙色(正在写)、黑色(没有写)

第一章:环境配置以及集群部署

第一节.集群环境配置
第二节.开发环境配置
第三节.实用工具配置

第二章:脚本分析

第一节:start-all.sh
第二节:hadoop-config.sh
第三节:hadoop-env.sh
第四节:start-dfs.sh
第五节:hadoop-daemon.sh
第六节:hadoop-daemons.sh
第七节:slaves.sh
第八节:start-mapred.sh
第九节:hadoop

第三章:io分析

第四章:conf分析

第一节:Configurable类分析
第二节:Configured类分析
第三节:Configuration类分析

第五章:ipc分析

第一节:RPC协议
第二节:Client类分析
第三节:Server类分析
第四节:RPC类分析

第六章:hdfs分析

第一节:基本概念
        
第二节:fs抽象文件系统实现
            2.1 cache机制
            2.2 statisticsTable统计信息管理映射表
            2.3 deleteOnExit临时文件集合
            2.4 文件系统抽象
            2.5 文件操作
            2.6 重要数据结构
第三节:hdfs实现分析
            3.1 基本概念
            3.2 通讯协议
            3.3 namenode数据结构
            3.4 datanode数据结构
            3.5 SecondaryNameNode数据结构
            3.6 DFSClient数据结构
第四节:namenode专项分析
            4.1 namenode启动过程分析
            4.2 namenode format过程分析
            4.3 namenode 副本监控分析ReplicationMonitor
            4.4 namenode文件租约分析LeaseManagerMonitor
            4.5 namenode心跳检测分析HeartbeatMonitor
            4.6 namenode任务线程之DecommissionManager$Monitor
            4.7 namenode 安全模式SafeModeMonitor
            4.8 回收站机制
第五节:Datanode 专项分析
            5.1 Datanode 启动过程分析
            5.2 Datanode 心跳分析
            5.3 Datanode 注册分析
            5.4 DataBlockScanner 文件校验

5.5 DataNode 数据读写分析
第六节:SecondaryNameNode专项分析
            6.1 架构分析
            6.2 SecondaryNameNode启动过程分析
            6.3 Checkpoint分析
            6.4 Import Checkpoint恢复数据
第七节: 客户端专项分析

第八节:系统升级分析

第九节:block Recovery过程分析

第十节:数据负载均衡分析

第十一节:机架感知策略分析

第七章:mapreduce分析

第八章:scheduler分析

第九章:security分析

第十章:应用案列以及解决方案

第一节:hadoop hdfs 运维优化

第二节:hadoop mr    开发优化
第三节:hadoop namenode HA探索
第四节:hadoop jobtracker  HA探索

作者简介:

朱辉    目前为彩票168网CTO/彩票365网技术经理。曾就职于彩洋洋网、人人网。多年互联网从业经验和程序开发,对分布式系统的开发、高并发、大数据量网站系统架构优化,高可用性、可伸缩性、分布式系统缓存设计,云计算hadoop&hive运维以及大数据分析等有丰富的经验。

QQ:46580583 只因程序夜未眠。

小朱笔记之hadoop应用实战、源码分析-目录相关推荐

  1. Ui学习笔记---EasyUI的EasyLoader组件源码分析

    Ui学习笔记---EasyUI的EasyLoader组件源码分析 技术qq交流群:JavaDream:251572072   1.问题1:为什么只使用了dialog却加载了那么多的js   http: ...

  2. Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)

    Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析_2020.06.25) 前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一 ...

  3. Java并发编程笔记之 CountDownLatch闭锁的源码分析

    转 自: Java并发编程笔记之 CountDownLatch闭锁的源码分析 ​ JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 C ...

  4. ESP8266--学习笔记(八)串口源码分析

    我一直对ESP8266的串口传输的机制很好奇,没办法只得好好分析源码了.   ESP8266的中断系统是必须要了解的.我分析的源代码是分配有任务的,所以在任务函数中是无法看到中断的.我的分析如下: 代 ...

  5. FreeRTOS学习笔记---动态创建任务 xTaskCreate() 源码分析

    在看FreeRTOS源码的时候,各个函数相互调用,各种参数相互传递,看的人云里雾里,越看越糊涂.为了搞清楚各个函数之间的相互关系,就边看源码,边画思维导图,用文字将函数功能描述出来,搞清楚整个函数框架 ...

  6. Keras入门笔记(番一):从源码分析K.batch_dot及与dot的区别

    动机 矩阵和向量的乘法各种名称都有,甚至相互混杂,在不同框架里的命名也不一样,每每都会陷入这些Magic中.例如,同样是dot对向量shape= (n,)和一维张量shape=(n,1)而言都不一样, ...

  7. hadoop之BlockPoolManager源码分析

    在HDFS Federation架构中, 一个HDFS集群可以创建多个命名空间,每一个DataNode都可以存储多个BlockPool的的数据块,所以在 DataNode定义了一个BlockPoolM ...

  8. Hadoop源码分析(四)

    2021SC@SDUSC 研究内容简略介绍 上周我们分析了org.apache.hadoop.mapreduce.Cluster中的的核心代码,本周将继续对mapreduce部分进行分析.在对Clus ...

  9. 【JDK】JDK源码分析-HashMap(1)

    概述 HashMap 是 Java 开发中最常用的容器类之一,也是面试的常客.它其实就是前文「数据结构与算法笔记(二)」中「散列表」的实现,处理散列冲突用的是"链表法",并且在 J ...

最新文章

  1. Survey | 生物医学文本挖掘最新进展
  2. 项目ITP(二) 二维码 拿起你的手机装一装,扫一扫 【每日一搏】
  3. 数据结构:插入排序(Insertion sort)
  4. 简单谈谈linux的文件权限问题
  5. python什么是交换算法_python算法-015将链表元素两两交换元素(交换值、就地翻转)...
  6. [开发笔记]-DataGridView控件中自定义控件的使用
  7. creator 静态属性_CocosCreator cc.class声明类
  8. Node学习笔记:建立TCP服务器和客户端之间的通信
  9. mysql数据=_mysql 数据操作
  10. 学Python就能做好数据分析?万能语言背后是一片韭菜地
  11. 迷你MVVM框架 avalonjs 0.71发布
  12. eq linux_Pr音频效果参考:滤波器与EQ
  13. 关于诡辩--偷换概念
  14. XML与java对象互转文档
  15. python修改电脑桌面壁纸_python设置windows桌面壁纸的方法
  16. java垃圾收集哪些叙述_关于垃圾收集的哪些叙述是对的() - 问答库
  17. TextView(文本框)
  18. 六大服务器和网络监控工具
  19. 世界各国及组织自动驾驶现行法规政策
  20. U盘防拷精灵 v1.3

热门文章

  1. Matlab匿名函数的使用
  2. 教你四步配置Hugo环境
  3. Python太低级,我选 C++?码农带你揭穿少儿编程的骗局
  4. 赢在微创新 之 痛点、 和尖叫点
  5. 黑马旅游网编写练习(3)--登录和退出功能
  6. 【热门主题:魔法少女奈叶动漫主题】
  7. Android中GridView(网络视图)使用
  8. 某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。
  9. (附源码)springboot助学贷款管理 毕业设计061528
  10. oracle 一年一次故障,一次Oracle故障处理过程