hadoop 2.6 源码 解读
hadoop 2.6 源码 解读,解读hadoop源码各个模块,与同人分享
zhixingheyi_tian
Intel Big Data. Spark
展开
-
hadoop 2.6 源码 解读之Namenode启停
NameNode类入口 public static void main(String argv[]) throws Exception { if (DFSUtil.parseHelpArgument(argv, NameNode.USAGE, System.out, true)) { System.exit(0); } try { Stri...原创 2018-05-04 16:01:44 · 329 阅读 · 0 评论 -
hadoop 2.6 源码 解读之零拷贝数据传输
DataNode重要的数据功能之一是读取数据块原创 2018-05-09 13:00:10 · 683 阅读 · 0 评论 -
hadoop 2.6 源码 解读之限流
DataTransferThrottlerhdfs Datanode是 IO密集型应用,网络IO、磁盘IO容易成为系统的瓶颈。 Datanode 有各种任务占用这些共同资源,为保证可用性,有必要对流量进行控制//a class to throttle the data transfers. 实现限流作用的是类DataTransferThrottler ,其实现也相当简单: 周期period(毫原创 2018-05-09 18:52:20 · 278 阅读 · 0 评论 -
hadoop 2.6 源码 解读之创建文件
HDFS客户端创建文件示例Path file = new Path("demo.txt"); FSDataOutputStream outStream = fs.create(file); fs 是 DistributedFileSystem 实例, DistributedFileSystem createpublic HdfsDataOutputStream create(...原创 2018-05-13 21:39:02 · 401 阅读 · 0 评论 -
hadoop 2.6 源码解读之RPC Server 类高性能设计
hadoop 2.6 采用 谷歌protocol buffer作为通信协议,但是protocol buffer 相对于Thrift ,需要自己实现一套底层通信框架。hadoop Server类及其相关类,采用java NIO 及 多reactor 模式事件驱动I/O模型,外加多线程,实现了服务端高并发通信,构建了强有力的分布式基础设施。今天剖析下其代码实现。多reactorjava...原创 2018-04-10 17:11:31 · 188 阅读 · 0 评论 -
hadoop 2.6 源码 解读之NameNodeRpcServer启动及request处理
NameNodeRpcServer 启动监听clientRpcServer 用于响应 hdfs 客户端的 RPC请求 serviceRpcServer 用于响应 DataNode RPC 请求 /** * Start client and service RPC servers. */ void start() { clientRpcServer.start(...原创 2018-04-12 09:45:57 · 836 阅读 · 0 评论 -
hadoop 2.6 源码 解读之 Fsimage 实现
实现类 为 FSImage 主要有三个功能保存命名空间,NameNode内存中的namespace 保存在本地文件系统fsimage 文件中加载fsimage 加载editlogseen_txid:保存了日志重置时的最新的 transaction id,并不代表 Namenode 内存中最新的事务id使用 protobuf 对 fsimage 文件 进行序列化合并 fsi...原创 2018-04-26 17:53:14 · 322 阅读 · 0 评论 -
hadoop 2.6 源码 解读之 Namenode 与 Datanode 交互
Datanode启动后,会与Namenode握手、注册,以及第一次向NameNode发送全量块汇报,之后 每100个心跳间隔 (默认300s) 向Namenode发起增量汇报(添加、删除信息),同时间隔6小时发起全量汇报汇报(防止增量汇报出现异常)。为提高HDFS启动速度,针对DataNode第一次全量汇报,为提高响应速度,Namenode不会对元数据做处理(重新计算哪些需要删除 或 失效),推迟到原创 2018-04-27 17:57:04 · 332 阅读 · 0 评论 -
hadoop 2.6 源码 解读之 HDFS小结
HDFS 文件 是 write-once-read-many ,不支持客户端的并行写操作。 租约(lease)机制保证了HDFS文件的互斥操作。 客户端写HDFS文件时,先从租约管理器(LeaseManager)申请一个租约,成为租约持有者,也就有了对该HDFS文件的独占权限Hadoop 2.3 以上,新增了centralized Cache Management,允许用户将一些文件目...原创 2018-04-28 10:41:27 · 269 阅读 · 0 评论 -
hadoop 2.6 源码 解读之追加写操作流程
客户端DistributedFileSystem.java调用入口 @Override public FSDataOutputStream append(Path f, final int bufferSize, final Progressable progress) throws IOException { statistics.incrementWrite...原创 2018-05-03 14:48:54 · 534 阅读 · 0 评论