如何使用 AWS CLI 创建和运行 EMR 集群

news2024/9/20 16:31:03

为初学者提供清晰易懂的教程

为初学者提供清晰易懂的教程 Apache Spark 和 AWS EMR 上的 Spark 集群

添加图片注释,不超过 140 字(可选)

欢迎来到雲闪世界。Spark 被认为是“大数据丛林之王”,在数据分析、机器学习、流媒体和图形分析等领域有着广泛的应用。 Spark 有 4 种不同的模式:(1)本地模式:Spark 在单台机器(例如笔记本电脑)上用于学习语法和设计项目原型; 其他 3 种模式是集群管理器模式:(2)独立模式用于在私有集群上工作;(3)YARN和(4)Mesos 模式用于与团队共享集群。 在独立模式下,Spark 部署在私有集群上,例如 Amazon Web Service AWS 上的 EC2。 Spark 集群包含多台机器。 要在每台机器上使用 Spark 代码,需要手动下载并安装 Spark 及其依赖项。 借助AWS 的Elastic Map Reduce 服务 EMR,一切都准备就绪,无需任何手动安装。 因此,我们使用 EMR 服务来设置 Spark 集群,而不是使用 EC2。

本教程的动机

我确实花了很多时间努力使用AWS 命令​​行界面 (AWS CLI)在 EMR 上创建、设置和运行 Spark 集群。虽然我找到了一些关于此任务的教程或通过课程提供的教程,但大多数教程都很难理解。有些教程不够清晰;有些教程错过了一些关键步骤;或者假设学习者已经了解一些关于 AWS、CLI 配置等的先验知识。在成功设置并运行集群后,我意识到这个任务 实际上并不复杂;我们应该轻松完成它。我不想再看到人们为此苦苦挣扎。因此,我决定制作本教程。

本文假设您 已经具备一些 Spark、PySpark、命令行环境和 AWS 的工作知识。具体来说,本文适合那些知道为什么需要创建 Spark 集群的读者 :)。有关 Spark 的更多信息,请阅读此处的参考资料。

这是一个很长很详细的教程。简而言之,所有步骤包括:

  1. 创建 AWS 账户

  2. 创建 IAM 用户

  3. 在 EC2 中设置凭证

  4. 创建 S3 存储桶来存储集群生成的日志文件

  5. 安装 AWS CLI 包awscli

  6. 设置 AWS CLI 环境(创建凭证和配置文件)

  7. 创建 EMR 集群

  8. 允许 SSH 访问

  9. 与集群主节点建立 SSH 连接

  10. 开始使用 EMR 集群

请随意跳过您已经知道的任何步骤。

我很高兴你们中的许多人都觉得本教程很有用。我很荣幸与大家讨论您在 EMR 创建过程中遇到的任何问题。根据我们的一些讨论,以下是本教程的一些更新。

一些注意事项: 1. 对于本教程,应使用AWS 常规账户,而不是 AWS Educate 账户。AWS 常规账户为用户提供对 AWS 资源和 IAM 角色的完全访问权限;而教育账户则具有一些有限的访问权限。 2. 您有责任监控您使用的 AWS 账户的使用费用。每次完成工作后,请记住终止集群和其他相关资源。我已经多次实施了 EMR 集群;本教程在 AWS 上应该不会产生任何费用或费用低于 0.5 美元。 3. AWS 控制台和 Udacity 内容会随时间而变化/升级,因此我建议您搜索 AWS 网站和 Udacity 课程以获取任何更新的教程/指南。 4.本教程使用Chrome和Mac OS X制作,在Windows平台上应该不会有太大差别。

在 AWS CLI 上创建、设置和运行 EMR 集群的具体步骤

步骤 1:创建 AWS 账户

  • 如果您还没有常规 AWS 账户,请创建一个。AWS网站上的说明非常容易理解。

  • 登录您的 AWS 账户。

  • (可选)为了提高您的 AWS 资源的安全性,您可以按照此处的简单 AWS 指南配置并启用虚拟多重身份验证 (MFA)设备。

步骤 2:创建 IAM 用户

在 AWS 控制台中,单击Service,输入“IAM”转到 IAM 控制台:

添加图片注释,不超过 140 字(可选)

=> 选择User=> Add user=> 输入用户名例如“emr_user”,选择Access type为程序访问,然后Next: Permissions。

