当前位置: 首页 > news >正文

spark学习笔记

1.Spark安装

1.1 环境

  • JDK1.8以上
    # 软连接(解耦合)
    rm -rf /usr/latest #删除软链接(最后的反斜杠不能删掉)
    ln -s /usr/java/jdk1.8.0  /usr/java/latest#创建新的软连接
    # 环境变量
    1. ~/bash_profile每个用户自己专属的shell环境,只在用户登录的时候,执行一次,修改后source或重启后生效
    2. ~/bashshrc每个用户自己专属的shell环境,在用户登录的时候或者执行shell脚本的时候,执行一次
    3. /etc/profile所有用户共用的系统变量,修改以后 source或者重启后生效,当用户登录的时候,执行一次
    
  • Scala环境
    • 安装scala

1.2 Spark安装

- 解压
- 配置环境变量
```
1.JAVA_HOME
2.CLASSPATH # java编译文件class的目录
3.HADOOP_HOME
4.HADOOP_CLASSPATH# hadoop依赖包的路径,hadoop安装目录下的lib
5.SPARK_HOME
6.PATH #所有命令配置到系统变量
PATH=$PATH # 在保留原来的一些配置基础上增加配置;“:”是分隔符
```
- 修改spark配置文件
```
# 1.spark-env.shSPARK_MASTER_HOST:主节点ipSPARK_MASTER_PORT:主节点端口号SPARK_WORKER_CORES:从节点核数SPARK_WORKER_MEMORY:cpu分配多少内存,从节点计算所用内存大小SPARK_DIST_CLASSPATH:配置hadoop的依赖包
# 2.slaves从节点的ip地址
# 3.上传spark日志需要的jar包,3个
# 启动sbin /start-all.sh
```

2.Spark Standalone架构

2.1 架构组成

1.Driver:运行spark应用程序的驱动,调用main()函数,创建一个SparkContext对象
2.SaprkContext:SparkContext用来可spark集群进行交互
3.Executor:执行器,在worker上运行的程序,负责计算
4.Task:任务
5.DAG Scheduler:有向无环图,一个DAG中可以分解出多个任务
6.Task Scheduler:任务调度器

2.2运行流程

1.启动Spark集群,worker节点用心跳机制和master进行通信
2.启动Driver,调用main函数,并创建SparkContext对象
3.SparkContext向master申请计算资源,makster会根据worker的心跳来分配worker的资源,并启动worker的Executor进程
4.SparkContext将代码程序解析成DAG结构,并交给DAGScheduler进行角度
5.DAG会在DAG Scheduler中分解为很多的stage(阶段),每个阶段包含多个task
6.stage(多个task组成的组合)会被调度到TaskSheduler中,TaskSchedule将任务分配到worker中,并交给Executor进程进行计算
7.executor会创建一个线程池去执行Task,并将执行结果反馈都SparkContext中,直到所有的task执行完毕
8.SparkContext向mskter注销释放资源

3.Spark on yarn

3.1

3.2

3.3

4.

5.

6.

7.

8.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微信小程序页面制作——婚礼邀请函(含代码)
  • netstat和ss命令用法
  • 鹰眼降尘系统怎么样
  • SpringBoot 消息队列RabbitMQ使用延迟消息插件 接收延迟消息
  • 【MATLAB GUI 设计第一篇 】
  • JavaScript ES6特性(var let const、function=>、增强表达赋值、类与对象)
  • 算子级血缘在金融数据环境的实践应用
  • 软件测试学习笔记丨Postman基础使用
  • git pull的merge和rebase模式
  • 孙怡带你深度学习(2)--PyTorch框架认识
  • LeetCode[中等] 74.搜索二维矩阵
  • Flask-Migrate的使用
  • 网络安全实训八(y0usef靶机渗透实例)
  • 9.17日常记录
  • JavaEE:网络编程(套接字)
  • 2018一半小结一波
  • express + mock 让前后台并行开发
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript 基础知识 - 入门篇(一)
  • PHP那些事儿
  • Redis 中的布隆过滤器
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue.js源码(2):初探List Rendering
  • vue--为什么data属性必须是一个函数
  • 将回调地狱按在地上摩擦的Promise
  • 盘点那些不知名却常用的 Git 操作
  • 如何利用MongoDB打造TOP榜小程序
  • 入门级的git使用指北
  • 在Docker Swarm上部署Apache Storm:第1部分
  • ionic异常记录
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)SpringCloud 整合Python
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (七)Activiti-modeler中文支持
  • (算法)大数的进制转换
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)u-boot-nand.bin的下载
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 设计一套高性能的弱事件机制
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net程序集学习心得
  • /proc/stat文件详解(翻译)
  • @EnableConfigurationProperties注解使用
  • @property python知乎_Python3基础之:property
  • [Android Pro] AndroidX重构和映射
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [C++]高精度 bign (重载运算符版本)