Spark学习笔记[3]-Spark安装部署

1、下载对应版本的spark

  官网我始终都下不下来,推荐一个国内的镜像: https://mirrors.tuna.tsinghua.edu.cn/apache/spark

2、概述

2-1 安装模式

  虽然Spark是一个分布式计算框架,但是其不属于Hadoop Project,它有自己的资源层管理和文件系统,可以不依赖Hadoop的HDFS和Yarn,所以安装部署的时候可以只安装spark,对应的就是standalone集群, 但是一般都会使用HDFS作为数据存储层,使用Yarn进行资源管理(spark on yarn模式),这样就可以进行资源的复用,除了Yarn,还支持k8s等资源管理模块

  StandAlone模式和Yarn模式资源层对应的角色如下:

StandAlone Yarn
主节点(管理集群计算资源) Master resourceManager
工作节点(具体负责计算的节点) Worker nodeManager
2-2 作业执行大致流程

  从官网down了一张图:

  排除资源层的角色,剩下的就是计算层角色,主要是Driver和Executor,除了这两个角色,其实还有一个角色Client,只是Client的功能比较少,下结合这个图,介绍一下作业的执行流程:

  • 1)、启动client,client的主要功能就是负责启动Driver,Driver可以是一个单独的jvm进程,也可以运行在Client进程中,分别对应我们使用Spark-submit提交程序时指定的客户端模式(client)和集群模式(cluster),无论哪种模式,driver启动后,后续的工作都主要由Driver负责,两个模式的主要区别是:

    • 在客户端模式,driver运行在client内部,和client率属于同一个jvm进程
    • 在集群模式,Client会先向资源管理主节点申请资源,主节点根据Driver启动所需的资源情况,从所有工作节点中选取一个工作节点,并在该工作节点启动一个新的JVM进程运行Driver程序,在Yarn模式下,Driver会运行在AppMater上</font
  • 2)、Driver启动成功后会向资源层申请计算资源,资源层根据申请的资源情况,挑选一批工作节点启动执行进程(Executor),等待执行计算任务,和MR不同的是,MR的map任务和reduce任务都是以进程的形式调度执行,Spark是先启动执行进程Executor,Executor内部有一个线程池,后续计算任务都由该线程池执行(由于spark是先申请资源再调度任务,所以spark在申请资源时会倾向于抢占资源,也就是尽量把集群资源抢光)

3、StandAlone模式安装(数据存储层使用HDFS,所以要先启动HDFS)

3-1 资源层角色规划
主机名称 Master Worker
hdp001 *
hdp002 *(HA模式需要) *
hdp003 *
hdp004 *
3-2 配置文件修改
3-2-1 配置worker节点($SPARK_HONE/conf/slaves)

hdp002
hdp003
hdp004
3-2-2 配置spark的环境变量spar-env.sh
   export JAVA_HOME=/opt/hadoop/jdk1.8.0_121 #远程登录主机执行需要该变量export HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.9.2/etc/hadoop  #hadoop配置文件地址,根据它找到hdfs和**yarn**export SPARK_MASTER_HOST=hdp001 #主节点,写主节点对应的主机,如果hdp002也是主,则hdp002的配置文件要写hdp002主机export SPARK_MASTER_PORT=7077 #主节点端口export SPARK_WORKER_CORES=2  #worker虚拟核数export SPARK_WORKER_MEMORY=1g #woker内存export SPARK_MASTER_WEBUI_PORT=9090 #web界面端口
3-2-3 配置spark-default.conf(HA模式等配置需要)
   spark.deploy.recoveryMode ZOOKEEPER #也可以选择本地文件系统,一般都是zkspark.deploy.zookeeper.url hdp001:2181,hdp002:2181,hdp003:2181,hdp004:2181spark.deploy.zookeeper.dir /cmbspark #zk上的节点
3-2-4 在zk上创建一个新的目录节点(HA模式)
3-2-5 拷贝安装包和/etc/profile到其余节点
scp 源路径 hdp002:`pwd`
3-2-6 由于hdp002是备用主,需要将hdp002下的spark-env.sh的主节点主机改成hdp002
3-2-7 运行 sbin/start-all.sh启动集群
3-3 测试程序

  准备一个测试文件上传到hdfs

3-3-1 使用spark-shell

  命令格式:

spark-shell --master spark://hdp001:7077,hdp002:7077

  进入界面后执行如下代码即可看到对应的输出:

sc.textFile("hdfs://mycluster/user/hdp01/data_in/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)
3-3-2 使用spark-submit

  spark-submit命令格式:

    spark-submit \--class <main-class> \--master <url> \--deploy-mode <client/cluster>-- conf <key>=<value>.... #other option<application-jar>[app-args<JVM参数或者其他>]

  准备一个sh脚本运行即可,使用的代码是spark自带的例子程序:

 claz=org.apache.spark.examples.SparkPijar=$SPARK_HOME/examples/jars/spark-examples_2.11-2.4.7.jar$SPARK_HOME/bin/spark-submit \--master spark://hdp001:7077,hdp002:7077 \--class  $claz\--deploy-mode client \$jar100
3-4 历史记录服务

   默认情况下,spark进程退出后【包括yarn】,历史执行的任务信息也会丢失,需要配置历史记录服务存储历史任务的执行情况,不管是MR还是Spark,历史记录是由计算层负责写入对应存储层存储(比如HDFS),开启日志服务流程如下:

  • 1)、配置spark-default.conf