添加图片注释,不超过 140 字(可选)

单击Attach existence policies directly页面,输入并设置权限为Administrator Access,然后选择Next: Tags。

添加图片注释,不超过 140 字(可选)

跳过此标签页并选择Next: Review=> 选择Create user=> 保存用户名、访问密钥和秘密访问密钥。

添加图片注释,不超过 140 字(可选)

我们将使用此 IAM 用户以及访问和密钥通过 AWS CLI 设置和访问 AWS。

步骤 3:在 EC2 中设置凭证

在 AWS 控制台中,单击“服务”,输入“EC2”以转到 EC2 控制台

在左侧面板中Key Pairs选择“网络和安全” => 选择Create key pair

添加图片注释,不超过 140 字(可选)

输入密钥对的名称,例如“emr-cluster”,文件格式:pem => 选择Create key pair。完成此步骤后,将自动下载一个 .pem 文件,本例中文件名为emr_cluster.pem。我们将在步骤 6 中使用此文件。

添加图片注释,不超过 140 字(可选)

步骤 4(可选):创建 S3 存储桶来存储集群生成的日志文件

  • 这将是用于存储我们将要创建和设置的集群所生成的日志文件的 AWS 存储桶。如果我们不指定 S3 存储桶,则在创建和运行 EMR 集群时将自动为我们创建一个 S3 存储桶。

  • 在 AWS 控制台中,单击Service,键入“S3”并转到 S3 控制台 => 选择Create bucket=> 输入存储桶的名称(例如“s3-for-emr-cluster”),选择您喜欢的区域,例如“美国西部(俄勒冈州)”。保留其他选项的默认设置以创建存储桶。

添加图片注释,不超过 140 字(可选)

  • 请注意,为了获得最佳性能并避免任何错误,请记住对所有工作使用相同的 AWS 区域/子区域(在 S3、EC2、EMR 等上)

步骤 5:安装 awscli 包

  • 在终端上,awscli使用命令安装pip install awscli

  • 输入以下命令aws help检查安装是否正确,如果输出如下则表示安装成功:

添加图片注释,不超过 140 字(可选)

步骤 6:设置 AWS CLI 环境(创建凭证和配置文件)

此步骤将帮助我们使用上面第 2 步中获得的用户凭证自动访问 awscli 环境上的 AWS。

此设置有两种方法:手动创建凭据和配置文件(方法 1)或使用命令创建这些文件aws(方法 2)。您可以使用其中任何一种。

方法 1:

credentials按照如下方式在终端上创建文件(您可以使用nano或您选择的任何其他文本编辑器):

  • 在终端上,导航到所需文件夹(通常是根目录)并创建一个隐藏目录,例如aws:

$mkdir .aws(句点表示隐藏目录)

  • 更改至该目录$cd .aws

  • credentials使用 nano创建文件:$nano credentials输入文件内容credentials如下(将密钥“EXAMPLE_ID”和密钥“EXAMPle_Key”替换为步骤 2 中为用户“emr-user”生成的密钥):

添加图片注释,不超过 140 字(可选)

  • 使用Ctrl + X,然后Y保存文件并退出nano。

创建配置文件:

  • $nano config 按如下方式输入文件内容config(我们使用的区域与步骤 4 中创建 S3 存储桶所使用的区域相同):

[默认] 区域 = us-west-2

  • 使用Ctrl + X,然后Y保存文件并退出nano。

方法 2:

在终端上,输入$aws configure所需的信息,如下所示:

AWS 访问密钥 ID [无]:(输入您在步骤 2 中创建的用户“emr-user”的访问密钥) AWS 秘密访问密钥 [无]:(输入您在步骤 2 中创建的用户“emr-user”的秘密密钥) 默认区域名称 [无]:us-west-2(与步骤 4 中使用的区域相同) 默认输出格式 [无]:

这 2 个文件将自动创建在隐藏文件夹 .aws 中,通常位于根目录下,如下所示:

  • $cd ~/.aws

  • 键入$ls 以验证这两个文件是否存在。信息应与方法 1 中的信息相同,我们可以通过键入以下内容来检查内容:

  • $cat credentials

  • $cat config

准备步骤3中生成的.pem文件

