Hadoop2.8.5 MapReduce计算流程

上一篇我们从宏观的角度从作业认领到分发考察了MapReduce框架。今天我们来探究其内部,从宏观上说, MR 框架主要就是 Map 和 Reduce 这两个阶段。但是实际上远不是那么简单,这两个宏观的阶段都进一步划分成好几个更微观的阶段,前面提到过的排序(Sort )阶段为例, Mapper 的输...

2019-01-14 09:22:16

阅读数:13

评论数:0

Hadoop2.8.5 MapReduce计算框架

Hadoop 中 YARN 子系统的使命是为用户提供大数据的计算框架。早期的Hadoop ,甚至早期的 YARN 都只提供一种计算框架,那就是 MapReduce。 Hadoop 后来有了一些新的发展,除 MapReduce 外又提供了称为 Chain 和 Stream 的计算框架,一来使用户不必...

2019-01-13 10:48:28

阅读数:21

评论数:0

Hadoop2.8.5 作业的投运

上一篇关于容器的投运是YARN调度在受理作业后分配一个容器并投运到NM节点上,在NM上建立一个 “ 项目组长 ”,该项目组长就是 MRAppMaster。也就是说RM只管到这一级。接下来的事情由 MRAppMaster来处理。根 据 ContainerLaunchContext 中的信息将作业分解...

2019-01-11 14:46:53

阅读数:20

评论数:0

Hadoop2.8.5 容器的投运

上一篇我们考察了YARN调度系统的容器周转和分配,RM受理作业后就为该作业分配容器,最后由发射架将容器发送到对岸的NodeManager上,现在我们来看NM收到容器后如何启动JVM并创建AM作为作业的领头人,之后的事情就交给了AM。今天我们就来考察容器投运到NM这一过程。为了投运一个作业,RM 首...

2019-01-10 14:58:42

阅读数:19

评论数:0

Hadoop2.8.5 容器的周转与分配

上一篇关于作业的受理中,RM端通过RMAppImpl类表示作业,通过调度策略将作业存储后尝试运行该作业,这个时候调度器将为作业分配容器。容器代表着整个系统的资源在RM端的分配形式。 allocate (),其实只是从这个列表中收揽已经分配的容器(RMContainer 对象),并为这些容器办理使用...

2019-01-02 16:33:36

阅读数:23

评论数:0

Hadoop2.8.5 作业的受理

上一篇作业的提交最终流转到RMAppManager手中,RM节点上的ClientRMService对象相当于接待站,而RMApp Manager对象则专门管理与作业的申请和运行相关。两个对象均由 ResourceManager 创建,都在同一个 JVM 上。ClientRMService 是 通 ...

2019-01-01 10:25:43

阅读数:113

评论数:0

Hadoop2.8.5 作业的提交

Hadoop的RPC是以CS两端协议栈和协议引擎构成的,在查看作业的提交流程过程中我们总是从两端去看的,也即作业提交的Client端和作业接收的Service端。以此将作业的提交分为两个阶段。第一阶段是Client端,主要是作业的准备以及作业如何通过RPC协议与Service通讯。第二阶段是Ser...

2018-12-31 14:42:33

阅读数:25

评论数:0

Hadoop2.8.5 RPC 机制 二

由上一篇我们知道 Hadoop 是利用 ProtoBuf 和 Proxy 搭建起自己的 RPC 机制的。Hadoop 的 RPC 机制在 Client 一侧就是通过 Proxy 实现的。Proxy ,即“代理”,是 JDK 提供的一个类,可以说是专为RMI 定制的。Proxy 对象的创建一定是与 ...

2018-12-27 14:18:58

阅读数:27

评论数:2

Hadoop2.8.5 RPC机制 一

RPC 是“ RemoteProcedureCall ”即“远地过程调用”的缩写。这个机制的目的,是让一台机器上的程序能像调用本地的“过程”那样来调用别的机器上的某些过程。需要特别说明的是,RPC 并非针对远地的所有过程,并不是对远地所有的过程都可以随心所欲地通过 RPC 加以调用,而只能针对预先...

2018-12-26 16:48:57

阅读数:25

评论数:1

Android 模块化工程

模块化工程是很蛋疼的,如果应用工程不是很大,请不要作死。项目代码累计到一定过程,会伴随着复杂度的诞生,为了解决复杂度对业务带来的影响,需要对原有项目进行拆解以适应快速的业务变动,同时提高开发效率。使用模块化可以有效解决业务层的耦合。同时,对项目进行模块化后,如果工程还是太复杂,可以对工程进一步组件...

