`
hongs_yang
  • 浏览: 61221 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
从WordCount开始分析   编写一个例子程序   编写一个从HDFS中读取并计算wordcount的例子程序:   package org.apache.spark.examples       import org.apache.spark.SparkContext   import org.apache.spark.SparkContext._      
Spark on yarn执行流程源代码分析   目前的分析主要基于spark0.9.0的cdh5的版本进行分析,   源代码下载地址:https://github.com/cloudera/spark.git   下载方式:git clone url ./spark   进入spark目录,执行git checkout cdh5-0.9.0_5.0.0         源代码编译   使用sbt编译spark   运行sbt
UserScan的处理流程分析   前置说明   Userscan是通过client或cp中发起的scanner操作。   在Scan中通过caching属性来返回可以返回多少条数据,每次进行next
Major compaction时的scan操作   发起major compaction时,通过CompactSplitThread.CompactionRunner.run开始执行   -->region.compact(compaction, store)-->store.compact(compaction)-->   CompactionContext.
minor compaction时的scan操作分析   minor compaction时的scan主要是对store下的几个storefile文件进行合并,通常不做数据删除操作。   compaction的发起通过CompactSplitThread.requestCompactionInternal-->   CompactSplitThread.CompactionRunner.run-->region.
compact处理流程分析   compact的处理与split相同,由client端与flush时检查发起。   针对compact还有一个在rs生成时生成的CompactionChecker线程定期去检查是否需要做compact操作  
region split流程分析 split region的发起主要通过client端调用regionserver.splitRegion或memstore.flsuh时检查并发起。   Client通过rpc调用regionserver的splitRegion方法 client端通过HBaseAdmin.split传入region name与split point(切分的rowkey,可以不传入), 通过meta得到此region所在的server,发起rpc请求,调用HRegionServer.splitRegion方法     public SplitRegionRespo ...
memstore的flush流程分析 memstore的flush发起主要从以下几个地方进行:  a.在HRegionServer调用multi进行更新时,检查是否超过全局的memstore配置的最大值与最小值,    如果是,发起一个WakeupFlushThread的flush请求,如果超过全局memory的最大值,需要等待flush完成。  b.在HRegionServer进行数据更新时,调用HRegion.batchMutate更新store中数据时,    如果region.memstore的大小超过配置的region memstore size时,发起一个FlushReg ...
  Hlog的相关处理流程:   在对hbase中数据进行更新操作put/delete/append/increment操作时,记录操作日志供日志重播的相关处理。   Hlog的写入通过regionserver实例生成时生成的FSLog为的实例。   通过LogRoller
RegionServer端put数据流程分析:   client端通过MultiServerCallable.call调用rs的
数据写入(Put)处理流程分析: Put通过生成一个HTable实例,并调用其put方法时,的执行流程,此部分分析分为client与regionserver两个部分, client端: Htable.put-->doPut,如果是put一个list时,会迭代调用doPut privatevoiddoPut(Put put) throws InterruptedIOException, RetriesExhaustedWithDetailsException { 检查上次提交是否出错,
日志重播分析   Hbase的日志重播分为启动时的日志重播与rs下线时的日志重播操作。   通过hbase.master.distributed.log.replay来控制日志的split是在region的reopen前执行还是reopen后执行   如果是true表示在reopen后执行,否则相反     Rs下线时的日志重播分析   master监听下线   master通过RegionServerTracker监听rs在zk上的节点,当节点被删除时(rs
RS下线的regionassign 上面在RS启动部分已经提到过,RS在zk中的地址注册为SESSION过期自动清理的路径(ephemeral)。 在
region assign的流程补充Master端:1.regionserver下线,zk中注册的rs节点下的server子路径session过期被删除,  master触发RegionServerTracker.nodeDeleted监听事件,并调用ServerManager.expireServer2.把下线的server添加到deadServers列表中,同时从onlineServers列表中移出此server,3.触发ServerShutdownHandler.process方法,执行Hlog 的split操作。4.通过AssignmentManager.assign执行region的分 ...
HMBASE的REGION分配 Region assign分为meta的分配与userregion assign,同时包含hbase启动时与rs下线,因此从4个方面来说明regionassign 启动时的metaregion assign 针对master启动时的补充说明: Hmaster.run.
Global site tag (gtag.js) - Google Analytics