要连接到集群,我们需要在步骤 3 中创建的 .pem 文件。将我们在步骤 3 中下载的 .pem 文件移动到项目所需的位置。对我来说,我将其放在与位于根目录的隐藏文件夹 .aws 中的凭证和配置文件相同的位置~/.aws/emr-cluster.pem)

$ mv ~/Downloads/emr-cluster.pem 。

  • 当使用此 .pem 文件设置 ssh 时,如果 .pem 文件过于开放,则会出现错误。警告的示例如下:“ Permissions 0644 for '~/.aws/emr-cluster.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignore. ”

  • 在这种情况下,我们需要使用以下命令更改此.pem 文件的权限:sudo chmod 600 ~/.aws/emr-cluster.pem

验证我们是否成功安装了 awscli 包并设置了凭证

要验证我们是否成功安装 awscli 并设置凭证,请输入一些 aws 命令,例如

  • 列出所有 IAM 用户:$aws iam list-users

  • 列出 s3 中的所有存储桶:$aws s3 ls此命令将列出我们在 AWS 中拥有的所有 s3 存储桶:

添加图片注释,不超过 140 字(可选)

步骤 7:创建 EMR 集群

现在我们准备在终端上创建我们的 EMR 集群。在终端上,输入以下命令:

 
 

aws emr create-cluster --name test-emr-cluster --use-default-roles --release-label emr-5.28.0 --instance-count 3 --instance-type m5.xlarge --applications Name=JupyterHub Name=Spark Name=Hadoop --ec2-attributes KeyName=emr-cluster --log-uri s3://s3-for-emr-cluster/

EMR脚本组件的解释:

  • --name:集群的名称,在本例中为“test-emr-cluster”

  • --use-default-roles:使用默认服务角色 (EMR_DefaultRole) 和实例配置文件 (EMR_EC2_DefaultRole) 获得访问其他 AWS 服务的权限

  • --release-label emr-5.28.0:使用EMR版本5.28.0构建集群

  • --instance-count 3和--instance-type m5.xlarge:构建 1 个主节点和 2 个 m5.xlarge 类型的核心节点

  • --applications Name=JupyterHub Name=Spark Name=Hadoop:在此集群上安装 JupyterHub、Spark 和 Hadoop

  • --ec2-attributes KeyName=emr-cluster:配置 Amazon EC2 实例配置,KeyName 是我们在步骤 3(Set up credentials in EC2并获取 .pem 文件)中设置的 EC2 实例名称。在本例中,名称为emr-cluster。

  • --log-uri s3://s3-for-emr-cluster/:指定要存储日志文件的 S3 存储桶。在本例中,S3 存储桶为“s3-for-emr-cluster”。此字段是可选的(如步骤 4 中所述)。

  • 由于 EMR 集群价格昂贵,我们可以选择--auto-terminate在集群上的所有操作完成后自动终止集群。要使其工作,我们还需要在命令中使用 指定引导操作--bootstrap-actions Path="s3://bootstrap.sh"。当您使用自动终止时,集群将启动,运行您指定的任何引导操作,然后执行通常输入数据、处理数据然后生成和保存输出的步骤。步骤完成后,Amazon EMR 会自动终止集群 Amazon EC2 实例。如果我们不设置任何引导操作,我们应该删除此字段。可以在AWS 站点上详细找到有关引导的参考。

创建 EMR 集群后的期望输出是:

使用 ClusterId 检查集群的状态和信息(j- EXAMPLECLUSTERID)使用以下命令:

aws emr describe-cluster --cluster-id j-EXAMPLECLUSTERID

我们应该等待几分钟直到集群可用(状态变为“可用”)然后再继续下一步。

***更新 1:如果您在创建 Amazon EMR 集群时遇到问题"EMR_DefaultRole is invalid" or "EMR_EC2_DefaultRole is invalid" error,则可能必须删除角色和实例配置文件;然后按照此说明重新创建角色。

***更新 2:为了使集群可供 EMR 上的笔记本使用,我们可能需要在 —ec2-attributes 中包含 SubnetIds:

aws emr create-cluster --name test-emr-cluster --use-default-roles --release-label emr-5.28.0 --instance-count 3 --instance-type m5.xlarge --applications Name=JupyterHub Name=Spark Name=Hadoop --ec2-attributes SubnetIds=subnet-YOURSUBNET, KeyName=emr-cluster --log-uri s3://s3-for-emr-cluster/

