自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 MRAppMaster启动Task步骤简述

MRAppMaster启动Container步骤简述步骤1:MRAppMaster启动后,会为应用程序创建JobImpl,然后根据Map Task和Reduce Task的数量创建对应的TaskImpl.  然后是启动job,创建与Map Task和Reduce Task的同数量的TaskAttemptImpl(TaskAttemptImpl的实现有MapTaskAttemptIm...

2018-12-08 16:53:45 687

原创 AM启动--AMLauncher(六)

AMLauncherpublic class AMLauncher implements Runnable {...省略...@SuppressWarnings("unchecked") public void run() { switch (eventType) { case LAUNCH: try { LOG.info(&amp

2018-12-04 13:08:03 692

原创 AM启动--ApplicationMasterLauncher(五)

ApplicationMasterLauncher/** * ApplicationMasterLauncher即是一个服务,也是一个事件处理器,它处理AMLauncherEventType类型的事件,该类型事件有两种,分别是请求启动一个ApplicationMaster的LAUNCH事件和请求清理一个ApplicationMaster的CLEANUP事件. *ApplicationMas...

2018-12-04 13:06:28 574

原创 AM启动--AttemptStoredTransition(四)

AttemptStoredTransition主要逻辑步骤:    1.将在AttemptStartedTransition中创建的ClientToken记录到ClientToAMTokenSecretManagerInRM的列表masterKeys中 &n

2018-12-03 13:52:17 179

原创 AM启动--StoreAppAttemptTransition(三)

StoreAppAttemptTransition     1.将AppAttempt状态存储到共享存储系统  &

2018-12-03 13:37:06 185

原创 AM启动--AMContainerAllocatedTransition(二)

AMContainerAllocatedTransition主要逻辑步骤:     1.用sc

2018-12-03 13:32:52 420

原创 AM启动--ContainerStartedTransition(一)

ContainerStartedTransition单纯,代码清单:private static final class ContainerStartedTransition extends BaseTransition { @Override public void transition(RMContainerImpl container, RMContaine...

2018-11-30 17:25:56 250

原创 CapacityScheduler --ApplicationMaster资源分配

CapacityScheduler --ApplicationMaster资源分配   资源分配是被动分配的方式,在数

2018-11-30 17:01:15 1252

原创 ScheduleTransition(详见9)

ScheduleTransition@VisibleForTesting public static final class ScheduleTransition implements MultipleArcTransition<RMAppAttemptImpl, RMAppAttemptEvent, RMAppAttemptState&

2018-11-27 14:25:59 279

原创 基于Yarn的应用程序提交流程图

2018-11-23 18:06:10 313

原创 Capacity Scheduler--APP_ATTEMPT_ADDED事件的处理(详见8)

Capacity Scheduler简述Capacity Scheduler1.应用程序初始化  &

2018-11-23 17:50:54 698

原创 向ApplicationMasterService注册AppAttempt

向ApplicationMasterService注册AppAttempt代码清单:public void ApplicationMasterService.registerAppAttempt(ApplicationAttemptId attemptId) { AllocateResponse response = recordFactory.newRecordIns...

2018-11-23 10:57:42 422

原创 AttemptStartedTransition(详见7)

AttemptStartedTransition主要逻辑:向ApplicationMasterService注册AppAttempt触发SchedulerEventType.APP_ATTEMPT_ADDED事件代码清单private static final class AttemptStartedTransition extends BaseTransition { @Over...

2018-11-23 10:47:39 213

原创 StartAppAttemptTransition(详见6)

StartAppAttemptTransition单纯,上代码清单,主要逻辑:创建RMAppAttemptRMAppImpl会维护一个ApplicationAttemptId, RMAppAttempt的映射表触发RMAppStartAttemptEvent (RMAppAttemptEventType.START)事件private static final class Start...

2018-11-23 10:39:38 305

原创 SchedulerApplication类图

2018-11-22 18:20:19 133

原创 Capacity Scheduler--APP_ADDED事件的处理(详见5)

Capacity Scheduler简述Capacity Scheduler1.应用程序初始化  &

2018-11-22 18:00:00 389 1

原创 AddApplicationToSchedulerTransition(详见4)

AddApplicationToSchedulerTransition单纯,直接上代码清单: private static final class AddApplicationToSchedulerTransition extends RMAppTransition { @Override public void transition(RMAppImpl app, ...

2018-11-22 17:59:38 293 1

原创 StoreAppTransition(详见3)

StoreAppTransition单纯,直接上代码清单private static class StoreAppTransition implements MultipleArcTransition<RMStateStore, RMStateStoreEvent, RMStateStoreState> { @Ove

2018-11-22 15:52:23 306

原创 ApplictionId的生成

ApplictionId的生成ApplicationId主要包括两部分:clusterTimestamp和id.是在客户端提交应用程序前,随着rpc方法getNewJobID获取jobId时生成的.而JobID只是applicationId的简单包装.其中clusterTimestamp是ResourceManager的启动时间.而id是一个递增的整数类型.clusterTimestamp...

2018-11-22 15:51:21 632

原创 RMAppNewlySavingTransition(详见2)

经过RMAppNewlySavingTransition后,RMApp的状态由NEW转为NEW_SAVING.根据提交上下文创建应用程序状态数据结构(主要是提交时间,启动事件,提交上下文,提交用户等),然后触发RMStateStoreEventType.STORE_APP事件,STORE_APP事件处理器会把应用程序数据存储到ZK上.

2018-11-20 15:49:07 211

原创 rmAppManager.submitApplication详解(详见1)

rmAppManager.submitApplication详解submitApplication功能简要说明:创建RMAppImpl,然后将RMAppImpl放入ApplicationAclsManager触发RMAppEventType.START事件代码清单@SuppressWarnings("unchecked&

2018-11-20 15:48:24 1086

原创 hadoop初读--写数据时的数据流管道双向机制

为了保证分布式数据的一致性和完整性,hadoop写数据流时使用了写数据和应答的双向机制. 这里着重说明的是反向应答其实是分为两部分: 1.写请求答应:      正常情况下,这个应答会从管道的最后一个数据节点开始,往客户端方向发送,管道上的每一个节点都会等待这个应答,收到应答后,才会开始接受数据,也就是说,客户端会等待这个应答,然后才开始发送数据。这个应答是同步的,即直到收到应答后

2017-11-13 11:16:35 816

原创 hadoop初读--Packet.getBuffer()

hadoop初读–Packet.getBuffer()下面主要结合小数据(写不满一个packet)或者lastPacket的场景记录下getBuffer方法实现,主要还是以注释和图解的方式.ByteBuffer getBuffer() { if (buffer != null) { return buffer; } //chunkData长度 in

2017-11-02 16:55:09 539

原创 hadoop初读--setInputFormatClass

鉴于平时的hadoop实践问题或粗读hadoop源码而记录形成”hadoop初读”系列部分。每篇主要以问题-解答两部分组成:问题是实践中的异常或疑惑;解答部分为源码的粗读理解(以注释形式给出说明)。问题代码(主要实现多输入,报No input paths specified in job):import java.io.IOException;import java.net.URI;import

2017-06-01 17:57:07 3880

原创 sqoop1.99.7create job的注意点

前人博客本文大部分内容拷贝自”前人博客”,因为sqoop的交互实在太不友好了,针对创建job的实践中遇到的问题整理了下,以便有些同学也掉入坑中。红色部分是本人修改和补充(也是坑人需要着重说明)的地方。以下是各个属性Name:一个标示符,自己指定即可。Schema Name:指定Database或Schema的名字,在MySQL中,Schema同Database类似,具体什么区别没有深究过,但官网描述

2017-05-26 16:50:05 1515 1

原创 sqoop1.99.7自定义分隔符

sqoop1.99.7自定义分隔符源码在下载二进制包的url下就有,修改的地方:SqoopIDFUtils.toCSVString(String str)如下,注释的是原有代码,下一行是改的代码: 1.去掉字符串头尾的单引号:StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder();

2017-05-22 12:13:26 1232

原创 读webpy源码-请求响应2

续”读webpy源码-请求响应1”,这篇大概讲下respond。def communicate(self): request_seen = False try: while True: req = None req = self.RequestHandlerClass(self.server,

2017-02-10 11:56:11 301

原创 读webpy源码-请求响应1

上一篇简述了webpy响应流程过程,这里着重讲下可能大家关心的细节点。运行时启动一个socket(默认8080端口),当在浏览器请求url发起时,就是向这个socket发送了http协议的报文。socket收到后会解析包装成request对象,然后调用application的方法返回。后面主要看看解析做了什么?响应又是怎么做的?本人的主要思路是: 在哪里解析出url

2017-02-10 10:19:12 438

原创 python总结小计

python总结小计不宜搭建用户级的系统,因为:CPython(python解释器)的一个局限就是每个Python函数调用都会产生一个C函数调用.(从计算机科学的角度来说, 我们在讨论栈帧). 这意味着同时产生的函数调用是有限制的,因此Python难以实现用户级的线程库和复杂递归应用. 一旦超越这个限制,程序就会崩溃. 1.异常处理1) raise 用法、场景(待)2)

2017-01-07 12:02:28 252

原创 读webpy源码-请求响应概述

项目中启动应用的代码入口上述代码是项目启动应用的入口 if name=="main": app = web.application(urls, globals()) app.add_processor(web.loadhook(session_hook)) app.add_processor(web.unloadhook(request_unlock_hook)) app.run()

2016-12-01 15:41:28 365

读webpy源码-请求响应概述

web.py源码主体流程认识简要内部流程图 1.上述代码是项目启动应用的入口:if __name__=="__main__": app = web.application(urls, globals()) #session_hook为自定义方法(hook) app.add_processor(web.loadhook(session_hook)) #request_un...

2016-12-01 15:41:00 182

原创 git提交人切换

因为某些原因需要切换git用户提交代码,通过git config 命令修改了user.name和user.email后 gitlab服务器上提交用户还是显示老用户.这种情况下通过whereis git找到git 安装目录(目录下有git-credential-osxkeychain文件)或者直接通过sudo find / -name 'git-credential-osxkeychain'文件

2016-11-11 14:47:47 662

git提交人切换

因为某些原因需要切换git用户提交代码,通过git config 命令修改了user.name和user.email后 gitlab服务器上提交用户还是显示老用户.这种情况下通过whereis git找到git 安装目录(目录下有git-credential-osxkeychain文件)或者直接通过sudo find / -name 'git-credential-osxkeychain'文件...

2016-11-11 14:47:00 369

原创 修饰器-py

1.装饰器-打印method打印时间的简短装饰器:import datetimefrom functools import wrapsdef runTimeFunc_args(args): def func_wrapper(func): @wraps(func) def return_wrapper(*callvarargs, **callke

2016-10-11 09:33:19 220

修饰器-py

1.装饰器-打印method打印时间的简短装饰器:import datetimefrom functools import wrapsdef runTimeFunc_args(args): def func_wrapper(func): @wraps(func) def return_wrapper(*callvarargs, **callke...

2016-10-11 09:33:00 89

原创 python实用但容易遗忘的tips

>>> string.letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'>>> string.digits'0123456789'

2016-09-24 10:18:23 197

python实用但容易遗忘的tips

>>> string.letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'>>> string.digits'0123456789'###字典初始化>>> {}.fromkeys('xyz'){'y':None,'x':None,'z'...

2016-09-24 10:18:00 74

原创 web.db下获取select后返回的column列表

import webfrom DBUtils.PooledDB import PooledDBimport MySQLdbfrom models.logger import base_loggingclass mallDb: def __init__(self, conn_dict): myDbn = conn_dict['db_type']

2016-09-24 10:14:53 222

web.db下获取select后返回的column列表

sqlTxt = ''' select * from table_a where staff_no = ${staff_no} ''' results =self.myDb.query(sqlTxt, vars={'staff_no':staff_no}) rs = results.i.gi_frame.f_locals["name...

2016-09-24 10:14:00 118

原创 python-日期

import calendarimport datetimeimport timeclass dateutils: ''' 获取上月日期(具体哪一天可通过参数day自定义,默认是1号) ''' @staticmethod def query_last_month_day(day=None): ''' :pa

2016-09-18 19:46:01 188

properties文件显示中文

用于在properties中显示中文

2007-11-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除