小朱笔记之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 只因程序夜未眠。
相关推荐
Eclipse集成Hadoop2.10.0的插件,使用`ant`对hadoop的jar包进行打包并适应Eclipse加载,所以参数里有hadoop和eclipse的目录. 必须注意对于不同的hadoop版本,` HADDOP_INSTALL_PATH/share/hadoop/common/lib`下的jar包...
标题中的"apache-hadoop-3.1.0-winutils-master.zip"是一个针对Windows用户的Hadoop工具包,它包含了运行Hadoop所需的特定于Windows的工具和配置。`winutils.exe`是这个工具包的关键组件,它是Hadoop在Windows上的一...
《Hadoop-eclipse-plugin-2.7.2:在Eclipse中轻松开发Hadoop应用》 在大数据处理领域,Hadoop作为一个开源的分布式计算框架,因其高效、可扩展的特性而备受青睐。然而,对于开发者而言,有效地集成开发环境至关重要...
1. 解压`hadoop-common-2.6.0-bin-master.zip`到你选择的目录,例如`C:\hadoop\hadoop-2.6.0`。 2. 打开系统属性,进入“高级”选项卡,点击“环境变量”按钮。 3. 在系统变量部分,找到名为`Path`的变量,点击...
hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...
为了方便Hadoop开发者在Eclipse中进行Hadoop应用的开发和测试,出现了Hadoop2x-eclipse-plugin插件。这个插件允许开发者直接在Eclipse环境中创建、编译、运行和调试Hadoop MapReduce项目,极大地提升了开发效率。 ...
3. `hadoop-lzo-0.4.21-SNAPSHOT-sources.jar`:这个文件包含了Hadoop-LZO的源代码,对于开发者来说非常有用,因为可以直接查看源码来理解其内部工作原理,也可以方便地进行二次开发或调试。 集成Hadoop-LZO到你的...
1. **安装插件**:首先,你需要下载Hadoop-eclipse-plugin-2.7.6对应的JAR文件,然后将其放入Eclipse的plugins目录下。重启Eclipse后,插件会被自动加载。确保你的Eclipse版本与Hadoop版本兼容,否则可能会出现不...
hadoop-eclipse-plugin-3.1.3,eclipse版本为eclipse-jee-2020-03
Apache Flink 是一个流行的开源大数据处理框架,而 `flink-shaded-hadoop-2-uber-2.7.5-10.0.jar.zip` 文件是针对 Flink 优化的一个特殊版本的 Hadoop 库。这个压缩包中的 `flink-shaded-hadoop-2-uber-2.7.5-10.0....
hadoop-common-2.2.0-bin-master(包含windows端开发Hadoop和Spark需要的winutils.exe),Windows下IDEA开发Hadoop和Spark程序会报错,原因是因为如果本机操作系统是windows,在程序中使用了hadoop相关的东西,比如写入...
Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...
Hadoop 2.7.3是Hadoop的一个版本,其中包含了`hadoop-common-2.7.3-bin`这个模块,这个模块是Hadoop的基本组件集合,提供了在不同操作系统上运行Hadoop所需的各种工具和库。 标题中提到的`hadoop.dll`和`winutils....
Hadoop权威指南----读书笔记
hadoop-eclipse-plugin-2.7.1.jar插件,直接放在eclipse插件目录中
编译后的hadoop-lzo源码,将hadoop-lzo-0.4.21-SNAPSHOT.jar放到hadoop的classpath下 如${HADOOP_HOME}/share/hadoop/common。hadoop才能正确支持lzo,免去编译的烦恼
《Flink与Hadoop的深度整合:flink-shaded-hadoop-2-uber-2.6.5-10.0.zip详解》 在大数据处理领域,Apache Flink 和 Apache Hadoop 是两个不可或缺的重要组件。Flink作为一个实时流处理框架,以其高效的事件驱动和...
为了方便开发者在Eclipse环境中进行Hadoop应用程序的开发,Apache社区提供了Hadoop-Eclipse-Plugin插件,其版本号为2.6.4,是我们今天讨论的重点。这个插件大大简化了Hadoop项目创建、调试和部署的过程,提高了开发...
hadoop-eclipse-plugin-...将插件hadoop-eclipse-plugin-2.6.0.jar,从/data/hadoop3目录下,拷贝到/apps/eclipse/plugins的插件目录下。 cp /data/hadoop3/hadoop-eclipse-plugin-2.6.0.jar /apps/eclipse/plugins/
这个压缩包“hadoop-common-2.2.0-bin-master”是Hadoop 2.2.0版本的公共库二进制版本,包含了在Windows平台上开发和运行Hadoop所需的一些关键工具,特别是对于开发者来说非常重要的`winutils.exe`。 `winutils.exe...