如何查找 SubnetIds?

单击EMR 控制台上的VPCSubnets选项卡,从列表中进行选择。

添加图片注释,不超过 140 字(可选)

对于初学者来说,另一种安全的方法:使用 AWS 控制台创建类似的 EMR 集群。然后查看该集群的“摘要”页面上的“网络和硬件”会话以查看子网 ID:

添加图片注释,不超过 140 字(可选)

您可以通过AWS 上的 VPC 仪表板访问子网。有关子网和 VPC 的更多信息,请参阅AWS 站点。

步骤8:允许SSH访问

在 AWS 控制台中,单击Service,输入 EMR,然后转到 EMR 控制台。

添加图片注释,不超过 140 字(可选)

=> 选择Clusters=> 在列表中选择集群的名称,在本例中为test-emr-cluster

添加图片注释,不超过 140 字(可选)

在Summary标签上,向下滚动以查看部分Security and access,选择Security groups for Master链接

选择Security group ID​ElasticMapReduce-master

添加图片注释,不超过 140 字(可选)

向下滚动到Inbound rules,Edit inbound rules=> 为了安全起见,删除任何 SSH 规则(如果有),然后选择Add Rule=> 选择类型:SSH,协议为 TCP,端口范围为 22 => 对于源,选择我的 IP => 选择Save。

步骤 9:与集群的主节点创建 SSH 连接

方法 1:

  • 在终端上,使用以下命令检查集群的 ID

aws emr list-clusters

  • 使用此命令连接到集群。请记住指定 .pem 文件的正确路径:

aws emr ssh --cluster-id j-EXAMPLECLUSTERID --key-pair-file ~/.aws/emr-cluster.pem

如果我们看到如下所示的带有 EMR 字母的屏幕,那么恭喜您,您已成功使用 AWS CLI 创建、设置和连接到 EMR 集群 !!!!

添加图片注释,不超过 140 字(可选)

使用命令关闭与集群的连接$logout。

方法 2:

  • 在 AWS 控制台中,单击Service,输入 EMR,然后转到 EMR 控制台。

  • 选择Clusters=> 单击列表上的集群名称,在本例中test-emr-cluster=> 在“摘要”选项卡上,单击链接“使用 SSH 连接到主节点”。

添加图片注释,不超过 140 字(可选)

  • 复制弹出窗口上显示的命令并将其粘贴到终端上。

  • 记得将 ~/emr-cluster.pem 替换为我们设置的私钥文件 (.pem) 的位置和文件名。例如

ssh -i ~/.aws/emr-cluster.pem hadoop@ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com

如果我们看到带有 EMR 信件的屏幕,那么恭喜您,您已成功使用 AWS CLI 创建、设置并连接到 EMR 集群!!!!

现在您可以开始使用 EMR 集群

创建一个简单的 Spark 任务,例如,创建一个包含时间类型字符串的 Spark 数据框,然后将该列转换为不同的格式。

在集群终端上,创建文件test_emr.py

 
 

$nano 测试_emr.py

将此脚本复制并粘贴到 test_emr.py

 
 

### 文件“test_emr.py”的内容从 pyspark.sql 导入 SparkSession,功能与 F 相同if __name__ == "__main__": """ 提交给spark集群的脚本示例 """ spark = SparkSession.builder.getOrCreate() df = spark.createDataFrame([('01/Jul/1995:00:00:01 -0400', ),('01/Jul/1995:00:00:11 -0400',),('26/Jul/1995:17$ ('19/Jul/1995:01:56:43 -0400',), ('11/Jul/1995:12:50:18 -0400',)], ['TIME']) df = df.withColumn("date", F.unix_timestamp(F.col('TIME'), 'dd/MMM/yyyy:HH:mm:ss Z').cast('timestamp')) # 显示数据框 df.show() ####停止spark,否则程序将被挂起 spark.stop()

该文件的内容在nano文本编辑器中显示:

添加图片注释,不超过 140 字(可选)

使用以下命令在集群终端上提交脚本:

 
 

$spark-submit --master yarn ./test_emr.py

当任务运行时,终端上可能会出现大量信息,这在 Spark 中很正常。输出可以在信息日志中找到:

添加图片注释,不超过 140 字(可选)

恭喜!你成功了!

当不再使用集群时,请记得终止它。

