目录


Local模式运行环境搭建

小知识

Local模式常用语本地开发测试,分为Local单线程Local-cluster多线程,也被称为Local[N]模式,是用单机的多个线程来模拟Spark分布式计算,直接运行在本地,便于调试,通常用来验证开发出来的应用程序逻辑上有没有问题。

其中N代表可以使用N个线程,每个线程拥有一个core。 N是一个正整数,表示启动多少个线程来模拟spark的集群的运行。如果不指定N,则默认是1个线程(该线程有1个core)。

如果是local[*],表示使用与CPU核实相等个数的线程数来运行spark的程序 (Run Spark locally with as many worker threads as logical cores on your machine.)

搭建步骤

一、上传压缩包并解压

将编译后的压缩包上传到/export/softwares目录下并解压,这里有编译CDH版本Spark的方法

cd /export/softwares
tar -zxvf spark-2.2.0-bin-2.6.0-cdh5.14.0.tgz -C ../servers/
二、修改Spark配置文件

复制出一份即可

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
cp spark-env.sh.template spark-env.sh
三、启动验证进入Spark-shell
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
./bin/spark-shell --master local

退出

:quit
四、运行Spark自带的测试jar包
 bin/spark-submit \  通过spark-submit脚本来执行任务
> --class org.apache.spark.examples.SparkPi \ 指定我们main方法所在的程序
> --master local[2] \ 指定master所在的服务器
> --executor-memory 1G \ executor分配内存
> --total-executor-cores 2 \ 一共给分配多少个CPU核数
> /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/jars/spark-examples_2.11-2.2.0.jar \ 指定我们需要运行的jar包的路径
> 100 参数,迭代计算次数

standAlone模式运行环境搭建

搭建步骤

一、修改配置文件

修改spark-env.sh,添加指定内容

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
vim spark-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node01:8020/spark_log"

修改slaves文件

cp slaves.template slaves
vim slaves
node02
node03

修改spark-defaults.conf

为了方便调试开发,一般都会经过配置将spark程序的运行日志保存到HDFS上,方便运行程序之后的开发调试

cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
spark.eventLog.enabled  true
spark.eventLog.dir hdfs://node01:8020/spark_log
spark.eventLog.compress true

在HDFS上穿件日志文件存放的目录

hdfs dfs -mkdir -p /spark_log
三、将配置好的安装包分发到其他机器
cd /export/servers/
scp -r spark-2.2.0-bin-2.6.0-cdh5.14.0/ node02:$PWD
scp -r spark-2.2.0-bin-2.6.0-cdh5.14.0/ node03:$PWD
四、启动Spark程序

在第一台服务器执行以下命令

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
sbin/start-all.sh
sbin/start-history-server.sh
五、页面访问

访问Spark:http://node01:8080/

查看spark任务的历史日志:http://node01:4000/

六、进入Spark-shell测试启动
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
bin/spark-shell --master spark://node01:7077
:quit
七、运行Spark自带的测试jar包
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/jars/spark-examples_2.11-2.2.0.jar \
500

HA模式运行环境搭建

搭建步骤

一、停止Spark集群
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
sbin/stop-all.sh
sbin/stop-history-server.sh
二、修改配置文件

修改Spark-env.sh

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
vim spark-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
# 注释这行
# export SPARK_MASTER_HOST=node01 export SPARK_MASTER_PORT=7077 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node01:8020/spark_log" # 添加这行
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181 -Dspark.deploy.zookeeper.dir=/spark"

剩下修改slaves文件、spark-defaults.conf在搭建standAlone集群已经修改

三、配置文件分发到其他服务器
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
scp spark-env.sh node02:$PWD
scp spark-env.sh node03:$PWD
四、启动Spark集群

在node01启动

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
sbin/start-all.sh
sbin/start-history-server.sh

可以在node02和node03都启动master节点

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
sbin/start-master.sh

这样 http://node02:8080/http://node03:8080/都可以访问

五、进入Spark-shell
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/
bin/spark-shell --master spark://node01:7077,node02:7077,node03:7077
:quit
六、运行Spark自带的测试jar包
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077,node02:7077,node03:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/jars/spark-examples_2.11-2.2.0.jar \
100

On Yarn模式运行环境搭建

官方文档说明

http://spark.apache.org/docs/latest/running-on-yarn.html

http://spark.apache.org/docs/latest/running-on-yarn.html#configuration

On Yarn有两种部署模式:

Client Mode —— In client mode, the driver runs in the client process, and the application master is only used for requesting resources from YARN. Driver程序运行在客户端进程里面,appmaster仅仅用于资源的申请

Cluster Mode —— the Spark driver runs inside an application master process which is managed by YARN on the cluster, and the client can go away after initiating the application. Spark驱动程序在应用程序主进程中运行,应用程序主进程由集群上的YARN管理,客户端可以在启动应用程序后离开。 适用于实际工作环境

tips

如果Spark程序是运行在yarn上,就不需要Spark集群了,只需要找任意一台服务器配置Spark的客户端提交任务到yarn集群上即可

如果yarn集群不够,可以在hadoop的配置文件yarn-site.xml中添加两个配置并重启yarn集群,用来跳过yarn集群资源的检查

<property>
<name> yarn.nodemanager.pmem-check-enabled</name
<value>false</value>
</property>
<property>
<name> yarn.nodemanager.vmem-check-enabled</name
<value>false</value>
</property>

