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

Spark_Core---6

spark 相关概念补充

课程目标

  • 了解spark的安装部署
  • 知道spark作业提交集群的过程

6.1 spark的安装部署

  • 1、下载spark安装包

    http://spark.apache.org/downloads.html

    高版本不存在cdh的编译版本,可以从官网下载源码版本,指定高版本hadoop进行编译

    编译步骤:

    • 1,安装java(JDK 1.7及以上)

      export JAVA_HOME=/xxx
      export JRE_HOME=/xxx
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 2,安装Maven, 版本为3.3.9或者以上

      下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//maven/maven-3/3.3.9/binaries

      配置MAVEN_HOME

      export MAVEN_HOME=/xxx
      export PATH=$MAVEN_HOME/bin:$PATH
      
    • 3,下载spark源码

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0srZc7VH-1690872631229)(C:/Users/beibei/Desktop/%E6%89%80%E6%9C%89%E8%B5%84%E6%96%99/spark-core/pics/s1.png)]

    • 4,增加cdh的repository

      解压spark的源码包,编辑pom.xml文件, 在repositories节点 加入如下配置:

      <repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository>
      
    • 5,编译

      设置内存:

      export MAVEN_OPTS=“-Xmx2g -XX:ReservedCodeCacheSize=512m”

      开始编译:

      ./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package
      

      源码编译后,bin目录下的文件可能不存在可执行权限,需要通过chmod指令添加可执行权限

      chmod +x xxx

  • 2、规划spark安装目录

  • 3、解压安装包

  • 4、重命名安装目录

  • 5、修改配置文件

    • spark-env.sh(需要将spark-env.sh.template重命名)
      • 配置java环境变量
        • export JAVA_HOME=java_home_path
      • 配置PYTHON环境
        • export PYSPARK_PYTHON=/xx/pythonx_home/bin/pythonx
      • 配置master的地址
        • export SPARK_MASTER_HOST=node-teach
      • 配置master的端口
        • export SPARK_MASTER_PORT=7077
  • 6、配置spark环境变量

    • export SPARK_HOME=/xxx/spark2.x
    • export PATH=$PATH:$SPARK_HOME/bin

6.2 spark 集群相关概念

  • spark集群架构(Standalone模式)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u4nro2Hr-1690872631231)(/img/spark1.png)]

    • Application

      用户自己写的Spark应用程序,批处理作业的集合。Application的main方法为应用程序的入口,用户通过Spark的API,定义了RDD和对RDD的操作。

    • Master和Worker

      整个集群分为 Master 节点和 Worker 节点,相当于 Hadoop 的 Master 和 Slave 节点。

      • Master:Standalone模式中主控节点,负责接收Client提交的作业,管理Worker,并命令Worker启动Driver和Executor。
      • Worker:Standalone模式中slave节点上的守护进程,负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,启动Driver和Executor。
    • Client:客户端进程,负责提交作业到Master。

    • Driver: 一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler。

    • Executor:即真正执行作业的地方,一个集群一般包含多个Executor,每个Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个Task。

  • Spark作业相关概念

    • Stage:一个Spark作业一般包含一到多个Stage。

    • Task:一个Stage包含一到多个Task,通过多个Task实现并行运行的功能。

    • DAGScheduler: 实现将Spark作业分解成一到多个Stage,每个Stage根据RDD的Partition个数决定Task的个数,然后生成相应的Task set放到TaskScheduler中。

    • TaskScheduler:实现Task分配到Executor上执行。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-byrLH5ms-1690872631232)(/img/spark2.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jpaPOks-1690872631232)(/img/spark3.png)]

http://www.lryc.cn/news/105720.html

相关文章:

  • 游戏运营需要什么条件和准备?
  • SVN限制Message提交的格式
  • windows下安装anaconda、pycharm、cuda、cudnn、PyTorch-GPU版本
  • 【计算机网络】传输层协议 -- UDP协议
  • python制作超高难度走迷宫游戏,你要来挑战嘛~(赶紧收藏)
  • springboot整合tio-websocket方案实现简易聊天
  • 《TCP IP网络编程》第十三章
  • 驱动开发 day8 (设备树驱动,按键中断实现led亮灭)
  • DataX将MySQL数据同步到HDFS中时,空值不处理可以吗
  • P3373 【模板】线段树 2(乘法与加法)(内附封面)
  • 实现langchain-ChatGLM API调用客户端(及未解决的问题)
  • 【AltWalker】模型驱动:轻松实现自动化测试用例的生成和组织执行
  • 大数据课程E3——Flume的Sink
  • 如何快速做单元测试?
  • 不同对象的集合转换
  • 【机器学习】Gradient Descent
  • 直播读弹幕机器人:直播弹幕采集+文字转语音(附完整代码)
  • K3s vs K8s:轻量级对决 - 探索替代方案
  • dev控件gridControl,gridview中添加合计
  • SpringBoot基础认识
  • 二十三种设计模式第十九篇--命令模式
  • STM32基础入门学习笔记:基础知识和理论 开发环境建立
  • Qt应用开发(基础篇)——数值微调输入框QAbstractSpinBox、QSpinBox、QDoubleSpinBox
  • html | 无js二级菜单
  • appium的基本使用
  • Dockerfile构建nginx镜像(编译安装)
  • 手机屏幕视窗机器视觉定位软硬件-康耐德
  • Databend 开源周报第 104 期
  • 用于医学图像分类的双引导的扩散网络
  • 8.2day03 Redis入门+解决员工模块