键入logout以退出集群。然后使用以下命令终止集群:

 
 

$a ws emr 终止集群--cluster-id j-EXAMPLECLUSTERID

请注意,我们可以使用 AWS CLI 命令轻松地再次创建具有相同配置的集群AWS CLI export,在 EMR 控制台上选择已终止的集群“test-emr-cluster”时单击选项卡即可找到该命令:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

我希望大家不再需要费力使用 AWS CLI 在 EMR 上创建、设置和运行 Spark 集群。如果您遇到任何问题或发现本教程有任何错误,请告诉我。

感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)

订阅频道(https://t.me/awsgoogvps_Host) TG交流群(t.me/awsgoogvpsHost)

#aws CLI cheat sheet #aws cli Debug #aws cli get S3 object #aws cli login with access key #aws cli to download from s3 #aws command line download from s3 #homebrew install aws cli#aws sdk get caller identity #aws s3 cli get object #aws s3 put object#aws s3 headobject#aws s3 put-object #aws s3 sync vs cp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DataWhale AI夏令营第四期-魔搭生图task1学习笔记

根据教程提供的链接,进入相应文章了解魔搭生图的主要工作是通过对大量图片的训练,生成自己的模型,然后使用不同的正向、反向提示词使模型输出对应的图片 1.官方跑baseline教程链接:Task 1 从零入门AI生图原理&实践 2.简单列举一下赛事的…

【K8S】K8S架构及相关组件

文章目录 1 K8S总体架构2 相关组件2.1 控制面板组件2.2 节点组件2.3 附加组件 写在最后 1 K8S总体架构 K8S,全称Kubernetes,是一个开源的容器部署和管理平台,由Google开发,后捐献给云原生计算基金会(CNCF)…

algorithm算法库学习之——修改序列的操作2

algorithm此头文件是算法库的一部分。本篇介绍修改序列的操作函数。(2) 修改序列的操作 fill 将一个给定值复制赋值给一个范围内的每个元素 (函数模板) fill_n 将一个给定值复制赋值给一个范围内的 N 个元素 (函数模板) generate 将相继的函数调用结果赋…

Debezium日常分享系列之:Debezium UI 的状态

Debezium日常分享系列之:Debezium UI 的状态 一、下一阶段工作二、设计新的UI三、目前阶段四、更多内容 虽然Debezium的UI是我们愿景的重要组成部分,但开发与Kafka Connect紧密绑定的UI并不是正确的方向。因此,决定冻结当前Web UI项目的开发。…

红酒与高尔夫:球场上的优雅选择

在绿茵茵的高尔夫球场上,每一次挥杆都充满了力量与优雅。而当这优雅的运动与洒派红酒(Bold & Generous)的醇厚邂逅,一场视觉与感官的盛宴便悄然上演。今天,就让我们一起走进这个充满魅力的世界,感受红酒…

【动态规划】1、不同路径II+2、三角形最小路径和

1、不同路径II&#xff08;难度中等&#xff09; 该题对应力扣网址 AC代码 只会写简单的if-else class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//1、定义子问题//2、子问题递推关系//3、确定dp数组的计算顺序…

快速入手mybits(xml配置文件版本)

目录 Blue的留声机 1、快速入手 第一步&#xff1a;导依赖 第二步&#xff1a;配置mybits-config.xml文件 第三步&#xff1a;编写sql映射文件BlogMapper.xml 第四步&#xff1a;编写运行文件&#xff0c;执行sql 2、Mapper代理开发&#xff08;企业中最常用&#xff09;…

GraphRAG

GraphRAG 与基线 RAG RAG 检索增强生成 &#xff08;RAG&#xff09; 是一种使用真实世界信息改进 LLM 输出的技术。这种技术是大多数基于 LLM 的工具的重要组成部分&#xff0c;大多数 RAG 方法使用向量相似性作为搜索技术&#xff0c;我们称之为基线 RAG。 RAG 技术在帮助 …

立即升级你的前端技能!跟随这份Vue3项目搭建教程,从零基础到专业,一步步掌握最新Web开发技术,打造响应快速、界面优雅的现代网站。

全能开发套餐&#xff0c;轻松打造现代网站&#xff01;Vue3携手Vite带来开发新体验&#xff0c;结合Axios、Pinia、Element Plus实现功能与美观并重&#xff0c;TailwindCSS与DaisyUI提供设计灵活性&#xff0c;Router 4处理页面导航。从前端到后端&#xff0c;一站式解决&…

必看!全网最详细的仓库管理办法!

如今仓库管理的优劣直接影响着企业的运营效率和成本控制。一个高效、有序的仓库能够确保货物的及时供应&#xff0c;减少库存积压&#xff0c;提高客户满意度&#xff1b;而一个混乱、无序的仓库则可能导致货物丢失、损坏&#xff0c;延误交货&#xff0c;甚至影响企业的声誉和…

【宠粉赠书】Python数据可视化:科技图表绘制

为了回馈粉丝们的厚爱&#xff0c;今天小智给大家送上一套数据可视化学习的必备书籍——《Python数据可视化&#xff1a;科技图表绘制》。下面我会详细给大家介绍这本书&#xff0c;文末留有领取方式。 图书介绍 《Python数据可视化&#xff1a;科技图表绘制》结合编者多年的数…

顶象文字点选模型识别

注意&#xff0c;本文只提供学习的思路&#xff0c;严禁违反法律以及破坏信息系统等行为&#xff0c;本文只提供思路 如有侵犯&#xff0c;请联系作者下架 文字点选如何训练&#xff0c;之前的文章说了很多遍了&#xff0c;这里只放现成的模型供查看&#xff0c;有需要成品联系…

datax做增量导入数据到hive:mysql>hive

为什么要做增量导入? 例如mysql表中的数据导入hive&#xff0c;如果第一天抽取了mysql中t_user表中的全部数据&#xff0c;则第二天只需要抽取新增数据即可&#xff01; 增加导入是利用where 条件查询实现的&#xff0c;查询条件一般是自增的id或者时间列 下面演示基于时间列的…

sns.regplot()用法

概念 seaborn.regplot&#xff08;&#xff09;函数可以在两个变量之间绘制一个线性回归模型&#xff0c;可以输出线性回归线以及数据的散点图。 参数解释 seaborn.regplot(dataNone, xNone, yNone, x_estimatorNone, x_binsNone, x_cici, scatterTrue, fit_regTrue, ci95, …

s7_200smart采集遇到的问题

对s7_200smart(plc设备不太熟悉)第一次使用了modbus协议来采集数据是采集不到bcd码类型的数据&#xff0c;modbus里面不支持这个数据类型。采用西门子类型来设置采集数据也遇到不少问题&#xff1f; 第一&#xff1a;采集速率不可以太高&#xff0c;最好1秒一次&#xff0c;通…

YOLOv8改进 | 主干网络 | 用EfficientNet卷积替换backbone【教程+代码 】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

我们终究会懂得自己并非无所不能

今天参加“全民健身日”公开水域游泳比赛&#xff0c;第一次在游泳上有一种无力感。 以前以为自己游泳怎么都不会累&#xff0c;大不了踩踩水&#xff0c;或者在水上漂着。今天竟然途中可耻地抱着“跟屁虫”休息了。 是不是承认自己的无能&#xff0c;也是一种进步&#xff1f;…

【简历】苏州某大学211硕士:25届Java简历指导通过率低

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份25届211硕士同学的Java简历&#xff0c;这个学历他的目标必然是冲大厂。 不过他的简历几乎没什么提问点&#xff0c;211在大厂…

1.2 C 语言环境:MinGW 与 CLion 的安装与配置

目录 1 C 语言的由来 2 安装 MinGW 编译器 3 Windows 中安装 CLion 开发环境 3.1 安装 CLion 开发环境 3.2 运行试用 30 天 3.3 新建项目​ 3.4 汉化 4 Mac 中安装 Clion 开发环境 4.1 安装 CLion 开发环境 4.2 运行试用 30 天 4.3 新建项目 ​4.4 汉化 5 向日葵的…

【Linux】系列入门摘抄笔记-6-tar打包压缩和vim编辑器

打包、压缩和解压命令 压缩文件一定要严格区分扩展名 tar 打包程序 tar [主选项+辅选项] [包名] [目标文件或目录]描述:tar命令是Linux下最常用的打包程序。使用tar命令打出来的包称为tar包,因为tar包文件的后缀通常是“.tar”。 每条tar命令只能有一个主选项,而辅助选项…