首页 > 其他分享 >【大数据】Spark部署与启动(文档)

【大数据】Spark部署与启动(文档)

时间:2023-10-19 12:45:38浏览次数:28  
标签:test1 部署 hadoop server -- 文档 export Spark spark

Python 环境准备

Anaconda3:   https://pan.baidu.com/s/1e4Wx48RsW0Pm_saotxTW4A?pwd=66ki 

[root@test1 ~]# cd /export/       
[root@test1 export]# rz        							      # 上传源文件包
[root@test1 export]# sh ./Anaconda3-2021.05-Linux-x86_64.sh     # 安装Anaconda3
[/root/anaconda3] >>> /export/server/anaconda3                  # 输入YES后输入安装目录
[test@test1 ~]$ exit                                            # 重新连接服务器,进入base环境
[test@test1 ~]$ su -
(base) [root@test1 ~]# vim ~/.condarc                           # 创建国内镜像

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

(base) [root@test1 ~]# conda create -n pyspark python==3.8.8   # 创建python虚拟环境
(base) [root@test1 ~]# conda activate pyspark                  # 激活环境
(pyspark) [root@test1 ~]#



Spark 环境准备

Spark压缩包: https://pan.baidu.com/s/14jg43nvuj-zQ9Uy9x59x9Q?pwd=u749 

(pyspark) [root@test1 export]# RZ        				  	  		     # 上传源文件包
(pyspark) [root@test1 export]# tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/  # 解压
(pyspark) [root@test1 export]# cd /export/server/               
(pyspark) [root@test1 server]# ln -s spark-3.2.0-bin-hadoop3.2/ spark     # 创建软连接
(pyspark) [root@test1 server]# vim /etc/profile                           # 配置环境

export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

(pyspark) [root@test1 server]# source /etc/profile                        # 激活环境
(pyspark) [root@test1 server]# vim /root/.bashrc
export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8

# 注释:
-  SPARK_HOME: 表示Spark安装路径在哪里 
-  PYSPARK_PYTHON: 表示Spark想运行Python程序, 那么去哪里找python执行器 
-  JAVA_HOME: 告知Spark Java在哪里 
-  HADOOP_CONF_DIR: 告知Spark Hadoop的配置文件在哪里 
-  HADOOP_HOME: 告知Spark  Hadoop安装在哪里 



1:Local 模式配置

原理:Local模式就是以一个 独立进程 配合其 内部线程 来提供完成Spark运行环境

# 测试
(pyspark) [root@test1 spark]# cd /export/server/anaconda3/envs/pyspark/bin/
(pyspark) [root@test1 bin]# ./pyspark

# 开启后查看地址(端口冲突会递增): http://192.168.88.201:4040/jobs/



2:StandAlone 模式配置

Spark应用程序部署在一个独立的Spark集群上,Spark应用程序可以作为一个独立的作业提交给Spark集群,并由集群中的资源管理器(Spark Master)进行管理和分配资源。
​Master角色以Master进程存在, Worker角色以Worker进程存在,Driver角色在运行时存在Master进程内,Executor运行于Worker进程内

Python 环境同步


# 退出虚拟环境:conda deactivate
# 激活虚拟环境:conda activate 虚拟环境名称
test2 test3 同步Python环境 ( Python 环境准备 )



Spark 配置文件


(pyspark) [root@test1 ~]# chown -R hadoop:hadoop /export/server/spark*  # 授权给hadoop用户
(pyspark) [root@test1 conf]# su - hadoop



# (1): 配置workers文件
[hadoop@test1 ~]# cd /export/server/spark/conf/ 
[hadoop@test1 conf]# mv workers.template workers
[hadoop@test1 conf]# vim workers                 # 清空后填入工作机
test1
test2
test3




# (2): 配置spark-env.sh文件   test1自定义
[hadoop@test1 conf]$ mv spark-env.sh.template spark-env.sh
[hadoop@test1 conf]$ vim spark-env.sh 

## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=test
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080
# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
# worker的 webui地址
SPARK_WORKER_WEBUI_PORT=8081
## 设置历史服务器
# 配置的意思是  将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://test1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"

[hadoop@test1 conf]$ start-dfs.sh              			# 先启动hadoop集群
[hadoop@test1 conf]$ hadoop fs -mkdir /sparklog          # 创建程序运行历史记录存放的文件夹
[hadoop@test1 conf]$ hadoop fs -chmod 777 /sparklog      # 授权最高权限





