构建一个由 Master + Slave 构成的 Spark 集群,Spark 运行在集群中。 这个要和 Hadoop 中的 Standalone 区别开来. 集群角色的简单介绍 Spark是基于内存计算的大数据并行计算框架,实际中运行计算任务肯定是使用集群模式,那么我们先来学习Spark自带的standalone集群模式了解一下它的架构及运行机制。 4. 在sbin/spark-config.sh中添加入JAVA_HOME变量 export JAVA_HOME=/opt/module/jdk1.8.0_144 ? 启动 Spark 集群 [bigdata@hadoop002 spark]$ sbin/start-all.sh ? 7. 集群的启动和停止 在主节点上启动Spark集群 /export/servers/spark/sbin/start-all.sh 在主节点上停止spark集群 /export/servers/spark
配置 /etc/profile环境变量 export SPARK_HOME=/data1/spark/spark export SCALA_HOME=/data1/spark/scala-2.9.3 export PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin 配置spark的conf下的spark-env.sh export Java_HOME=/usr/java/default export SCALA_HOME=/data1/spark/scala-2.9.3 export SPARK_MASTER_IP=192.168.0.1 export SPARK_MASTER_WEBUI_PORT slaves(ip根据需要修改) 192.168.0.2 192.168.0.3 分发spark目录和scala目录到几台服务器相同路径下 4,启动 进入主节点的spark目录的bin下stop-all.sh 是停掉集群,start-all.sh启动集群,jps可以在主节点看到master进程,slave节点看到worker进程 5, 运行程序,运行例子进入spark目录下 分布式运行 .
集群配置 以下操作以node01为操作节点 1. SCALA_HOME=/home/hadoop3/scala-2.11.7 export PATH=$PATH:$SCALA_HOME/bin source /etc/profile #配置生效 4. 修改配置文件 以node02 作为备用主节点,则修改node02的 vi spark-env.sh SPARK_MASTER_IP = node02 集群启动 hdfs ,则spark启动前启动 其他: 比如分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh 原因: 如果集群中也配置HADOOP_HOME ,那么在HADOOP_HOME/sbin目录下也有start-all.sh和stop-all.sh这两个文件,当你执行这两个文件,系统不知道是操作hadoop集群还是spark集群。
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境。 在Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用中,我们已经写好了一个Spark的应用。 本文的目标是写一个基于kafka的scala工程,在一个spark standalone的集群环境中运行。 项目结构和文件说明 说明 这个工程包含了两个应用。 服务 启动spark集群master server $SPARK_HOME/sbin/start-master.sh master服务,默认会使用7077这个端口。 启动spark集群slave server $SPARK_HOME/sbin/start-slave.sh spark://$(hostname):7077 启动Consumer应用 新起一个终端,来运行
文章目录 hadoop集群 下载 环境配置 集群配置 测试 hadoop集群 参考使用docker部署hadoop集群-手把手复现 下载 首先查看hadoop版本 hadoop version 下载 /apache/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz mv spark SPARK_WORKER_MEMORY=2g export SPARK_WORKER_CORES=4 export SPARK_EXECUTOR_MEMORY=1g export HADOOP_HOME LD_LIBRARY_PATH:/usr/local/jdk1.8/jre/lib/aarch64 (插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/ 集群配置 集群 #/usr/local/hadoop/sbin/.
---- 环境准备 服务器集群 我用的CentOS-6.6版本的4个虚拟机,主机名为hadoop01、hadoop02、hadoop03、hadoop04,另外我会使用hadoop用户搭建集群(生产环境中 集群规划 ? 2. slaves [hadoop@hadoop01 conf]$ vim slaves # 里面的内容原来为localhost hadoop01 hadoop02 hadoop03 hadoop04 (4) 集群还是spark集群。 spark HA集群搭建成功!
master-tz conf]$ pwd /usr/local/src/spark/conf 修改spark-env.sh文件 [hadoop@master-tz conf]$ cp spark-env.sh.template @master-tz conf]# scp -r /usr/local/src/spark/ slave02-tz:/usr/local/src/ 发送完毕后,启动spark集群 [hadoop@master-tz 使用本地模式运行Spark Pi程序 /usr/local/src/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi -- master local[*] /usr/local/src/spark/examples/jars/spark-examples_2.11-2.0.0.jar 10 Standalone模式运行Spark --master spark://master-tz:7077 /usr/local/src/spark/examples/jars/spark-examples_2.11-2.0.0.jar 10
一个master和三个worker,同时Hadoop-2.7.7集群,namdenode在master上,俩个datanode在worker1和worker2上。 =7077 export SPARK_WORKDER_CORES=4 export SPARK_WORKER_MEMORY=1024m export SPARK_DIST_CLASSPATH=$(/opt applogs/spark-eventlog 3、log4j.properties cp log4j.properties.template log4j.properties,修改log4j.properties =ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop log4j.appender.FILE.Threshold=INFO log4j.appender.FILE.file=/opt/applog/spark.log log4j.appender.logFile.Encoding
摘 要 本文简要地概述一下Spark是如何在集群上运行,让它更容易理解。 Spark 组件说明 Spark的应用程序作为一个独立的进程在Spark集群上运行,并由SparkContext对象(驱动程序)来运行你的主应用程序。 一旦运行起来,Spark就可以获得需要执行的集群节点,并为应用程序提供计算和数据存储。接下来Spark将应用程序发送给执行的节点。最后,SparkContext将任务发送给执行器来运行。 4、因为程序在集群环境上调度任务,所以应该在邻近的工作节点中运行,最好是局域网内。如果你想远程发送请求到集群,最好通过RPC的方式来打开一个驱动程序,并在邻近的节点中提交操作。 集群管理器的类型 Spark目前仅支持一下三个管理器 Standalone:它是一个Spark内部的简单的集群管理器,可以很简单的搭建出一个集群。
docker搭建spark集群 有个小技巧:先配置好一个,在(宿主机上)复制scp -r拷贝Spark到其他Slaves。 -3.2.2-lbx-jszt下的jars包移到/usr/local/spark-3.1.1/jars下 4.解压安装包 mkdir -p /usr/local/spark-3.1.1 cd /opt/ SPARK_WORKER_MEMORY=800m #export SPARK_DRIVER_MEMORY=4g export SPARK_EXECUTOR_INSTANCES=2 export HADOOP_CONF_DIR " (4)配置workers cp workers.template workers vim workers # 添加 test-cluster-spk-slave-001 6.配置log4j.properties cp log4j.properties.template log4j.properties vim log4j.properties log4j.rootCategory=WARN, console
使环境变量生效:source /etc/profile 验证:scala -version 3.ssh 免密码登录 参考https://blog.51cto.com/13001751/2487972 4. 2.4.5-bin-hadoop2.7.tgz cd /usr/local/spark-2.4.5-bin-hadoop2.7/conf/ #进入spark配置目录 mv spark-env.sh.template spark-env.sh #从配置模板复制 vi spark-env.sh #添加配置内容 export SPARK_HOME=/usr/local/spark-2.4.5-bin-hadoop2.7 =spark1 SPARK_LOCAL_DIRS=/usr/local/spark-2.4.5-bin-hadoop2.7 SPARK_DRIVER_MEMORY=1G export SPARK_LIBARY_PATH /spark-2.4.5-bin-hadoop2.7 root@spark2:/usr/local/ scp -r /usr/local/spark-2.4.5-bin-hadoop2.7 root@spark3
本篇主要记录一下Spark 集群环境搭建过程以及在搭建过程中所遇到的问题及解决方案 主体分为三步 : 一 :基础环境配置 二 :安装包下载 三 :Spark 集群配置文件修改 四 :启动spark master / slaves 五 :编写脚本 一 :基础环境配置 本部分具体步骤可以参考Hadoop集群搭建中的前半部分关于Linux环境搭建以及系统环境配置 二 :安装包下载 下载链接 :http://spark.apache.org /downloads.html 在这里选择Spark对应的Hadoop版本 三 :Spark配置修改 需要修改的文件: 1:conf/spark-env 2 : conf/slaves 3 : sbin /spark-config.sh Spark-env 配置 export SPARK_MASTER_IP=hadoop01 // spark master进程运行节点地址 export SPARK_MASTER_PORT 解决方法 : 1 :确保期间,重启所有节点 2 :删除 /tmp 下的所有文件 3 :namenode 格式化 4 : 启动hadoop所有进程 5 :启动spark-shell 成功
yarn是hadoop的一个子项目,用于管理分布式计算资源,在yarn上面搭建spark集群需要配置好hadoop和spark。集群是有3台虚拟机组成,都是centos系统的。 下面一步一步进行集群搭建。 一.配置hosts文件 为了方便地查找主机,hosts文件是主机名到ip的映射,不用去记各个主机的IP地址. master节点上: slave节点上: 看终端报错没有,没报错基本就成功了,再去UI看看,访问:http://ip:8088 集群就搭建好了。 六、安装配置spark: 解压spark压缩包 tar -zxvf spark-2.4.4-bin-hadoop2.6.4.tar 配置spark配置文件: cp spark-env.sh.template slave 上启动了Worker进程: 进入Spark的Web管理页面:ip:8080 七、运行示例 本例以集群模式运行SparkPi实例程序(deploy-mode 设置为cluster
Spark三种分布式部署方式比较 目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,详情参考。 Spark standalone模式分布式部署 环境介绍 主机名 应用 tvm11 zookeeper tvm12 zookeeper tvm13 zookeeper、spark(master)、spark (slave)、Scala tvm14 spark(backup)、spark(slave)、Scala tvm15 spark(slave)、Scala 说明 依赖scala: Note that 配置spark spark服务配置文件主要有两个:spark-env.sh和slaves。 spark-evn.sh:配置spark运行相关环境变量 slaves:指定worker服务器 配置spark-env.sh:cp spark-env.sh.template spark-env.sh
Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力。 2. Spark既能适用于专用集群,也可以适用于共享的云计算环境。 3. Spark在分布式环境中的架构: [图片] Spark集群采用的是主/从结构,驱动器(Driver)节点和所有执行器(executor)节点一起被称为一个Spark应用(application)。 Spark自带的集群管理器被称为独立集群管理器。 4. 驱动器节点 Spark的驱动器是执行程序main()方法的进程。 集群管理器 Spark依赖于集群管理器来启动执行器节点,在某特殊情况下,也依赖集群管理器来启动驱动器节点。 7.
4. Spark任务调度 4.1 核心组件 本节主要介绍Spark运行过程中的核心以及相关组件。 4.1.3 SparkContext 在Spark中由SparkContext负责与集群进行通讯、资源的申请以及任务的分配和监控等。 SparkContext 是用户通往 Spark 集群的唯一入口,可以用来在Spark集群中创建RDD 、累加器和广播变量。 Yarn(Yet Another Resource Negotiator)是Hadoop集群的资源管理系统,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处 程序运行流程 在实际生产环境下, Spark集群的部署方式一般为 YARN-Cluster模式,之后的内核分析内容中我们默认集群的部署方式为YARN-Cluster模式。
4、提高executor的内存 在spark-submit提交任务时,适当提高executor的memory值,例如15G或者20G。 spark.executor.memory 15G spark.executor.cores 3 spark.cores.max 21 启动的execuote数量为:7个 execuoteNum = spark.cores.max spark.storage.blockManagerSlaveTimeoutMs spark.shuffle.io.connectionTimeout spark.rpc.askTimeout or 以前遇到过同事在spark的一台worker上跑R的任务导致该节点spark task运行缓慢。 spark.speculation true spark.speculation.interval 100 - 检测周期,单位毫秒; spark.speculation.quantile 0.75 -
spark的集群主要有三种运行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone运行模式,并尝试搭建一个standalone 集群 一、standalone模式 standalone模式,是spark自己实现的,它是一个资源调度框架。 ,我们看一下它的运行流程,如图: 1)当spark集群启动以后,worker节点会有一个心跳机制和master保持通信; 2)SparkContext连接到master以后会向master申请资源,而 master会根据worker心跳来分配worker的资源,并启动worker的executor进程; 3)SparkContext将程序代码解析成dag结构,并提交给DagScheduler; 4)dag 集群情况 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGCNlCEM-1609913096683)(image/image4.png)]
@node2 spark-3.1.2]# cd conf/ [root@node2 conf]# ls fairscheduler.xml.template log4j.properties.template Worker will be started on each of the machines listed below. node1 node2 node3 [root@node2 conf]# (4) @node2 app]# scp -r spark-3.1.2 node3:/app 3、启动集群 [root@node1 app]# cd spark-3.1.2 [root@node1 spark class="collapse-table-arrow arrow-open"> Workers (3) </h4> 36757
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 然后 source ~/.bashrc 让配置立即生效 3.5 最后检查是否生效 java -version 4 因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 Master 节点上执行: //先开Slave 虚拟机 sudo rm -r . share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12 /conf/spark-env.sh.template ./conf/spark-env.sh 编辑 ./conf/spark-env.sh(vim . bashrc 修改spark-defaults.conf cp spark-defaults.conf.template spark-defaults.conf 加入 spark.executor.extraJavaOptions