2018-12-23 15:05:34

阅读数:33

评论数:0

Hadoop2.8.5 资源管理器(RM)

YARN调度使用状态机(StateMachine)来驱动,我们以RM(ResourceManager)为例来看状态机如何驱动其运行。作为YARN的框架核心管理者整个集群的计算资源,对 于 宿 主 机 而 言,执 行 着ResourceManager 的 Java 虚拟机是个独立的进程。用户每向这个...

2018-12-18 16:07:18

阅读数:26

评论数:0

Hadoop2.8.5 YARN状态机

YARN主节点RM受理用户提交的作业之后,创建AM并分配资源,然后密切注视着作业的进展。YARN的代码广泛使用着状态机(StateMachine),来调度处理走走停停粗粒度的作业流程。在此“有限状态机”模型中,一个宏观的过程被抽象成一台机器,其结构包括一组“状态”,一组触发规则和一组操作。从程序设...

2018-12-17 16:01:49

阅读数:19

评论数:0

Hadoop2.8.5 集群拓扑

Hadoop运行在多机集群上时,每台机器都成为集群的一个节点(Node),节点之间连成一个局域网,一般是二层交换机(Switch),也可能是三层交换机。集群内的节点之间可以通过 IP 地址通信,也可以通过节点的域名即 URL 通信,这就需要有 DNS ,这意味着,在网络可以通达的某处存在着 DNS...

2018-12-17 11:28:26

阅读数:44

评论数:0

Hadoop2.9.2 源码编译

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层...

2018-11-29 14:53:36

阅读数:105

评论数:0

Android8.0 USB系统框架

USB(通用串行总线)主机模式向外设进行供电,使 Android 设备能够驱动 USB 总线,并且可以使用各种 USB 外设(包括音频接口,存储,MIDI),USB 和蓝牙低功耗连接都可以用于传输 MIDI 协议。USB配件模式,受外设供电驱动,包括数据传输,充电。USB开发模式,应用调试,唯一可...

2018-11-28 16:20:48

阅读数:62

评论数:0

Android8.0 Rild守护进程

电话是一种开放的通信渠道,任何人都可以随时向任何电话号码致电或者发送短信,因此 Android 用户需要能够轻松屏蔽骚扰电话和短信。在 Android N 推出之前,Android 用户只能依靠下载的应用来限制来自骚扰电话号码的来电和短信。但是,由于没有适当的 API 来屏蔽来电和短信,这些应用大...

2018-11-13 14:05:47

阅读数:100

评论数:2

Android8.0 存储系统

Android 一直在不断发展,可支持各种存储设备类型和功能。所有 Android 版本均支持配有传统存储(包括便携式存储和内置存储)的设备。便携式存储是指物理介质(如 SD 卡或 USB 设备),用于进行临时数据传输/文件存储。物理介质可以随设备一起保留更长时间,但并非固定在设备上,可以移除。自...

2018-11-09 10:45:51

阅读数:171

评论数:0

Android8.0 事件输入系统

Android 输入子系统名义上是由遍历系统多个层的事件管道组成,在最低层,物理输入设备会生成描述状态更改(例如按键按压和触摸接触点)的信号。设备固件以某种方式编码和传输这些信号,例如向系统发送 USB HID 报告或在 I2C 总线上产生中断。 然后,信号由 Linux 内核中的设备驱动程序解码...

2018-11-05 15:05:41

阅读数:42

评论数:0

Android8.0 蓝牙系统

Android 提供支持经典蓝牙和蓝牙低功耗的默认蓝牙堆栈。借助蓝牙,Android 设备可以创建个人区域网络,以便通过附近的蓝牙设备发送和接收数据,在 Android 4.3 及更高版本中,Android 蓝牙堆栈可提供实现蓝牙低功耗 (BLE) 的功能。要充分利用 BLE API,请遵循 An...

2018-10-30 15:04:37

阅读数:622

评论数:0

Android8.0 传感器系统框架

Android传感器属于虚拟设备,可提供来自以下各种物理传感器的数据:加速度计、陀螺仪、磁力计、气压计、湿度传感器、压力传感器、光传感器、近程传感器和心率传感器。下图显示的是 Android 传感器堆栈。尽管某些传感器可以绕过传感器中枢(如果存在)进行通信,但各个组件仅可与其上方和下方紧邻的组件通...

2018-10-20 20:39:24

阅读数:2333

评论数:0

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