# (3):配置spark-defaults.conf文件     test1自定义
[hadoop@test1 conf]$ mv spark-defaults.conf.template spark-defaults.conf
[hadoop@test1 conf]$ vim spark-defaults.conf               # 追加以下内容
# 开启spark的日期记录功能
spark.eventLog.enabled 	true
# 设置spark日志记录的路径
spark.eventLog.dir	 hdfs://test1:8020/sparklog/ 
# 设置spark日志是否启动压缩
spark.eventLog.compress true




# (4):配置log4j.properties 文件 
[hadoop@test1 conf]$ mv log4j.properties.template log4j.properties
[hadoop@test1 conf]$ vim log4j.properties 
log4j.rootCategory=INFO, console  ->  log4j.rootCategory=WARN, console



Spark 文件夹同步


# 一定是hadoop所有权

# test1
[hadoop@test1 conf]$ cd /export/server/
[hadoop@test1 server]$ scp -r spark-3.2.0-bin-hadoop3.2 test2:/export/server/
[hadoop@test1 server]$ scp -r spark-3.2.0-bin-hadoop3.2 test3:/export/server/

# test2
[root@test2 server]# su - hadoop
[hadoop@test2 ~]# cd /export/server/
[hadoop@test2 server]# ln -s spark-3.2.0-bin-hadoop3.2 spark    # 创建软连接

# test3
[root@test3 server]# su - hadoop
[hadoop@test3 ~]# cd /export/server/
[hadoop@test3 server]# ln -s spark-3.2.0-bin-hadoop3.2 spark    # 创建软连接



StandAlone 启动


# 启动时需要启动: HDFS  /  YARN(history) 

[hadoop@test1 conf]$ cd /export/server/spark
[hadoop@test1 spark]$ sbin/start-history-server.sh    # 启动运行历史服务器    HistoryServer
[hadoop@test1 spark]$ sbin/start-all.sh               # 启动全部master和worker

# Master集群控制台:  http://192.168.88.201:8080/

# 或者可以一个个启动:
sbin/start-master.sh  # 启动当前机器的master
sbin/stop-master.sh   # 停止当前机器的master

sbin/start-worker.sh  # 启动当前机器的worker
sbin/stop-worker.sh   # 停止当前机器的worker



StandAlone连接集群


[hadoop@test1 spark]$ cd /export/server/spark/bin/
[hadoop@test1 bin]$ ./pyspark --master spark://test1:7077

# 程序运行临时地址:http://192.168.88.201:4040
# 历史任务服务地址:http://192.168.88.201:18080



Zookeeper 部署与启动

主节点选举·数据复制·客户端连接管理·故障检测和恢复


zookeeper文件包: https://pan.baidu.com/s/1xk_-PxCdP2CFGiklGa0fbA?pwd=8psi 

# test1
[hadoop@test1 bin]$ cd /export/               
[hadoop@test1 bin]$ rz
[hadoop@test1 export]$ tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server/  
[hadoop@test1 export]$ ln -s apache-zookeeper-3.5.9-bin zookeeper  # 创建软连接
[hadoop@test1 export]$ cd /export/server/zookeeper/conf/
[hadoop@test1 conf]$ cp zoo_sample.cfg zoo.cfg                 # 更名(权限问题)
[hadoop@test1 conf]$ cd /export/server/zookeeper/bin/
[hadoop@test1 bin]$ ./zkServer.sh start                        # 启动
25252 QuorumPeerMain
[hadoop@test1 bin]$ cd /export/server/
[hadoop@test1 server]$ scp -r apache-zookeeper-3.5.9-bin /export/server/  # 分发备用主机

# test2
[hadoop@test2 bin]$ cd /export/server/
[hadoop@test2 export]$ ln -s apache-zookeeper-3.5.9-bin zookeeper  # 创建软连接
[hadoop@test2 conf]$ cd /export/server/zookeeper/bin/
[hadoop@test2 bin]$ ./zkServer.sh start                            # 启动

# 可以选择放入变量环境



StandAlone HA 部署与启动

提高集群的可用性,支持故障恢复,负载均衡,系统扩展性

# 前提: 确保Zookeeper 和 HDFS 均已经启动