spark.eventLog.enabled true #开启日志记录
spark.eventLog.dir hdfs://mycluster/spark-logs #日志存储位置
spark.history.fs.logDirectory hdfs://mycluster/spark-logs #其他服务获取日志的路径,一般和上面一个是一样的
  • 2)、手动启动 sbin下的start-history-server.sh
  • 3)、访问启动historysever的主机的主机名,默认端口号是18080

4、Spark On Yarn模式

   Spark On Yarn模式使用的资源层是Yarn,所以可以关闭StandAlone集群,但是需要启动Yarn集群,然后进行如下操作:

  • 1)、修改spark-env.sh,保留以下两个
   export JAVA_HOME=/opt/hadoop/jdk1.8.0_121 #远程登录主机执行需要该变量export HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.9.2/etc/hadoop  #hadoop配置文件地址
  • 2)、修改spark-default.conf,删除HA相关配置(也就是Zk相关的配置)
  • 3)、修改yarn的配置文件yarn-site.xml,新增如下配置
<property><!--工作节点内存--><name>yarn.nodemanager.resource.memory-mb</name><value>1024</value>
</property>
<property><!--工作节点虚拟核心--><name>yarn.nodemanager.cpu-cores</name><value>2</value>
</property>
<property><!--虚拟机检查--><name>yarn.nodemanager.vem-check-enable</name><value>false</value>
</property>
  • 4)、上传依赖包到hdfs,以后就不需要每次从本地上传
  1、在hdfs创建目录 /work/spark_lib/jars2、上传spark安装目录的jars目录下的jar包到以上目录3、配置spark-default.confspark.yarn.jars hdfs://mycluster/work/spark_lib/jars/*
  • 5)、测试程序,同样使用saprk-shell,命令为:
spark-shell --master yarn --executor-memory 512M --driver-memory 512M #有内存不能配置太小,有可能起不来

Spark学习笔记[3]-Spark安装部署相关推荐

  1. Spark学习笔记(8)---Spark Streaming学习笔记

    Spark Streaming学习笔记 同Spark SQL一样,Spark Streaming学习也是放在了github https://github.com/yangtong123/RoadOfS ...

  2. Spark学习笔记(7)---Spark SQL学习笔记

    Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...

  3. Spark学习笔记[1]-scala环境安装与基本语法

    Spark学习笔记[1]-scala环境安装与基本语法   正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...

  4. spark 学习笔记

    spark 学习笔记 spark介绍 Spark是是一种快速通用的集群计算系统,它的主要特点是能够在内存中进行计算.它包含了 spark 核心组件 spark-core,用于 SQL 和结构化处理数据 ...

  5. Spark集群完全分布式安装部署

    Spark集群完全分布式安装部署 下载安装 配置Spark 1spark-envsh配置 2slaves配置 3profile配置 复制到其他节点 测试 总结 Spark集群完全分布式安装部署 本文中 ...

  6. Spark学习笔记1——第一个Spark程序:单词数统计

    Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...

  7. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  8. Flink 笔记01:安装部署与快速入门

    stypora-copy-images-to: img typora-root-url: ./ Flink 笔记01:安装部署与快速入门 一.课程回安排与内容提纲 大数据技术框架转折点:2017年,天 ...

  9. flink1.12.0学习笔记第1篇-部署与入门

    flink1.12.0学习笔记第 1 篇-部署与入门 flink1.12.0学习笔记第1篇-部署与入门 flink1.12.0学习笔记第2篇-流批一体API flink1.12.0学习笔记第3篇-高级 ...

  10. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

最新文章

  1. 【ZooKeeper Notes 28】ZooKeeper典型应用场景一览
  2. 开启大数据时代谷歌三篇论文-BigTable
  3. 云起智慧中心连接华为_云起LifeSmart全系接入HUAWEI HiLink生态系统
  4. 【性能优化】EKPO/EKBE和LIPS做JOIN的问题
  5. 【转载】Instagram架构分析笔记
  6. 338. Counting Bits(动态规划)
  7. php 垃圾回收机制----写时复制和引用计数
  8. 1 加到 100 的 时间复杂度 C#.
  9. css扩展语言_如何决定是否应该链接或扩展CSS类
  10. 程序设计竞赛资源索引
  11. 计算机专业需要学好的数学知识,学好数学对计算机专业重要吗?
  12. C#LeetCode刷题之#191-位1的个数(Number of 1 Bits)
  13. MySQL DDL--ghost执行模板和参数
  14. redhat8安装mysql教程
  15. 自定义View:Android 仿 PS 选色板
  16. mac 下安装iwork+ps+nx2
  17. 汇编Masm更改颜色
  18. php设置Apache虚拟主机vhost
  19. 结巴分词有前空格_jieba英文空格分词问题
  20. C语言————exec函数族

热门文章

  1. 《上海堡垒》究竟几何?让我用爬虫一探究竟
  2. 通达信自动交易软件步骤分析
  3. MAC下微软Word修改样式为宋体却显示SimSun-Extb的解决办法
  4. 最新发布!迅雷精简版 4.0.3 Mac中文版
  5. 常用汉字2504个(无重复)
  6. matlab希尔伯特变换,希尔伯特变换和傅里叶变换MATLAB仿真
  7. 服务器系统2008 64,服务器主机server 2008 R2 操作系统漏洞
  8. 关闭计算机主机还亮着,计算机关闭后,主机电源指示灯仍然亮起
  9. EasyDarwin的交叉编译
  10. 软件项目管理作业汇总