Hadoop 使用 YARN 运行 MapReduce 的过程如下图所示: 总共分为11步. 这里以 WordCount 为例, 我们在客户端终端提交作业: # 把本地的 /home/hadoop/test.txt 文件上传到 HDFS 的 /input 下, 之后 HDFS 会对文件分块等 hadoop-2.7.3/bin/hadoop fs -put /home/hadoop/test.txt /input/ # 我们以 hadoop 自带测试例子 wordcount 为例 hadoop-2…
这是我的分析,当然查阅书籍和网络.如有什么不对的,请各位批评指正.以下的类有的并不完全,只列出重要的方法. 如要转载,请注上作者以及出处. 一.源码阅读环境 需要安装jdk1.7.0版本及其以上版本,还需要安装Eclipse阅读hadoop源码. Eclipse安装教程参见我的博客. Hadoop源码官网下载.我下载的是2.7.3版本的.其中source是源代码工程,需要你编译才能执行.而binary是编译好的克执行文件. 如果你要搭建Hadoop集群,则下载binary的.如果阅读源代码,下载…
为了能使源码的执行过程与Hadoop权威指南(2.3版)中章节Shuffle and Sort的分析相对应,Hadoop的版本为0.20.2. 一般情况下我们通过Job(org.apache.hadoop.mapreduce.Job)的方法waitForCompletion来开始一个Job的执行. /** * Submit the job to the cluster and wait for it to finish. * * @param verbose * print the progre…
MapReduce过程源码分析 Mapper   首先mapper完成映射,将word映射成(word,1)的形式.   MapReduce进程,Map阶段也叫MapTask,在MapTask中会通过run()方法来调用我们用户重写的mapper() 方法,   分布式的运算程序往往需要分成至少两个阶段:Map阶段和Reduce阶段.   第一个阶段,即Map阶段的maptask并发实例,完全并行独立运行,互不相干,如Map将要处理的多个文件的每个文件分成3份,分别放在集群中的各个数据节点,Ma…
上篇<Spark(四十九):Spark On YARN启动流程源码分析(一)>我们讲到启动SparkContext初始化,ApplicationMaster启动资源中,讲解的内容明显不完整. 本章将针对yarn-cluster(--master yarn –deploy-mode cluster)模式下全面进行代码补充解读: 1)什么时候初始化SparkContext: 2)如何实现ApplicationMaster如何启动executor: 3)启动后如何通过rpc实现executor与dr…
引导: 该篇章主要讲解执行spark-submit.sh提交到将任务提交给Yarn阶段代码分析. spark-submit的入口函数 一般提交一个spark作业的方式采用spark-submit来提交 # Run on a Spark standalone cluster ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://207.184.161.138:7077 \ --execut…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5017056.html 从Launcher开始启动App流程源码分析 com.android.launcher.Launcher就是我们的Launcher页面了,可以看到Launcher其实也是一个Activity: public final class Launcher extends Activity implements View.OnClickListe…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5013863.html Android系统启动流程源码分析 首先我们知道,Android是基于Linux的,当Linux内核加载完成时就会自动启动一个init的进程. 又因为我们每当我们启动一个App时,就会生成一个新的dalvik实例,并处于一个新的进程(当然一个App也可能是多进程的). 当我们打开第一个App的时候,就会通过init进程fork出一个zyg…
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还须要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程. Android系统的Home应用程序Launcher是由ActivityManagerService启动的,而ActivityManagerService和PackageManagerService一样,都是在开机时由…
本文參考Android应用程序组件Content Provider的启动过程源码分析http://blog.csdn.net/luoshengyang/article/details/6963418和<Android系统源码情景分析>,作者罗升阳. 0.总图流程图例如以下: 1.MainActivity进程向ActivityServiceManager主线程发送GET_CONTENT_PORVIDER_TRANSACTION 例如以下图: watermark/2/text/aHR0cDovL2…