Yarn究竟是什么?探索其定义与用途

Yarn是Facebook发布的一个快速、安全且可靠的开源JavaScript包管理工具,用于替代npm。

Yarn 是一个由 Facebook 开发的快速、可靠且安全的依赖管理工具,它主要用于 JavaScript 项目,Yarn 解决了 npm(Node.js 的默认包管理器)在处理大量包时速度慢和依赖管理混乱的问题,以下是关于 Yarn 的详细介绍:

Yarn究竟是什么?探索其定义与用途

一、Yarn 的特点

1、快速安装:Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载,同时利用并行下载以最大化资源利用率,因此安装速度更快。

2、安全性高:在执行代码之前,Yarn 会通过算法校验每个安装包的完整性,确保软件包的安全性。

3、可靠性强:使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。

4、确定性安装:Yarn 使用锁定文件来确保 node_modules 目录在所有开发环境中具有完全相同的结构,避免了“依赖地狱”的问题。

5、兼容性好:Yarn 与 npm 和 bower 注册表兼容,可以轻松迁移现有的 npm 项目到 Yarn。

二、Yarn 的基本架构

YARN 主要由以下组件构成:

1、ResourceManager (RM):处理客户端请求、启动/监控 ApplicationMaster、监控 NodeManager、资源分配与调度。

2、NodeManager (NM):单个节点上的资源管理,处理来自 ResourceManager 和 ApplicationMaster 的命令。

3、ApplicationMaster (AM):为应用程序申请资源,并分配给内部任务,负责任务监控与容错。

4、Container:对任务运行环境的抽象,封装了 CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

三、Yarn 的工作机制

YARN 的基本思想是将资源管理和作业调度/监视的功能划分为单独的守护进程,具体流程如下:

1、Mr 程序提交到客户端所在的节点。

2、YarnRunner 向 Resourcemanager 申请一个 Application。

3、RM 将该应用程序的资源路径返回给 yarnrunner。

4、该程序将运行所需资源提交到 HDFS 上。

Yarn究竟是什么?探索其定义与用途

5、程序资源提交完毕后,申请运行 mrAppMaster。

6、RM 将用户的请求初始化成一个 task。

7、其中一个 NodeManager 领取到 task 任务。

8、该 NodeManager 创建容器 Container,并产生 MRAppmaster。

9、Container 从 HDFS 上拷贝资源到本地。

10、MRAppmaster 向 RM 申请运行 maptask 资源。

11、RM 将运行 maptask 任务分配给另外两个 NodeManager,另两个 NodeManager 分别领取任务并创建容器。

12、MR 向两个接收到任务的 NodeManager 发送程序启动脚本,这两个 NodeManager 分别启动 maptask,maptask 对数据分区排序。

13、MrAppMaster 等待所有 maptask 运行完毕后,向 RM 申请容器,运行 reduce task。

14、reduce task 向 maptask 获取相应分区的数据。

15、程序运行完毕后,MR 会向 RM 申请注销自己。

四、Yarn 的安装和使用

1. 安装步骤

确保系统已安装 Node.js,因为 Yarn 是建立在 Node.js 之上的。

通过 npm 全局安装 Yarn:npm install -g yarn

验证安装是否成功:yarn --version

Yarn究竟是什么?探索其定义与用途

2. 基本使用

创建新项目yarn init,这个命令会引导您创建一个新的 package.json 文件。

添加依赖yarn add [package_name],将一个新的包添加到您的项目依赖中。

更新依赖yarn upgrade [package_name],更新项目中的某个包。

移除依赖yarn remove [package_name],从您的项目中移除一个包。

安装项目依赖yarnyarn install,这将安装 package.json 中列出的所有依赖。

五、Yarn 与 NPM 的比较

尽管 NPM 是最早的 JavaScript 包管理器之一,但 Yarn 在性能和安全性方面带来了改进,Yarn 的锁定文件(yarn.lock)确保了依赖的一致性,而它的缓存机制则显著加快了安装速度,Yarn 还擅长在包装管理过程中提供更清洁的输出和更少的噪音。

六、常见问题解答(FAQs)

Q: Yarn 是否完全兼容 npm 的包?

A: 是的,Yarn 可以使用 npm 的注册表,因此几乎所有 npm 的包都可以通过 Yarn 安装。

Q: 如何解决 Yarn 安装速度慢的问题?

A: 确保您的 Yarn 版本是最新的,并尝试使用更快的网络连接,Yarn 的缓存机制也可以在一定程度上提高速度。

Yarn 作为一个现代化的包管理器,为 JavaScript 社区带来了性能和安全性的提升,无论您是刚入门的新手还是资深开发者,掌握 Yarn 都将对您的项目开发有所帮助,随着 JavaScript 生态系统的不断发展,Yarn 也在不断进化,以满足开发者的需求。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1258485.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-11-01 18:07
下一篇 2024-09-15 09:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入