【作业】上辈子我是月入十万的程序员大佬 ,可惜老板陷害, 女友背叛 ,这一次 属于我的一切都要拿回来 ,速点进来听我的发财经

42 阅读9分钟

(1)mapreduce的运行框架
有五个步骤:(Map,Sort,Combine,Shuffle,Reduce)

map和reduce是最重要的两个步骤

  • Map步骤是在不同的机器上独立且同步运行的。主要目的是要把数据转换为key-value的形式
  • Reduce步骤是做聚合运算,它是在不同机器上独立且同步运行的
  • Map 和 Reduce 中间夹杂着一步数据移动,也就是 shuffle,这步操作会涉及数量巨大的网络传输,需要大量的时间
  • 由于 MapReduce 的框架限制,一个 MapReduce 任务只能包含一次 Map 和一次 Reduce,计算完成之后,MapReduce 会将运算结果写回到磁盘中(更准确地说是分布式存储系统)供下次计算使用。

 在MapReduce 框架下,数据的格式都是key-value 形式

(2)Spark的运行框架:

由三个主要组件组成:Driver节点、Cluster Manager和Executor节点。

  • Driver节点是应用程序的入口点,它负责解析用户的应用程序代码,并将任务划分成一系列的任务(stage),以及在集群上为任务安排调度。Driver节点负责管理各个任务之间的依赖关系,并将它们转换成一个可执行的物理执行计划(DAG)
  • Cluster Manager负责在集群中为应用程序分配资源。它可以是Standalone,YARN或Mesos等。
  • Executor节点负责在工作节点上执行任务。每个Executor都运行在自己的JVM进程中,并且为应用程序分配了一定数量的内存和CPU资源。Executor在运行过程中负责接收和执行任务。

2.MapReduce与spark的对比

  • 内存计算

        spark 将数据存储在内存中进行计算;MapReduce 将数据存储在磁盘上。

        由于内存访问速度更快,spark 在处理迭代计算和交互式查询等工作负载时通常比 MapReduce 更高效。

Spark 基于内存的计算:

        Spark中我们有一种优化策略:移动计算、不移动数据。旨在减少数据传输的开销,提高计算效率。其核心思想是将计算任务尽可能的放在数据所在的节点上执行,而不是将数据传输到计算节点。具体来说,包括下面两个方面:

  1. 数据本地性:

        Spark 会尽量将计算任务分配到存储有数据的节点上,以利用数据的本地性。这样可以减少数据传输的开销。通过在数据所在节点上执行计算任务,可以避免将数据传输到其他节点,从而提高计算性能。

  1. 任务调度:

        Spark 不会移动实际的数据。数据仍然保留在存储节点上,只有计算任务被分发到存储数据的节点上执行。

MapReduce基于磁盘的计算:

  1. 数据读取:

        输入数据从磁盘读取到内存中进行处理。也就是说,每次需要处理数据时,都需要从磁盘读取相应的数据块到内存中进行计算操作。

  1. 中间结果存储:

        MapReduce 框架会将 Map 和 Reduce 阶段的中间结果存储在磁盘上。在 Map 阶段,将 Map 任务的输出写入磁盘中的临时文件。在 Reduce 阶段,Reduce 任务会从磁盘上读取中间结果,并根据键值对进行合并和排序。

  1. 数据持久性:

        将数据存储在持久化的磁盘介质上,及时在节点故障或计算过程中断的情况下,数据也能够持久保存。这样可以确保数据的可靠性和容错性。

  • 执行速度

        Spark 的内存计算特性 和 基于DAG有向无环图 的执行模型,通常比 MapReduce 更快。Spark可以在内存中保留数据和计算结果,并通过多个任务合并为更少的阶段来减少磁盘的读写开销。

  • API 和编程模型

        Spark提供了丰富的API,包括 scala、Java、Python等。开发起来更加灵活、表达能力更强。而 MapReduce 使用 Java 编程语言来编写 Map 和 Reduce 函数,需要手动编写更多的代码来实现处理逻辑。

  • 扩展性

        Spark 有更好的扩展性,可以方便的与其他数据处理框架和工具集成。如:Spark Streaming用于流处理、Spark SQL 用于查询和结构化数据处理、Spark MLlib用于机器学习等。

  • 容错性

        Spark提供了弹性式分布数据集RDD,具有自动容错和数据恢复机制。能够在节点故障时重新计算丢失的数据。

        MapReduce 需要在每个任务的开始和结束时将数据写入磁盘,因此在故障情况下需要重新启动整个计算。

什么是容错性?
容错性是指系统在面对故障、错误或者异常情况时能够保持正常运行,并能够从故障中恢复或继续进行操作的能力。数据在处理中,由于数据规模庞大、且分布在多个计算节点上,节点故障可能导致任务中断或数据丢失。

四.Linux基础命令

1.pwd 命令

格式:pwd 功能:显示当前所在目录(即工作目录)。

[root@localhost ~]# pwd

2.ls命令

格式:ls [选项] [文件|目录]

功能:显示指定目录中的文件或子目录信息。当不指定文件或目录时,显示 当前工作目录中的文件或子目录信息。

命令常用选项如下: -a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来。

-l :长格式显示,包含文件和目录的详细信息。

-R :连同子目录内容一起列出来。

说明:命令“ls –l”设置了别名:ll,即输入 ll 命令,执行的是 ls –l

3.cd命令

格式:cd 路径>

功能:用于切换当前用户所在的工作目录,其中路径可以是绝对路径也可以 是相对路径。

4.mkdir命令

格式: mkdir [选项] 目录

功能:用于创建目录。

创建目录前需保证当前用户对当前路径有修改的权 限。参数 -p 用于创建多级文件夹。

5.cp命令

格式: cp [选项] 文件> 目标文件>

功能:复制文件或目录。

6.cat命令

格式:cat [选项] [文件]

功能:查看文件内容。

常用选项:-n 显示行号(空行也编号)。

7.tar命令

格式:tar [选项] [档案名] [文件或目录]

功能:为文件和目录创建档案。利用 tar 命令,可以把一大堆的文件和目录 全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便 于网络传输是非常有用的。该命令还可以反过来,将档案文件中的文件和目 录释放出来。

常用选项:

-c 建立新的备份文件。

-C 目录> 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于 仅压缩特定目录里的内容或解压缩到特定目录。

-x 从归档文件中提取文件。

-z 通过 gzip 指令压缩/解压缩文件,文件名为*.tar.gz。

-f备份文件> 指定备份文件。 -v 显示命令执行过程。

8.useradd命令

格式:useradd 用户名 

功能:创建新用户,该命令只能由 root 用户使用。

9.passwd命令

格式:passwd 用户名

功能:设置或修改指定用户的口令。

[root@localhost ~]# passwd teacher 更改用户 teacher 的密码 。

新的 密码:

无效的密码: 密码是一个回文

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

10.hostnamectl命令

格式 1:hostnamectl

功能:显示当前主机的名称和系统版本。

格式 2:hostnamectl set-hostname

功能:永久设置当前主机的名称。

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码? 详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK