Spark--MR和Spark区别 StandAlone client模式 shuffle Spark的集群安装 RDD maven初始化 java/scala编写 本地调试

面试题: MapReduce 和 Spark 的本质区别MR:  

        1. 只能在离线计算

        2. 复杂计算逻辑,一个MR无法完成,需要多个MR按先 后顺序串联

        3. 多个MR就要进行频繁的读写HDFS,效率低

        4. 编程API不够灵活,只能在map和reduce自己实现逻辑

Spark: 1. 即可以做离线计算,又可以做实时计算

           2. 提供了抽象的数据集(RDD Dataset DataFrame DStream)

           3. 高度封装的API,算子丰富

           4. 使用了先进的DAG有向无环图,切分Stage,优化pipeline

           5. 数据可以cache复用

           6. 数据可checkpoint保证安全

注意: MR和Spark在Shufile 时数据都落在本地磁盘

standalone角色及执行过程

client模式 和 Cluster模式 :

Master   负责管理 Worker,接收客户端提交的任务 以及资源调度​ Worker 负责管理所在的节点,启动executor并监控executor的状态​ executor 线程池, 相当于一个Java进程,负责运行Driver端生成的Task,将Task放入线程中执行

SparkSubmit   是一个Java进程,负责向Master提交任务

Driver   是很多类的统称,可以认为SparkContext就是Driver,负责将用户编写的代码转成Tasks,然后调度到 Executor中执行,并监控Task的状态和执行进度。

​ client模式Driver运行在SparkSubmit进程中

​ cluster模式单独运行在一个进程中

Task   分发到Executor上的工作任务,是Spark的最小执行单元  相当于类的实例

    1. Mater启动后定时检测超时的Worker
    2. Worker启动和master获取连接 , Master保存Worker的信息(内存,cpu等)后 返回注册成功的消息
    3. Worker定期向Master发送心跳
    4. SparkSubmit通过rpc通信提交任务给Master,并向Master申请资源, Master将符合条件的Worker筛选     出来(内存和核数等          资源符合条件),通过RPC通信,让Worker 启动 executor 并监控executor的状态
    5. executor启动后向Driver 反向注册(位置信息由 Master -- Worker -- executor),
    6. driver生成TaskSet 后将Task(计算逻辑)发送给对应的executor执行

Spark集群安装

1. 下载安装包,下载地址: https://spark.apache.org/downloads.html
apache所有的安装包源码,外网速度慢  http://archive.apache.org/dist/
可以去阿里或者清华大学源码站 速度快 
2. 压缩包上传解压
目录: /opt/apps
解压 tar -zxvf 包名 /
3. 进入到spark包目录将conf中目录下的spark-env.sh.template重命名为spark-env.sh,再添加
export JAVA_HOME=/opt/apps/jdk.1.8.0_251
export SPARK_MASTER_HOST=linux01

4. 将conf目录下的slaves.template重命名为slaves并修改,指定Worker的所在节点
linux01
linux02
linux03

5. 将配置好的spark拷贝到其他节点
scp -r spark-3.0.1-bin-hadoop3.2 linux02:$PWD
scp -r spark-3.0.1-bin-hadoop3.2 linux03:$PWD

快速方法: for i in {2..3}; do scp -r /opt/apps/spark-3.0.1-bin-hadoop3.2/  linux0$i:$PWD; done;

6. 在spark的安装目录下执行启动脚本
sbin/start-all.sh
7. 执行jps命令查看java进程
jps     在linux01上可以看见Master和Worker进程,在其他节点上可以看到Worker进程
8. 访问Master的web管理界面,端口: 如果8080被占用可用8081 8082...   linux01:8080 

9. 如果部署出错,查看日志: /opt/apps/spark-3.0.1-bin-hadoop3.2/log   使用命令查看:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值