目录


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. 选择IT行业的自我心得,希望能帮助到各位!(四)

    俗话说,只有尝过人生的苦,吃过人生的亏,你才能吃一见长一智,人生教会了我们该如何去吃亏,该如何做人,该如何和人打交道,生活会让我们低下无数的头,就看你怎么去面对这些曲折该如何告诉自己不能就被这样打到, ...

  2. Java核心技术--接口与内部类

    接口implement 继承接口,即履行"义务". 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public 接口中决不能含有实例域,也不能在接口中实现方法 ...

  3. Caused by: java.lang.NumberFormatException: For input string: " 60"

    原因 原原因:string转int 格式出错 解决:我的输入文件格式在根据“,”分割完之后多出了一个空格,我想要的是“60” 但是分割完之后是“ 60”所以导致格式转换不匹配.

  4. Python模块---制作新冠疫情世界地图()

    目录 pyecharts模块 简介 安装pyecharts 测试pyecharts模块 pyecharts实战:绘制新冠肺炎疫情地图 需求分析 请求数据 提取数据 处理数据 制作可视化地图 设置可视化 ...

  5. 只会Vue怎么开发小程序?vue和微信小程序的到底有哪些区别?

    写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别. 一.生命周期 先贴两张生命周期图对比下: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多. v ...

  6. discuz 自带的地区四级联动调用方法

    首先,DZ提供了专门处理地区信息的函数,在source/function/function_profile.php(第14行)文件中:function profile_setting(){}那么,我们 ...

  7. 探索ORACLE之ASM概念(完整版)

    探索ORACLE之ASM概念(完整版) 本文出自https://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出 ...

  8. 2019-2020-1 20199328《Linux内核原理与分析》第四周作业

    <Linux内核原理与分析>第四周作业 步骤一 首先我们指定一个内核并指定内存根文件系统,这里的bzImage是vmLinux经过gzip压缩的内核,"b"表示&quo ...

  9. 6.Python中内存是如何管理的?

    Python中内存是如何管理的? Python memory is managed by Python private heap space. All Python objects and data ...

  10. 阿里云ECS安装JAVA+MYSQL+NGINX

    2019独角兽企业重金招聘Python工程师标准>>> 1.准备工作 查看linux版本: linux版本为CentOS 7.4 查看系统信息: 系统为64位 确保服务器系统处于最新 ...