精华内容
参与话题
问答
  • Apache Hadoop YARN.pdf完整电子版
  • YARN

    千次阅读 2019-01-28 14:55:00
    YARN 概述:是hadoop2.x版本引入的资源管理系统直接从MR1演化而来新的hadoop资源管理器,通用的资源管理器可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率,资源统一管理和数据共享等方面带来了巨大...

    YARN

    概述:
    是hadoop2.x版本引入的资源管理系统
    直接从MR1演化而来
    新的hadoop资源管理器,通用的资源管理器
    可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率,资源统一管理和数据共享等方面带来了巨大的好处
    核心思想:
    将MapReduce1中的JobTracker的资源管理和作业调度两个功能分开,分别由
    ResourceManager和ApplicationMaster进程来实现
    ResourceManager:负责整个集群的资源管理和调度
    ApplicationMaster:负责应用程序相关的事务,比如任务调度,任务监控和容错等

    YARN的出现可以使得多个计算框架运行在一个集群当中
    每个应用程序对应一个ApplicatonMaster
    目前可以支持多种计算框架运行在YARN上,比如MapReduce,Strom,Spark,Flink,


    YARN与MapReduce关系:

     


    YARN是一个资源管理系统,负责资源管理和调度
    MapReduce只是运行在YARN上的一个应用程序
    如果把YARN看作androd,则mapreduce只是一个app
    mapreduce1.0是一个独立系统,直接运行在linux上
    mapreduce2.0则是运行在YARN上的框架,且可以与多种框架一起运行在YARN上

     

    YARN 系统架构:

     

    ResourceManager
    负责集群中所有资源的统一管理和分配,它接受来自各个节点的NodeManager的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序,是整个YARN集群中最重要的组件之一,他的设计直接决定了系统的可扩展性,可用性和容错性,它的功能较多,包括ApplicationMaster管理,NodeManager管理,Application管理,状态机管理等


    主要有以下几个功能:
    1.与客户端交互,处理来自客户端的请求
    2.启动和管理ApplicationMaster,
    并且在它失败时重新启动它
    3.管理NodeManager,接受来自NodeManager的资源汇报信息,下达管理指令
    4.资源管理和调度,接受来自ApplicationMaster的资源申请请求并向让NodeManager为之分配资源

     


    Nodemanager
    是运行在单个节点上的代理,管理hadoop集群中单个计算节点,他需要与相应用程序的ApplicationMaster和集群管理者ResourceManager交互
    1.从ApplicationMaster上接收有关Contioner的命令并执行
    2.向ResourceManager汇报各个container运行状态和节点健康状况,并领取有关的Container的命令并执行


    ApplicationMaster
    与应用程序相关的组件
    1.负责数据切分,把每份数据分配给对应的Map Task
    2.为应用程序申请资源并进一步分配给内部的任务。比如从ResourceManager获取分配的资源,然后分配给Task任务
    3.任务的监控与容错。一旦一个任务挂掉之后,他可以重新向ResourceManager申请资源


    Container
    Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存,CPU,磁盘,网络等。当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。
    YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。需要注意的是,Container不同于MR(mapreduce)v1中的slot(也是资源分配单位),他是一个动态资源划分单位,是根据应用程序的需求动态生成的

     

    MapReduce on YARN

     

    运行在YARN上的应用程序分为两类:短应用程序和长应用程序
    短应用程序:是指在一定时间内可以运行完成并正常退出的应用程序,不如MapReduce作业 离线计算
    长应用程序:
    是指不出意外,永不停止的应用程序,通常是一些服务
    比如Strom Service(主要包括Nimbus和Supervisor两类服务)
    HBase Service(包括Hmaste:和RegionServer两类服务)等,而他们本身作为一个框架提供了编程接口供用户使用 spark 实时计算
    当用户向YARN中提交一个应用程序后,YARN将分为两个阶段运行该应用程序:
    第一个阶段是启动ApplicationMaster
    第二个阶段是由ApplicationMater创建应用程序,,为它申请资源,并监控它的整个运行过程,直到运行完成

    YARN 高可用:

     

    yarn里面的zkfc和ResourceManager是在一块的 不同于HDFS

    MasterHADaemon:与Master服务运行在同一个进程中,可以接收外部RPC命令,以控制Master服务的启动和停止

    SharedStorage共享存储系统,Active Master将信息写入共享存储系统,而Standby Master则读取该信息以保持与Active Master的同步

    ZKFailoverController:基于Zookeeper实现的切换控制器,主要由ActiveStandbyElector和HealthMonitor两个核心组件构成。
    ActiveStandbyElector:负责与Zookeeper集群交互通过尝试获取全局锁,以判断所管理的Master是进入Active还是进入Standby状态
    HealthMonitor:监控各个活动Master的状态,以根据他们的状态进行状态切换
    Zookeeper:核心功能是通过维护一把全局锁控制整个集群有且仅有一个Active Master。当然,如果Sharedstorge采用了Zookeeper,则还会记录一些其他状态和运行时信息。

     

    转载于:https://www.cnblogs.com/libin123/p/10330226.html

    展开全文
  • Yarn 安装与使用详细介绍

    万次阅读 多人点赞 2018-08-24 12:13:34
    什么是 Yarn 速度快 离线模式 可靠可确定性 网络优化 扁平化模式 版本控制 其他关于 Yarn 的介绍 Yarn 安装 windows mac 方式一 方式二 Yarn 换源 背景 在 Node 生态系统中,依赖通常安装在项目的 node_...

    背景

    在 Node 生态系统中,依赖通常安装在项目的 node_modules 文件夹中。然而,这个文件的结构和实际依赖树可能有所区别,因为重复的依赖可以合并到一起。npm 客户端把依赖安装到 node_modules 目录的过程具有不确定性。这意味着当依赖的安装顺序不同时,node_modules 目录的结构可能会发生变化。这种差异可能会导致类似 “我的电脑上可以运行,别人的电脑上不行” 的情况,并且通常需要花费大量时间定为与解决。

    有时候就会遇到这种情况,完整可运行的项目上传到 git 上,别人 pull 下来以后,npm install 会报错。

    Yarn 一开始的主要目标是解决由于语义版本控制而导致的 npm 安装的不确定性问题。虽然可以用 npm shrinkwrap 来实现可预测的依赖关系树,但它并不是默认选项,而是取决于所有的开发人员指导并启用这个选项。

    npm 5+ 以后的版本加入了 package-lock.json 可以用来锁版本,package-lock.json 的名字,一看就懂,更清楚,但是不向后兼容。

    npm-shrinkwrap.json 向后兼容 npm 2-4。

    举个例子:
    npm 对包引入顺序也十分的敏感,比如在一个空项目里执行以下命令:

    npm init -y
    npm install globule@0.1.0 -S
    npm install babel-generator@6.19.0 -S
    npm install babel-helper-define-map@6.18.0 -S
    

    我们这里安装了 3 个包都依赖于 lodash,不过 globule 依赖 lodash@1.0.3,另外另个依赖 lodash@4.x
    现在目录依赖结构如下:
    npm-package

    这是假设我们在项目里使用 lodash,但是忘记重新安装 lodash

    var lodash = require('lodash')
    console.log(lodash.VERSION)  // v1.0.3
    

    另一个同事获取项目代码,执行 npm install,这时的目录依赖结构里面,第一层依赖的 lodash 变成了 4.x 版本,这样就造成了依赖版本不一致的问题。而 yarn 则会保证无论怎样引入的顺序,目录依赖结构都是一致的,确保不会发生这样的 BUG

    什么是 Yarn

    Yarn 就是一个类似于 npm 的包管理工具,它是由 facebook 推出并开源。

    与 npm 相比,yarn 有着众多的优势,主要的优势在于:速度快、离线模式、版本控制。

    速度快

    npm 会等一个包完全安装完才跳到下一个包,但 yarn 会并行执行包,因此速度会快很多。

    Yarn 会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率,安装速度之快前所未有。

    离线模式

    之前安装过的包会被保存进缓存目录,以后安装就直接从缓存中复制过来,这样做的本质还是会提高安装下载的速度,避免不必要的网络请求。

    可靠可确定性

    保证各平台依赖的一致性

    网络优化

    力求网络资源最大利用化,让资源下载完美队列执行,避免大量的无用请求,下载失败会自动重新请求,避免整个安装过程失败

    扁平化模式

    对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的。
    对于多个包依赖同一个子包的情况,yarn 会尽量提取为同一个包,防止出现多处副本,浪费空间。

    版本控制

    npm 用下来比较强的一个痛点就是:当包的依赖层次比较深时,版本控制不够精确。会出现相同 package.json,但不同人的电脑上安装出不同版本的依赖包,出现类似 “我的电脑上可以运行,别人的电脑上不行” 的 bug 很难查找。你可以使用 npm-shrinkwrap 来实现版本固化,版本信息会写入 npm-shrinkwrap.json 文件中,但它毕竟不是 npm 的标准配置。

    而 yarn 天生就能实现版本固化。会生成一个类似 npm-shrinkwrap.json 的 yarn.lock 文件,而文件内会描述包自身的版本号,还会锁定所有它依赖的包的版本号:

    "@babel/code-frame@7.0.0-beta.47":
      version "7.0.0-beta.47"
      resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27"
      dependencies:
        "@babel/highlight" "7.0.0-beta.47"
    

    yarn.lock 存储着你的每个包的确切依赖版本,能确保从本地开发到生产环境,所有机器上都有精确相同的依赖版本。

    其他关于 Yarn 的介绍

    我们在使用 Yarn 时,依然要访问 npm 仓库,但 Yarn 能够更快速地安装软件包和管理依赖关系,并且可以在跨机器或者无网络的安全环境中保持代码的一致性。

    Yarn 安装

    windows

    在 Yarn 中文网可以找到 window 下的三种安装方法:

    yarn-install

    不过我觉得这三种方法都不好用,快速好用的安装方法应该还是使用 npm 来安装:

    npm install -g yarn
    

    关于为什么使用 -g,以及 -g 会带来哪来影响,这个可以看我的这篇文章:npm详细介绍,里面详细介绍了为什么要使用 -g,以及 -g 的作用。

    mac

    方式一

    npm install -g yarn
    

    如果有报: Please try running this command again as root/Administrator.,可能就是权限不足,因此你需要切换到最高权限去执行命令

    sudo -s
    npm install yarn -g
    

    方式二

    使用另一种初始化脚本的方法,可能就会比较简单一些:

    curl -o- -L https://yarnpkg.com/install.sh | bash
    

    Yarn 换源

    使用 Yarn 来安装依赖时的体验比 Npm 要好很多;但是偶尔也会存在 Yarn 源仓库包下载不稳定的情况

    // 查看 yarn 配置
    yarn config get registry
    或者
    yarn config list
    
    > registry: 'https://registry.yarnpkg.com'
    

    一、临时修改

    yarn add 软件名 --registry https://registry.npm.taobao.org/
    

    二、全局修改,安装淘宝镜像

    yarn config set registry https://registry.npm.taobao.org
    

    三、使用第三方软件快速修改、切换 yarn 镜像源
    yrm (YARN registry manager) 不仅可以快速切换镜像源,还可以测试自己网络访问不同源的速度

    # 安装 yrm
    npm install -g yrm
    
    # 列出当前可用的所有镜像源
    yrm ls
    
    // npm -----  https://registry.npmjs.org/
    // cnpm ----  http://r.cnpmjs.org/
    // taobao --  https://registry.npm.taobao.org/
    // nj ------  https://registry.nodejitsu.com/
    // rednpm -- http://registry.mirror.cqupt.edu.cn
    // skimdb -- https://skimdb.npmjs.com/registry
    // yarn ----  https://registry.yarnpkg.com
    
    # 使用淘宝镜像源
    yrm use taobao
    
    # 测试访问速度
    yrm test taobao
    

    Yarn 常用命令

    • npm install === yarn —— install安装是默认行为

    • npm install taco --save === yarn add taco —— taco包立即被保存到 package.json 中。

    • npm uninstall taco --save === yarn remove taco

    • npm install taco --save-dev === yarn add taco --dev

    • npm update --save === yarn upgrade

    • npm install taco@latest --save === yarn add taco

    • npm install taco --global === yarn global add taco —— 一如既往,请谨慎使用 global 标记。

    注意:使用 yarnyarn install 安装全部依赖时是根据 package.json 里的 dependencies 字段来决定的

    • npm init === yarn init

    • npm init --yes/-y === yarn init --yes/-y

    • npm link === yarn link

    • npm outdated === yarn outdated

    • npm publish === yarn publish

    • npm run === yarn run

    • npm cache clean === yarn cache clean

    • npm login === yarn login

    • npm test === yarn test

    Yarn 独有的命令

    • yarn licenses ls —— 允许你检查依赖的许可信息
    • yarn licenses generate —— 自动创建依赖免责声明 license
    • yarn why taco —— 检查为什么会安装 taco,详细列出依赖它的其他包
    • yarn why vuepress —— 检查为什么会安装 vuepress,详细列出依赖它的其他包

    特性

    Yarn 除了让安装过程变得更快与更可靠,还添加了一些额外的特性,从而进一步简化依赖管理的工作流。

    • 同时兼容 npmbower 工作流,并支持两种软件仓库混合使用
    • 可以限制已安装模块的协议,并提供方法输出协议信息
    • 提供一套稳定的共有 JS API,用于记录构建工具的输出信息
    • 可读、最小化、美观的 CLI 输出信息

    推荐阅读

    npm详细介绍

    ---------------------------(正文完)------------------------------------
    一个前端的学习交流群,想进来面基的,可以加群:
    JS学习交流
    或者手动search群号:832485817


    写在最后:约定优于配置-------软件开发的简约原则.
    --------------------------------(完)--------------------------------------

    我的:
    个人网站: https://neveryu.github.io/neveryu/
    Github: https://github.com/Neveryu
    新浪微博: https://weibo.com/Neveryu

    更多学习资源请关注我的新浪微博…

    展开全文
  • Yarn的简单介绍

    万次阅读 多人点赞 2018-03-15 00:51:44
    一、Yarn通俗介绍 Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一 种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统 一的资源管理和调度,...

    一、Yarn通俗介绍

    这里写图片描述

        Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一
    种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统
    一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨
    大好处。
    
        可以把 yarn 理解为相当于一个分布式的操作系统平台,而 mapreduce 等运算程序则相
    
      yarn 并不清楚用户提交的程序的运行机制
      yarn 只提供运算资源的调度(用户程序向 yarn 申请资源,yarn 就负责分配资源)
      yarn 中的主管角色叫 ResourceManager
      yarn 中具体提供运算资源的角色叫 NodeManager
      yarn与运行的用户程序完全解耦,意味着yarn上可以运行各种类型的分布式运算程序,
    比如 mapreduce、storm,spark,tez ……
      spark、storm 等运算框架都可以整合在 yarn 上运行,只要他们各自的框架中有符合
    yarn 规范的资源请求机制即可
      yarn 成为一个通用的资源调度平台.企业中以前存在的各种运算集群都可以整合在一
    个物理集群上,提高资源利用率,方便数据共享
    

    二、yarn基本架构

    这里写图片描述

    YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、
    NodeManager(NM)、ApplicationMaster(AM)。
    ResourceManager 负责所有资源的监控、分配和管理;
    ApplicationMaster 负责每一个具体应用程序的调度和协调;
    NodeManager 负责每一个节点的维护。
    对于所有的 applications,RM 拥有绝对的控制权和对资源的分配权。而每个 AM 则会和
    RM 协商资源,同时和 NodeManager 通信来执行和监控 task。
    

    三、Yarn三大组件介绍

    1.ResourceManager

      ResourceManager 负责整个集群的资源管理和分配,是一个全局的资源管理系统。
      NodeManager 以心跳的方式向 ResourceManager 汇报资源使用情况(目前主要是 CPU 和
    内存的使用情况)。RM 只接受 NM 的资源回报信息,对于具体的资源处理则交给 NM 自己
    处理。
      YARN Scheduler 根据 application 的请求为其分配资源,不负责 application job 的
    监控、追踪、运行状态反馈、启动等工作。
    

    2. NodeManager

      NodeManager 是每个节点上的资源和任务管理器,它是管理这台机器的代理,负责该节
    点程序的运行,以及该节点资源的管理和监控。YARN 集群每个节点都运行一个
    NodeManager。
      NodeManager 定时向 ResourceManager 汇报本节点资源(CPU、内存)的使用情况和
    Container 的运行状态。当 ResourceManager 宕机时 NodeManager 自动连接 RM 备用节
    点。
      NodeManager 接收并处理来自 ApplicationMaster 的 Container 启动、停止等各种请
    求。
    

    3.ApplicationMaster

      用 户 提 交 的 每 个 应 用 程 序 均 包 含 一 个 ApplicationMaster , 它 可 以 运 行 在
    ResourceManager 以外的机器上。
      负责与 RM 调度器协商以获取资源(用 Container 表示)。
      将得到的任务进一步分配给内部的任务(资源的二次分配)。
      与 NM 通信以启动/停止任务。
      监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
      当前 YARN 自带了两个 ApplicationMaster 实现,一个是用于演示 AM 编写方法的实例
    
        程序 DistributedShell,它可以申请一定数目的 Container 以并行运行一个 Shell 命
    令或者 Shell 脚本;另一个是运行 MapReduce 应用程序的 AM—MRAppMaster。
    注:RM 只负责监控 AM,并在 AM 运行失败时候启动它。RM 不负责 AM 内部任务的容错,
    任务的容错由 AM 完成。
    

    四、Yarn运行流程

    这里写图片描述

    步骤1 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
    
    步骤2 ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。
    
    步骤3 ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。
    
    步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
    
    步骤5 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。
    
    步骤6 NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
    
    步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
    
      在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。
    
    步骤8 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。
    

    五、Yarn调度器Scheduler

        理想情况下,我们应用对 Yarn 资源的请求应该立刻得到满足,但现实情况资源往往是
    有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到
    相应的资源。在 n Yarn  中,负责给应用分配资源的就是  Scheduler。其实调度本身就是一个
    难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn 提供了多种调度器
    和可配置的策略供我们选择。
    
        在 Yarn 中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair
    Scheduler。
    

    三种调度器:

    1.FIFO Scheduler

        FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个 先进先出队列,在进行
    资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给
    下一个分配,以此类推。
    

    这里写图片描述

        FIFO Scheduler 是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适
    用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。在共享集群
    中,更适合采用 Capacity Scheduler 或 Fair Scheduler,这两个调度器都允许大任务和小
    任务在提交的同时获得一定的系统资源。
    

    2.Capacity Scheduler

        Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能
    力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集
    群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直
    划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的
    调度是采用的是先进先出(FIFO)策略。
    

    这里写图片描述

    3.Fair Scheduler

        在 Fair 调度器中,我们不需要预先占用一定的系统资源,Fair 调度器会为所有运行的
    job 动态的调整系统资源。如下图所示,当第一个大 job 提交时,只有这一个 job 在运行,
    此时它获得了所有集群资源;当第二个小任务提交后,Fair 调度器会分配一半资源给这个
    小任务,让这两个任务公平的共享集群资源。
    
        需要注意的是,在下图 Fair 调度器中,从第二个任务提交到获得资源会有一定的延
    迟,因为它需要等待第一个任务释放占用的 Container。小任务执行完成之后也会释放自
    己占用的资源,大任务又获得了全部的系统资源。最终效果就是 Fair 调度器即得到了高的
    资源利用率又能保证小任务及时完成。
    

    这里写图片描述

    调度器的使用是通过 yarn-site.xml 配置文件中的
    yarn.resourcemanager.scheduler.class 参数进行配置的, 默认采用 Capacity
    Scheduler 调度器。
    

    假设我们有如下层次的队列:
    这里写图片描述

        下面是一个简单的 Capacity 调度器的配置文件,文件名为 capacity-scheduler.xml。
    在这个配置中,在 root 队列下面定义了两个子队列 prod 和 dev,分别占 40%和 60%的容量。
    需要注意,一个队列的配置是通过属性 yarn.sheduler.capacity.<queue-path>.<sub-
    property>指定的,<queue-path>代表的是队列的继承树,如 root.prod 队列,<sub-property>
    一般指 capacity 和 maximum-capacity。
    
    <configuration>
    <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>prod,dev</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.dev.queues</name>
    <value>mapreduce,spark</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.prod.capacity</name>
    <value>40</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.dev.capacity</name>
    <value>60</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.dev.maximum-capacity</name>
    <value>75</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.dev.mapreduce.capacity</name>
    <value>50</value>
    </property>
    <property>
    <name>yarn.scheduler.capacity.root.dev.spark.capacity</name>
    <value>50</value>
    </property>
    </configuration>
        dev 队列又被分成了 mapreduce 和 spark 两个相同容量的子队列。dev
    的 maximum-capacity 属性被设置成了 75%,所以即使 prod 队列完全空闲 dev 也不会占用全
    部集群资源,也就是说,prod 队列仍有 25%的可用资源用来应急。我们注意到,mapreduce
    和 spark 两个队列没有设置 maximum-capacity 属性,也就是说 mapreduce 或 spark 队列中
    的 job 可能会用到整个 dev 队列的所有资源(最多为集群的 75%)。而类似的,prod 由于没
    有设置 maximum-capacity 属性,它有可能会占用集群全部资源。
    
        关于队列的设置,这取决于我们具体的应用。比如,在 MapReduce 中,我们可以通过
    mapreduce.job.queuename 属性指定要用的队列。如果队列不存在,我们在提交任务时就
    会收到错误。如果我们没有定义任何队列,所有的应用将会放在一个 default 队列中。
    
        注意:对于 Capacity 调度器,我们的队列名必须是队列树中的最后一部分,如果我们
    使用队列树则不会被识别。比如,在上面配置中,我们使用 prod 和 mapreduce 作为队列名
    是可以的,但是如果我们用 root.dev.mapreduce 或者 dev. mapreduce 是无效的。
    
    展开全文
  • yarn详细入门教程

    万次阅读 多人点赞 2018-01-31 11:51:47
    Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm 面临的少数问题,即: 1.安装的时候无法保证速度/一致性 2...

    这里写图片描述

    简介

    Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm 面临的少数问题,即:

    1. 安装的时候无法保证速度/一致性
    2. 安全问题,因为 npm 安装时允许运行代码

    Yarn 同样是一个从 npm 注册源获取模块的新的 CLI 客户端。注册的方式不会有任何变化 —— 你同样可以正常获取与发布包。


    一、安装

    1.进入官方下载页面安装

    2.最简单的方法是运行:

    npm install -g yarn

    现在的yarn安装页面是这么说的:

    注意:通常情况下不建议通过npm进行安装。npm安装是非确定性的,程序包没有签名,并且npm除了做了基本的SHA1哈希之外不执行任何完整性检查,这给安装系统程序带来了安全风险。

    基于这些原因,强烈建议你通过最适合于你的操作系统的安装方法来安装yarn。

    以这种速度发展下去的话,如果yarn要宣布他们自己的registry,让开发者慢慢淘汰npm的话,我们一点都不会感到惊讶。

    安装成功后即可查看版本:

    yarn --version

    这里写图片描述


    二、初始化

    进入项目目录下并执行 yarn init

    yarn init

    这里写图片描述

    会在根目录下生成一个package.json,与npm类似具体不做解释,如下

    这里写图片描述


    三、添加依赖

    1. 添加包:yarn add [pkg-name] ,会自动安装最新版本,会覆盖指定版本号

    举例添加 jquery :yarn add jquery

    这里写图片描述

    node_modules下会生成 jquery 文件夹,里面便是 yarn 生成的依赖

    这里写图片描述


    2. 一次性添加多个包:yarn add [pkg-name1] [pkg-name2]

    举例添加 bootstrap 和 zepto:yarn add bootstrap zepto

    这里写图片描述

    成功后如下

    这里写图片描述


    3. 添加指定版本的包:yarn add [pkg-name]@ver

    举例添加 2.1.4版本的jquery:yarn add jquery@2.1.4

    这里写图片描述

    成功后如下

    这里写图片描述


    4. 将包更新到指定版本:yarn upgrade [pkg-name]@ver

    举例将 jquery从2.1.4更新到3.0.0版本:yarn upgrade jquery@3.0.0

    这里写图片描述

    成功后如下

    这里写图片描述


    5. 将包更新到最新版本:yarn upgrade --latest [pkg-name]

    举例将3.0.0版本的 jquery更新到最新版本:yarn upgrade --latest jquery

    这里写图片描述

    成功后如下

    这里写图片描述


    6. 删除包:yarn remove [pkg-name]

    举例删除 jquery:yarn remove jquery

    这里写图片描述

    成功后如下

    这里写图片描述


    7. 一次删除多个包:yarn remove [pkg-name1] [pkg-name2]

    举例删除 bootstrap 和 zepto:yarn remove bootstrap zepto

    这里写图片描述


    四、yarn.lock 自动锁定安装包版本

    Npm 有一个名为 shrinkwrap 的特性,其目的是在生产环境中使用时锁定包依赖。shrinkwrap 的挑战是每个开发者都必须手动运行 npm shrinkwrap 生成 npm-shrinkwrap.json 文件。

    使用 Yarn,则截然不同。在安装过程中,会自动生成一个 yarn.lock 文件,yarn.lock 会记录你安装的所有大大小小的。有点类似 PHP 开发者们所熟悉的 composer.lock。yarn.lock 锁定了安装包的精确版本以及所有依赖项,只要你不删除 yarn.lock 文件,再次运行 yarn install 时,会根据其中记录的版本号获取所有依赖包。有了这个文件,你可以确定项目团队的每个成员都安装了精确的软件包版本,部署可以轻松地重现,且没有意外的 bug。你可以把 yarn.lock 提交到本库里,这样其他签出代码并运行 yarn install 时,可以保证大家安装的依赖都是完全一致的。

    例如上面安装的bootstrap、jquery和zepto会在yarn.lock中有记录,如下图:

    这里写图片描述

    这里新建一个 yarn_demo2 的文件夹,并将 package.jsonyarn.lock 文件从 yarn_demo 文件夹中复制过来,如下图:

    这里写图片描述

    进入yarn_demo2 文件夹 执行 yarn 命令,即可一键下载 yarn.lock 中记录的依赖包,相当方便快捷,值得你拥有~

    这里写图片描述

    这里写图片描述


    五、yarn和npm命令对比

    这里写图片描述

    至于bower与npm,其用法也是大同小异,但大佬给出的建议是:
    这里写图片描述


    这里写图片描述
    end ~

    展开全文
  • YARN详解

    千次阅读 2019-04-27 16:19:53
    今天老大给培训了YARN,讲的非常好,特要到ppt并结合网上一些文章记录一下。 一、YARN基本思想 YARN是Hadoop2.0中的资源管理系统,它的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要...
  • 方法一:使用安装包安装 ... 方式二:使用npm安装 npm i yarn -g ...-g:全局安装(global),使用 -g 或 --global ...输入yarn -version 可以看到版本号,说明安装成功了。...yarn / yarn install 等同于npmins...
  • Yarn包管理工具使用总结

    万次阅读 2017-04-08 19:08:10
    上年10月份, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm 。由于当时还不是很成熟,所以自己便仅仅只是浅尝辄止。随着时间的推移,Yarn也越来越完善,很多人也已经慢慢在实际项目中开发者投入使用。 ...
  • yarn uninstall global yarn global remove https://yarnpkg.com/lang/en/docs/cli/remove/ https://yarnpkg.com/en/docs/cli/global global is an command, not a flag # OK $ yarn global remove @vue/cl...
  • yarn 和 npm 全局移除包

    千次阅读 2019-05-16 16:41:39
    https://blog.csdn.net/weixin_38704338/article/details/86688424 npm uninstall -g vue-cli npm install -g @vue/cli ... yarn global remove vue-cli ... yarn global add @vue/cli
  • 卸载 yarn

    万次阅读 2018-07-06 17:02:37
    如果不想使用yarn , 可通过 命令: $ yarn global bin 查询到存放地址之后 到对应目录删除掉yarn就可以了
  • yarn使用简介

    万次阅读 2019-03-11 22:48:58
    yarn简介: &nbsp;&nbsp;&nbsp;&nbsp;yarn是facebook发布的一款取代npm的包管理工具。 &nbsp;&nbsp;&nbsp;&nbsp;yarn的特点: 速度超快。 Yarn 缓存了每个下载过的包,所以再次...
  • 一文看懂npm、yarn、pnpm之间的区别

    万次阅读 2017-05-12 07:21:42
    原文:Understanding differences between npm, yarn and pnpm 作者:Alex Kras 翻译:雁惊寒 本文作者对比了当前主流的包管理工具npm、yarn、pnpm之间的区别,并提出了合适的使用建议,以下为译文:NPMnpm是...
  • yarn的安装和使用

    万次阅读 多人点赞 2018-08-02 10:45:41
    yarn的简介: Yarn是facebook发布的一款取代npm的包管理工具。 yarn的特点: 速度超快。 Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。...
  • Yarn

    万次阅读 2017-11-20 14:48:16
    应用场景当部署好hadoop集群后,搭建了YARN集群,开启了hadoop的HDFS和YARN服务,访问主节点IP和8088端口的YARN监控界面,发现这个All Applications界面中的开始执行时间和结束执行时间不对,应该往后加8个小时才对...
  • YARN

    千次阅读 2018-03-27 23:07:43
    1. 什么是YARN Yet Another Resource Negotiator(另一种资源协调者),是一种新的Hadoop**资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度**。 2. YARN架构 ResurceManager...
  • yarn

    千次阅读 2015-01-05 09:37:10
    http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 ...
  • YARN

    千次阅读 2020-02-18 17:55:24
    YARN 是 分布式资源管理系统 架构图 a.png #组件组成: Client, ResourceManager, ApplicationMaster, NodeManager, Container #各组件描述: Client: 负责提交应用程序 ResourceManager: 全局的资源管理器...
  • yarn

    千次阅读 2016-12-06 15:53:36
    npm 存在的问题  安装依赖花费的时间成本 npm客户端在安装依赖包时会自动执行其中的脚本,有安全性问题 为了确保项目开发人员所安装的依赖包版本相同,需要使用...yarn 介绍:  是一款新的包管理器,将
  • yarn

    千次阅读 2019-05-24 10:45:49
    yarn的特点:快,安全,可靠 速度超快。 Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。 超级安全。 在执行代码之前,Yarn 会通过算法...

空空如也

1 2 3 4 5 ... 20
收藏数 138,647
精华内容 55,458
关键字:

Yarn