yarn是一款专业的工具,帮助用户进行资源查找,不用担心卡顿延迟的问题,轻松查找无压力,让用户更好的进行资源的查询,轻松找到自己所需的工具。
yarn和npm的区别?
安装速度:Yarn采用并行下载和缓存等优化策略,通常比npm更快速。
离线模式:Yarn无需互联网链接就能安装本地缓存的依赖项,提供了离线模式,而npm则无法实现这一功能。
锁定依赖版本:Yarn在安装依赖包时会自动生成一个lock文件,该文件记录了项目中每一个依赖包的确切版本,可以保证项目的稳定性。而npm需要手动生成shrinkwrap文件。
命令名称:Yarn改变了一些npm的命令名称,使语义更加清晰。
安全性:Yarn在包的下载和安装过程中更加注重安全性,通过yarn.lock锁定依赖的版本,确保在不同环境下安装的是相同依赖的版本。
生态系统:npm是Node.js的默认包管理工具,拥有庞大的用户基础和生态系统。
1、离线模式 Offline Mode
如果你已经安装了一个包,您可以再安装一遍(在其他地方)没有互联网连接。—相对于npm的重新在线下载方式的改进
2、确定性的 Deterministic
相同的依赖相同的方式将被安装在每台机器无论安装顺序。
3、网络性能 Network Performance
yarn 高效队列请求和避免请求瀑布为了最大化网络利用率。
大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。
老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。
集中式调度器(Monolithic Scheduler)的特点是,资源的调度和应用程序的管理功能全部放到一个进程中完成,开源界典型的代表是MRv1 JobTracker的实现。这样设计的缺点很明显,扩展性差:首先,集群规模受限;其次,新的调度策略难以融入到现有代码中,比如之前仅支持MapReduce作业,现在要支持流式作业,而将流式作业的调度策略嵌入到中央调度其中是一项很难的工作。
为了克服集中式调度器的不足,双层调度器是一种很容易被想到的解决之道,它可看作是一种分而治之的机制或者是策略下放机制:双层调度器仍保留一个经简化的集中式资源调度器,但具体任务相关的调度策略则下放到各个应用程序调度器完成。这种调度器的典型代表是Mesos。Mesos调度器由两部分组成,分别是资源调度器和框架(应用程序)调度器,其中,资源调度器负责将集群中的资源分配给各个框架(应用程序),而框架(应用程序)调度器负责将资源进一步分配给内部的各个任务,用户很容易将一种框架或者系统接入Mesos.
双层调度器的特点是:各个框架调度器并不知道整个集群资源使用情况,只是被动地接受资源;资源调度器仅将可用的资源推送给各个框架,而由框架自己选择是使用还是拒绝这些资源;一旦框架接受到新资源,再进一步将资源分配给其内部的任务,进而实现双层调度。然而这种调度器也是有缺点,主要表现在以下两个方面:1.各个框架无法知道整个集群的实时资源使用情况;采用悲观锁,并发粒度小。
轻松进行匹配使用,满足用户的需求。