java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2837|回复: 0

《深入解析YARN架构设计与实现原理》第1章 环境准备【1.4】

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66375

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-4-12 20:37:38 | 显示全部楼层 |阅读模式
    1.4 Hadoop源代码组织结构: p- K5 E+ A1 F/ Y/ G7 g# T: ~2 v
    HadoopJAR压缩包解压后的目录hadoop-{VERSION}中包含了Hadoop全部的管理脚本和JAR包, 下面简单对这些文件或
    + t6 t  D  P( \/ J" u/ w0 R目录进行介绍。" I8 S8 O2 i; D2 l, X% Q
    ❑binHadoop最基本的管理脚本和使用脚本所在目录, 这些脚本是sbin目录下管理脚本的基础实现, 用户可以直接使用这些& N2 F0 g/ `% S1 a! o
    脚本管理和使用
    Hadoop
    ) \3 z" h5 G3 d" u) y+ N" ^( W
    ❑etc Hadoop配置文件所在的目录, 包括core-site.xmlhdfs-site.xmlmapred-site.xml等从Hadoop 1.0继承而来的配置文件和
    9 O; F$ {7 z" o3 {$ D
    yarn-site.xmlHadoop 2.0新增的配置文件。
    + m- s; t) I; w) C5 L7 s! R9 l
    ❑include : 对外提供的编程库头文件( 具体动态库和静态库在lib目录中) , 这些头文件均是用C++定义的, 通常用于C++/ K6 d! u/ a& I) }
    言访问
    HDFS或者编写MapReduce程序。
    , S. \- O3 k0 l# x+ P$ m% X4 R
    ❑lib : 该目录包含了Hadoop对外提供的编程动态库和静态库, 与include目录中的头文件结合使用。8 P/ w/ H0 V9 p- L
    ❑libexec : 各个服务对应的Shell配置文件所在目录, 可用于配置日志输出目录、 启动参数( 比如JVM参数) 等基本信息。& N; Y; L/ n6 G7 @% y- w# V
    ❑sbinHadoop管理脚本所在目录, 主要包含HDFSYARN中各类服务的启动/关闭脚本。
    8 j6 o7 Y$ ]. f
    ❑share Hadoop各个模块编译后的JAR包所在目录。3 K6 X: q" W; J% ^& r. A+ Y1 g
    Hadoop 源代码压缩包解压后的目录hadoop-{VERSION}-src中, 可看到如图1-8所示的目录结构, 其中, 比较重要的目录
    , `# b- K: x* @1 }, e- R1 j5 e有:
    hadoop-common-projecthadoop-mapreduce-projecthadoop-hdfs-projecthadoop-yarn-project等, 下面分别介绍这几个目录的作; M2 {  U6 Q* N3 M
    用。
    - A% o  @- x/ g2 c$ q
    ❑hadoop-common-projectHadoop基础库所在目录, 该目录中包含了其他所有模块可能会用到的基础库, 包括RPC2 s( ]3 P6 I3 w* X: B4 j
    MetricsCounter等。
    # l0 M6 r$ ]: S& f5 n0 O! k
    1-8 Hadoop安装目录结构, P4 r4 [. v) `/ r# c
    ❑hadoop-mapreduce-projectMapReduce框架的实现, 在MRv1中, MapReduce由编程模型( map/reduce) 、 调度系统
    5 [# n' [, \5 R- l& T' [% X
    JobTrackerTaskTracker) 和数据处理引擎( MapTaskReduceTask) 等模块组成, 而此处的MapReduce则不同于MRv1中的实
    9 w5 @6 `; J- E3 m8 V. B1 m+ s) y8 j现, 它的资源调度功能由新增的
    YARN完成( 编程模型和数据处理引擎不变) , 自身仅包含非常简单的任务分配功能。2 o+ l) C! `* S+ t* F+ h" h+ z
    ❑hadoop-hdfs-projectHadoop分布式文件系统实现, 不同于Hadoop 1.0中单NameNode实现, Hadoop 2.0支持多NameNode0 }% V3 D) u) l. L0 x8 ^
    同时解决了
    NameNode单点故障问题。% L  ?& ~, o1 D) w9 Y( }: t
    ❑hadoop-yarn-projectHadoop资源管理系统YARN实现。 这是Hadoop 2.0新引入的分支, 该系统能够统一管理系统中的资( f% R  n' M$ r7 @
    源, 并按照一定的策略分配给各个应用程序, 本书将重点剖析
    YARN的实现。
    4 N% q+ j2 R3 R; W, }. B本书重点介绍
    YARN的实现原理, 下面就对Hadoop YARN源代 码组织结构 [3] 进行介绍。 YARN目录组织结构如图1-9所示。, L( f+ c5 ^1 p$ Y6 c: Q8 Y
    总体上看,
    Hadoop YARN分为5部分: APICommonApplicationsClientServer, 它们的内容具体如下:
    7 l' B9 Z0 V9 Q3 {1 t1 N2 Z
    ❑YARN APIhadoop-yarn-api目录) : 给出了YARN内部涉及的4个主要RPC协议的Java 声明和Protocol Buffers定义, 这4
    ) Q3 Y' ~% R3 z, S2 o6 z6 O
    RPC协议分别是ApplicationClientProtocolApplicationMasterProtocolContainerManagementProtocol
    ; t* U6 u; d7 Q9 }
    ResourceManagerAdministrationProtocol, 本书将在第2章对这部分内容进行详细介绍。* D- r5 s) b- N( X
    ❑YARN Commonhadoop-yarn-common目录) : 该部分包含了YARN底层库实现, 包括事件库、 服务库、 状态机库、 Web" L$ k9 f4 r& \' b2 F4 K: w6 I9 P# K
    面库等, 本书将在第
    3章对这部分内容进行详细介绍。. t: x: O( N; C* w3 @
    ❑YARN Applicationshadoop-yarn-applications目录) : 该部分包含了两个Application编程实例, 分别是distributedshell
    - T3 o9 w) ]. B) [0 N; i
    Unmanaged AM, 本书将在第4章对这部分内容进行详细介绍。
    2 d5 e, |& a- r, U/ ], j$ w
    ❑YARN Clienthadoop-yarn-client目录) : 该部分封装了几个与YARN RPC协议交互相关的库, 方便用户开发应用程序, 本& A# t( d% U( d9 I9 J" A0 P
    书将在第
    4章对这部分内容进行详细介绍。
    % o4 A& G" q& l8 I: p% S
    ❑YARN Serverhadoop-yarn-server目录) : 该部分给出了YARN的核心实现, 包括ResourceManagerNodeManager、 资源管
    ; ^' \9 K5 ^- p& U+ o+ X理器等核心组件的实现, 本书将在第
    5~7章对这部分内容进行详细介绍。
    * E6 K, C' s6 g6 ~: }9 ^3 A. _+ h
    1-9 Hadoop YARN目录组织结构! d9 n. B, Y5 d1 w$ ~
    [3] 不同Hadoop版本的源代码组织结构有较大差别, 本书的分析是基于Hadoop 1.0.0的。  ( O+ c/ T+ Y% K  H" @% {+ y7 ?! w
    ( T# L5 D- x' u/ h( t+ F

    5 h: X- C. {" ?: l+ d" B
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-12-22 15:12 , Processed in 0.125180 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表