<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liushahe2012的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liushahe2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liushahe2012]]></copyright><item><title><![CDATA[Hadoop源码解析之动态调整MapTask的内存资源大小]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/70555547</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/70555547</guid><author>liushahe2012</author><pubDate>Sun, 23 Apr 2017 23:10:39 +0800</pubDate><description><![CDATA[1.前言

我们都知道,在Hadoop中,一个Job的执行需要转化成1个个的Task去执行,在Task中,有会有2个类型,一个为Map Task,另一个就是Reduce
 Task.当然,这不是最底层的级别,在Task内部,还可以再分为TaskAttempt,叫做任务尝试,任务尝试姑且不在本篇文章的论述范围内.OK,针对每个Task,他当然会有他的资源使用量,广义的来讲,资源分为2个概念,1]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之申请与分配Container]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/68948705</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/68948705</guid><author>liushahe2012</author><pubDate>Sat, 01 Apr 2017 23:57:36 +0800</pubDate><description><![CDATA[本文从源码方面介绍应用程序的AM在NM上成功启动并向RM注册后，向RM请求资源（Container）到获取资源的整个过程，
以及RM内部涉及的主要工作流程。整个过程可看做以下两个阶段的迭代循环：
阶段1：AM汇报资源需求并领取已经分配到的资源。
阶段2：NM向RM汇报各个Container的运行状态，如果RM发现它上面有空闲的资源，则进行一次资源分配，并将分配的资源保存
到对应的数据结构中]]></description><category></category></item><item><title><![CDATA[hadoop案例之topK问题]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/68189837</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/68189837</guid><author>liushahe2012</author><pubDate>Wed, 29 Mar 2017 22:22:22 +0800</pubDate><description><![CDATA[海量数据中，查找topK问题的hadoop解法：
一个map task就是一个进程。有几个map task就有几个中间文件，有几个reduce task就有几个最终输出文件。
要找的top K 是指的全局的前K条数据，那么不管中间有几个map, reduce最终只能有一个reduce来汇总数据，输出top K。


思路和代码：
1. Mappers
使用默认的mapper数据，一个]]></description><category></category></item><item><title><![CDATA[Hadoop面试题 （网上收集版带答案）]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/60604843</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/60604843</guid><author>liushahe2012</author><pubDate>Mon, 06 Mar 2017 22:26:00 +0800</pubDate><description><![CDATA[1.列出安装Hadoop流程步骤
a) 创建hadoop账号
b) 更改ip
c) 安装Java 更改/etc/profile 配置环境变量
d) 修改host文件域名
e) 安装ssh 配置无密码登录
f) 解压hadoop
g) 配置hadoop  conf下面的配置文件
h) Hadoop namenode -format  格式化
i) Start 启动
2.列出had]]></description><category></category></item><item><title><![CDATA[Hadoop源码分析之事件异步分发器AsyncDispatcher]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/57481443</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/57481443</guid><author>liushahe2012</author><pubDate>Sun, 26 Feb 2017 21:16:55 +0800</pubDate><description><![CDATA[AsyncDispatcher是Yarn中事件异步分发器，它是ResourceManager中的一个基于阻塞队列的分发或者调度事件的组件，其在一个特定的单线程中分派事件，交给AsyncDispatcher中之前注册的针对该事件所属事件类型的事件处理器EventHandler来处理。每个事件类型类可能会有多个处理渠道，即多个事件处理器，可以使用一个线程池调度事件。在Yarn的主节点ResourceM]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之ApplicationMaster启动流程]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/56064378</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/56064378</guid><author>liushahe2012</author><pubDate>Mon, 20 Feb 2017 23:33:26 +0800</pubDate><description><![CDATA[本文从源码调用方面介绍从应用程序提交到启动ApplicationMaster的整个过程，期间涉及ClientRMService、RMAppManager、RMAppImpl、RMAppAttemptImpl、RMNode、ResourceScheduler等几个主要组件。
当客户端调用RPC函数ApplicationClientProtocol#submitApplication之后]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之YARN服务端作业提交流程]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/55311468</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/55311468</guid><author>liushahe2012</author><pubDate>Fri, 17 Feb 2017 00:17:23 +0800</pubDate><description><![CDATA[RM接收到客户端作业提交请求时会通过RPC server做回应，其实客户端就是通过ApplicationClientProtocol的RPC客户端提交作业的，客户端的提交流程参见Hadoop源码解析之YARN客户端作业提交流程，在提交阶段的代码中，客户端在获取新的JobId时，会调用到服务端getNewApplication来获得一个GetNewApplicationResponse，该返回类中包]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之java动态代理机制]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54744220</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54744220</guid><author>liushahe2012</author><pubDate>Thu, 26 Jan 2017 15:21:00 +0800</pubDate><description><![CDATA[在前一篇文章Hadoop源码解析之YARN客户端作业提交流程中，介绍了创建客户端代理阶段用到Java中的动态代理： 
protected void serviceStart() throws Exception {
    try {
      rmClient = ClientRMProxy.createRMProxy(getConfig(),
          ApplicationCl]]></description><category></category></item><item><title><![CDATA[hadoop中使用java.util.ServiceLoader]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54713505</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54713505</guid><author>liushahe2012</author><pubDate>Tue, 24 Jan 2017 22:46:39 +0800</pubDate><description><![CDATA[在前一篇文章Hadoop源码解析之YARN客户端作业提交流程中，介绍了创建客户端代理阶段用到java.util.ServiceLoader加载YarnClientProtocolProvider和LocalClientProtocolProvider。
以前从来没有使用过这个类，进去大概看了一下具体的实现。主要是从META-INF/services这个目录下的配置文件加载给定接口或者基类的实现，]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之如何获取JobId]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54697662</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54697662</guid><author>liushahe2012</author><pubDate>Mon, 23 Jan 2017 23:24:46 +0800</pubDate><description><![CDATA[前一篇文章讲到客户端作业的提交流程，其中有调用到JobSubmitter类的submitJobInternal函数，里面有获取JobId的地方。
部分源码如下：
JobStatus submitJobInternal(Job job, Cluster cluster) 
  throws ClassNotFoundException, InterruptedException, IOExcep]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之YARN客户端作业提交流程]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54674405</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54674405</guid><author>liushahe2012</author><pubDate>Sun, 22 Jan 2017 23:36:48 +0800</pubDate><description><![CDATA[主要的流程集中在JobSubmitter.submitJobInternal中，包括检测输出目录合法性，设置作业提交信息（主机和用户），获得JobID，向HDFS中拷贝作业所需文件（Job.jar Job.xml split文件等），最后执行作业提交。]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之修改distributedshell使每个Container运行在不同节点上]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54639475</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54639475</guid><author>liushahe2012</author><pubDate>Sat, 21 Jan 2017 02:18:24 +0800</pubDate><description><![CDATA[1.提出问题
修改DistributedShell程序，使得每个Container运行在不同节点上（目前是随机的，可能运行在任意节点上）。
2.分析过程
         在YARN的处理流程中：
1.  AM通过RPC协议ApplicationMasterProtocol向RM申请Container。
2.  AM通过RPC协议ContainerManagementProtocol要求]]></description><category></category></item><item><title><![CDATA[Hadoop之YARN的主要通信协议]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54634635</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54634635</guid><author>liushahe2012</author><pubDate>Fri, 20 Jan 2017 22:47:15 +0800</pubDate><description><![CDATA[hadoop基础教程：YARN通信协议，RPC协议是连接各个组件的“大动脉”，了解不同组件之间的RPC协议有助于我们更深入地学习YARN框架。在YARN中，任何两个需相互通信的组件之间仅有一个RPC协议，而对于任何一个RPC协议，通信双方有一端是Client，另一端为Server，且Client总是主动连接Server的，因此，YARN实际上采用的是拉式(pull-based)通信模型。
Job]]></description><category></category></item><item><title><![CDATA[Hadoop YARN中内存和CPU两种资源的调度和隔离]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54620443</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54620443</guid><author>liushahe2012</author><pubDate>Thu, 19 Jan 2017 23:51:24 +0800</pubDate><description><![CDATA[Hadoop  YARN同时支持内存和CPU两种资源的调度（默认只支持内存，如果想进一步调度CPU，需要自己进行一些配置），本文将介绍YARN是如何对这些资源进行调度和隔离的。
在YARN中，资源管理由ResourceManager和NodeManager共同完成，其中，ResourceManager中的调度器负责资源的分配，而NodeManager则负责资源的供给和隔离。ResourceMan]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之distributedshell]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54606700</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54606700</guid><author>liushahe2012</author><pubDate>Wed, 18 Jan 2017 23:33:17 +0800</pubDate><description><![CDATA[Hadoop源码解析之distributedshell
1.    概述
本文介绍YARN自带的一个非常简单的应用程序编程实例—distributedshell，他可以看做YARN编程中的“helloworld”，它的主要功能是并行执行用户提供的shell命令或者shell脚本。本文主要介绍distributedshell的实现方法。
版本为hadoop-2.5.2
Distributed]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之RPC协议]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54563305</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54563305</guid><author>liushahe2012</author><pubDate>Sun, 15 Jan 2017 16:46:04 +0800</pubDate><description><![CDATA[Hadoop源码解析之RPC协议
 
1. RPC的基础概念
RPC，即RemoteProcdure Call，中文名：远程过程调用。
它允许一台计算机程序远程调用另外一台计算机的子程序，而不用去关心底层的网络通信细节，对我们来说是透明的。因此，它经常用于分布式网络通信中。
Hadoop RPC在整个Hadoop中应用非常广泛，Client、DataNode、NameNode之间的通讯都]]></description><category></category></item><item><title><![CDATA[Hadoop源码解析之YARN的服务库与事件库]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54412515</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54412515</guid><author>liushahe2012</author><pubDate>Fri, 13 Jan 2017 22:32:45 +0800</pubDate><description><![CDATA[Hadoop源码解析之YARN的服务库与事件库
 
参考：
http://www.cnblogs.com/smartloli/p/4669968.html
1. YARN服务库
对于生命周期较长的对象，YARN使用基于服务的对象模型进行管理，主要特点如下：
1.    用于被服务化的对象包含4个状态，他们分别是：被创建、已初始化、已启动和已停止。
2.    任何服务状态变化都可以触]]></description><category></category></item><item><title><![CDATA[Hadoop Yarn 框架原理及运作机制]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54236762</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54236762</guid><author>liushahe2012</author><pubDate>Sun, 08 Jan 2017 20:57:15 +0800</pubDate><description><![CDATA[1. YARN 基本架构

YARN是Hadoop 2.0中的资源管理系统，它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务：一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。

其中ResourceManager负责整个系统的资源管理和分配，而ApplicationMaster负责单个应用程序的管理。
]]></description><category></category></item><item><title><![CDATA[Hadoop案例之自定义分片策略解决大量小文件问题]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54176450</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54176450</guid><author>liushahe2012</author><pubDate>Sat, 07 Jan 2017 17:23:31 +0800</pubDate><description><![CDATA[Hadoop案例之自定义分片策略解决大量小文件问题
 
转载：
http://blog.youkuaiyun.com/qq1010885678/article/details/50771361
1.默认的分片策略TextInputFormat
应该都知道默认的TextInputFormat是一行行的读取文件内容，这对于一个或几个超大型的文件来说并没有什么问题，但是在实验读取大量小文件的时候，性能及其]]></description><category></category></item><item><title><![CDATA[Hadoop案例之基于物品的协同过滤算法ItemCF]]></title><link>https://blog.youkuaiyun.com/liushahe2012/article/details/54122080</link><guid>https://blog.youkuaiyun.com/liushahe2012/article/details/54122080</guid><author>liushahe2012</author><pubDate>Fri, 06 Jan 2017 00:18:35 +0800</pubDate><description><![CDATA[Hadoop案例之基于物品的协同过滤算法ItemCF]]></description><category></category></item></channel></rss>