搭建步骤

一、三台机器都修改spark-env.sh
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
vim spark-env.sh

添加以下配置

export HADOOP_CONF_DIR=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
export YARN_CONF_DIR=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf
scp spark-env.sh node02:$PWD
scp spark-env.sh node03:$PWD
二、三台机器添加spark环境变量
vim /etc/profile
export SPARK_HOME=/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
export PATH=:$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
source /etc/profile
三、任务提交
1.Client模式

① 步骤

在node03服务器执行以下命令

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/jars/spark-examples_2.11-2.2.0.jar \
10

② 任务提交过程解析



Client模式更适用于测试,因为Driver运行在本地,会与yarn集群中的Executor进行大量的通信,如此一来会造成客户机网卡流量的大量增加。

注意: ApplicationMaster有launchExecutor和申请资源的功能,并没有作业调度的功能。

2.Cluster模式

① 步骤

在node03执行以下命令

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0
bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/jars/spark-examples_2.11-2.2.0.jar \
10

② 任务提交过程分析



Cluster模式主要用于实际工作当中,因为Driver运行在Yarn集群的某一台NodeManager中,每次提交任务的Driver所在的机器都是随机的,不会产生某一台机器网卡流量激增的现象,缺点是任务提交后看不到日志,只能通过yarn查看日志

本模式下的ApplicationMaster除了launchExecutor和申请资源的功能外,也拥有了任务调度的功能。

停止集群任务命令:yarn application -kill applicationID

四、访问历史日志界面

http://node01:8088/cluster/app/applicationId

【Spark】Spark必不可少的多种集群环境搭建方法的更多相关文章

  1. Spark 1.6.1分布式集群环境搭建

    一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...

  2. Spark 2.2.0 分布式集群环境搭建

    集群机器: 1台 装了 ubuntu 14.04的 台式机 1台 装了ubuntu 16.04 的 笔记本     (机器更多时同样适用) 1.需要安装好Hadoop分布式环境 参照:Hadoop分类 ...

  3. Hadoop+Spark:集群环境搭建

    环境准备: 在虚拟机下,大家三台Linux ubuntu 14.04 server x64 系统(下载地址:http://releases.ubuntu.com/14.04.2/ubuntu-14.0 ...

  4. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

    一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 sla ...

  5. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十三)kafka+spark streaming打包好的程序提交时提示虚拟内存不足(Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical memory used; 2.2 GB of 2.1 G)

    异常问题:Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical mem ...

  6. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。

    Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭 ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十一)定制一个arvo格式文件发送到kafka的topic,通过Structured Streaming读取kafka的数据

    将arvo格式数据发送到kafka的topic 第一步:定制avro schema: { "type": "record", "name": ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

随机推荐

  1. Laravel 上手增删改查

    拿到一个框架,除了解框架,还要能实现基本的CURD操作. 添加 1.配置路由,指定添加页面: // routes/web.php 中增加如下: // 添加页面.存放路径 Laravel7/resour ...

  2. 关于MIME类型问题,浏览器请求到的资源是乱码

    简介 我想很多同学都可能会遇到这样的问题,调用后台提共的静态资源服务api时,用浏览器打开发现却是一堆乱码.需要的是 JSON, 拿到的却是 xml,访问一个mp4的文件,浏览器直接下载.这一切的来源 ...

  3. C++调用TensorFlow

    在使用C++调用TensorFlow接口时出现的问题,网上没有资料,问了老师才知道的. Exception ignored in: <module 'threading' from 'E:\\t ...

  4. 高级数据结构---赫(哈)夫曼树及java代码实现

    我们经常会用到文件压缩,压缩之后文件会变小,便于传输,使用的时候又将其解压出来.为什么压缩之后会变小,而且压缩和解压也不会出错.赫夫曼编码和赫夫曼树了解一下. 赫夫曼树: 它是一种的叶子结点带有权重的 ...

  5. PHP $_FILES的应用

    关于文件上传这块,如果处理不好的话,很容易成为黑客入侵的开口,例如黑客在你这个上传接口里放一段木马的文件,那只能祝你好运了. 所以,我们上传文件的时候都会先判断, 但是一般的操作是先上传,再判断,如果 ...

  6. thinkphp--多个id查询

    $feedback_list = $feedback -> where( array("member_id"=>array("in", " ...

  7. windows server 2012 R2系统安装部署SQLserver2016企业版(转)

    转自  https://blog.csdn.net/qq_35938548/article/details/80272288 安装sql server是一个很繁琐的事情,花了一下午时间倒腾,现记录下整 ...

  8. Zabbix备份数据文件

    mysql自带的工具mysqldump,当数据量大了之后进行全备所花的时间比较长,这样将会造成数据库的锁读.从而zabbix服务的监控告警不断,想着做下配置文件的备份.刚好有这么个脚本.满足了需求. ...

  9. java制作一个简单的抽签程序

    首先需要导入import java.util.Random;才能使用随机类Random:Random生成随机数介绍:https://www.cnblogs.com/prodigal-son/p/128 ...

  10. Json & pickle 数据序列化

    前提: 文本文件中只能写入字符串或ascii码格式的内容. info={'name':'zoe','age':18} f=open('test.txt','w') f.write(info) #在文本 ...