[hadoop@test1 bin]$ cd /export/server/spark/conf/
[hadoop@test1 conf]$ vim spark-env.sh           # 修改spark-env.sh
# 删除:
export SPARK_MASTER_HOST=test1
# 配置zookeeper 主备机
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=test1:2181,test2:2181,test3:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"
[hadoop@test1 conf]$ scp spark-env.sh test2:/export/server/spark/conf/    # 分发
[hadoop@test1 conf]$ scp spark-env.sh test3:/export/server/spark/conf/    # 分发
[hadoop@test1 conf]$ cd /export/server/spark
[hadoop@test1 spark]$ sbin/stop-all.sh                    # 停止当前StandAlone集群

# test1
[hadoop@test1 spark]$ sbin/start-all.sh

# test2
[hadoop@test2 ~]$ cd /export/server/spark
[hadoop@test2 spark]$ sbin/start-master.sh

# 启动两个Master 三个Worker

# test1 http://192.168.88.201:8081/   
URL: spark://test1:7077
Alive Workers: 3
Cores in use: 3 Total, 0 Used
Memory in use: 3.0 GiB Total, 0.0 B Used
Resources in use:
Applications: 0 Running, 0 Completed
Drivers: 0 Running, 0 Completed
Status: ALIVE
Workers (3)


# test2 http://192.168.88.202:8080/
URL: spark://test2:7077
Alive Workers: 0
Cores in use: 0 Total, 0 Used
Memory in use: 0.0 B Total, 0.0 B Used
Resources in use:
Applications: 0 Running, 0 Completed
Drivers: 0 Running, 0 Completed
Status: STANDBY

# 在正式部署的时候需要测试是否主备交换



Spark On YARN 模式

Master由ResoureManager代替,Worker由NodeManager代替

Executor全部运行在YARN提供的容器内

Spark On YARN是有两种运行模式的

一种是Cluster模式一种是Client模式.这两种模式的区别就是Driver运行的位置.

Cluster模式(集群模式):Driver运行在YARN容器内部,和ApplicationMaster在同一个容器内

Client模式即(客户端模式):Driver运行在客户端进程中,比如Driver运行在spark-submit程序的进程中


+--------------+-----------------+----------------+---------------------+-------------------+
|   模式       |  Driver运行位置  |   日志查看      |       生产可用       |      稳定性       |
+--------------+-----------------+----------------+---------------------+-------------------+
| Cluster模式  |    YARN容器内    |     容器内      |        推荐         |        稳定       |
| Client模式   |   客户端进程内   | 输出流中方便查看 |       不推荐        |   受客户端进程影响  |
+--------------+-----------------+----------------+---------------------+-------------------+


bin/pyspark --master yarn --deploy-mode client|cluster
# --deploy-mode 选项是指定部署模式, 默认是 客户端模式
# client就是客户端模式
# cluster就是集群模式
# --deploy-mode 仅可以用在YARN模式下

常用参数:

--class:指定Spark应用程序的入口类。
--master:指定Spark应用程序的运行模式,如yarn、local等。
--deploy-mode:指定应用程序的部署模式,如client、cluster等。
--executor-memory:指定每个Executor的内存大小。
--num-executors:指定Executor的数量。
--driver-memory:指定Driver的内存大小。
--executor-cores:指定每个Executor的核心数。
--driver-cores:指定Driver的核心数。
--queue:指定提交应用程序到的队列。
--name:指定应用程序的名称。
--conf:指定配置参数,如spark.executor.memory、spark.driver.memory等。
--files:指定要上传到Executor所在节点的文件。
--jars:指定要上传到Executor所在节点的JAR包。
--archives:指定要上传到Executor所在节点的压缩包。
--py-files:指定要上传到Executor所在节点的Python文件。
--packages:指定要下载的依赖包。
--repositories:指定要搜索依赖包的仓库。
--exclude-packages:指定不下载的依赖包。
--driver-class-path:指定Driver的类路径。
--executor-class-path:指定Executor的类路径。
--driver-java-options:指定Driver的JVM参数。
--executor-java-options:指定Executor的JVM参数。
--verbose:显示详细的日志信息。
--help:显示帮助信息。



Spark On YARN 启动(推荐)


# 确保   HADOOP_CONF_DIR    YARN_CONF_DIR   的环境变量
[hadoop@test1 ~]$ cd /export/server/spark/conf
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

# 启动交互式(一)
[hadoop@test1 hadoop]$ cd /export/server/spark
[hadoop@test1 spark]$ bin/pyspark --master yarn

# 提交执行任务(二)  提示太多可以到日志配置文件修改等级:ERROR
# bin/spark-submit --master yarn --deploy-mode client|cluster /xxx/xxx/xxx.py 参数
[hadoop@test1 spark]$ bin/spark-submit --master yarn --deploy-mode client /export/server/spark/examples/src/main/python/pi.py 100


# 查看执行  
http://192.168.88.201:8088/cluster



标签:test1,部署,hadoop,server,--,文档,export,Spark,spark
From: https://www.cnblogs.com/wanghong1994/p/17774447.html

相关文章

  • NeuVector 基于 Docker 部署
    1、Docker、Docker-Compose安装https://www.cnblogs.com/a120608yby/p/9883175.htmlhttps://www.cnblogs.com/a120608yby/p/14582853.html2、基于Docker-Compose部署NeuVector#vimdocker-compose.ymlversion:"3.8"services:allinone:pid:hostima......
  • pyspark 连接hive
    pyspark连接hive想要spark能够连接上hive,就需要将hive的一些配置文件放到spark中,让spark可以通过配置文件中的metastore.uris找到hive的元数据库,从而访问hive.1.将hive的conf文件夹下的hive-site.xml,复制到本地spark的conf文件夹中:2.将hive的lib文件夹下的mysql连接包mysql-co......
  • 【靶场部署】docker搭建sqli-labs
    1、声明本文所介绍的内容仅用于学习和交流,严禁利用文中技术进行非法行为。由于传播、利用本文所提供的信息和技术而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。2、sqli-labs介绍sqli-labs是一个开源且非常有学习价值的SQL注入靶场,基本......
  • 服务部署图绘制--Mermaid
    官网:https://mermaid.js.org/syntax/flowchart.html 例子:https://blog.csdn.net/weixin_55508765/article/details/125735923 npminstallmermaid <template><divclass="test-container"><h1>输入编辑流程图</h1><divcla......
  • 基于Python的《计算机组成原理》在线学习平台-计算机毕业设计源码+LW文档
    摘 要 随着互联网的发展,通过计算机来学习是当前非常流行的一种学习方式。通过课程虽然可以面对面的进行交流和学习,但是很多时候因为地区和空间的限制会受到很多的影响但是通过网络来进行学习可以打破这一局限性,为此我开发了本基于Python的《计算机组成原理》在线学习平台网站......
  • 基于python的旅游网站-计算机毕业设计源码+LW文档
    摘 要 随着时代的发展,人们对旅游也越来越重视,近些年来我国的旅游产业也发生了翻天覆地的变化,但是很多人在出去旅游的时候不知道去哪里旅游,在预订酒店和机票的时候也没有一个综合性的旅游网站,为了让人们的旅游变的更加的方便,为此我开发了本基于python的旅游网站本基于python的......
  • kubernetes文档支持的版本
    https://kubernetes.io/zh-cn/docs/网站一共是可以阅读5个k8s版本的文档。这5个版本包括k8s最新版和最近的4个版本。例如当前最新版是1.28,那么文档网站可以阅读1.28、1.27、1.26、1.25、1.24这5个版本。在接下来的文档中,全部是以kubernetes1.28作为解释版本,文档里提到的需要实......
  • 基于Python的招聘网站爬虫及可视化的实现-计算机毕业设计源码+LW文档
    摘要随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那么容易,对于应聘者也是如此。本系统通过对网络爬虫的......
  • docker入门加实战—部署Java和前端项目
    docker入门加实战—部署Java和前端项目部署之前,先删除nginx,和自己创建的dd两个容器:dockerrm-fnginxdd部署Java项目作为演示,我们的Java项目比较简单,提供了一个接口:配置文件连接docker里的mysql:打包如下:DockerFIle文件如下:#基础镜像FROMopenjdk:11.0-jre-buster......
  • 基于Java Web的多功能旅游网站的设计与实现-计算机毕业设计源码+LW文档
    摘 要 随着时代的发展,人们对旅游也越来越重视,近些年来我国的旅游产业也发生了翻天覆地的变化,但是很多人在出去旅游的时候不知道去哪里旅游,在预订酒店和机票的时候也没有一个综合性的旅游网站,为了让人们的旅游变的更加的方便,为此我开发了本基于JavaWeb的多功能旅游网站本基于......