ubuntu 部署spark

的方式似懂非懂目录

一、 conda环境

二、PySpark环境安装

三、Spark On YARN环境搭建

1. 先解压

2. 配置spark-env.sh

3. 修改hadoop的yarn-site.xml

4. 配置依赖spark jar包

5. 修改spark-defaults.conf

6. 修改spark-env.sh

7. 建议配上python

四、提交测试


首先下载spark安装包,Downloads | Apache Spark

选择对应hadoop版本的spark下载,其他版本链接:News | Apache Spark

-----------------------------------------------------------------------------------

一、 conda环境

为了隔离环境方便(ubuntu自带有python了,在虚拟环境单独再搞一个),根据ubuntu中安装miniconda3-py_ubuntu安装miniconda3-CSDN博客

安装好conda.

配置好源后,配置变量

vim  ~/.bashrc

export ANACONDA_HOME=/home/peng/miniconda3
export PATH=$PATH:$ANACONDA_HOME/bin

根据自己的路径更改

使其生效    source  ~/.bashrc

这时发现,终端会自动进入conda的base环境,可以关闭

conda config --set auto_activate_base false

创建pyspark_env环境

 conda create -n pyspark_env python=3.8

期间需要下载各种依赖包,都  y   就行

安装完成后,可查看当前安装的env。

conda env list

----------------------

二、PySpark环境安装

摘自黑马:PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 类似Pandas一样,是一个库

先激活新创建的环境

conda activate pyspark_env

然后,在pyspark_env环境中,可以用pip install pyspark  或者 conda install pyspark==3.2.1 安装pyspark    为了后续flink安装依赖包一致,下图pyspark后面加上==3.2.1

三、Spark On YARN环境搭建

如果是分布式的集群,下面步骤均需同步到每个节点。该教程参考自黑马程序员,非常感谢! 

直接用之前电脑的存档文件,各位可以从官网下载到合适目录,我放在  /home/peng/software  (硬盘换了,重新安装后,所有软件都放在这个目录了,先安装了hadoop3.2.4)下

1. 先解压

cd /home/peng/software

tar -zxvf spark-3.2.2-bin-hadoop3.2.tgz 

创建spark的软连接:

ln  -s  spark-3.2.2-bin-hadoop3.2  spark
2. 配置spark-env.sh

先进入spark/conf目录

cd   spark/conf/

cp spark-env.sh.template spark-env.sh

vim spark-env.sh

在配置地方,加入下面两行

HADOOP_CONF_DIR=/home/peng/software/hadoop-3.2.4/etc/hadoop
YARN_CONF_DIR=/home/peng/software/hadoop-3.2.4/etc/hadoop
注意:如果用的是spark-without-hadoop的spark安装包,需要在上面多添加一句:

(如,用的是spark-3.2.1-bin-without-hadoop.tgz,而hadoop是3.1.3的话,加一句下面的,否则不需要添加)

export SPARK_DIST_CLASSPATH=$(/home/peng/software/hadoop-3.1.3/bin/hadoop classpath)
3. 修改hadoop的yarn-site.xml
vi /home/peng/software/hadoop-3.2.4/etc/hadoop/yarn-site.xml 

内容如下(注意其中的master改为你节点的名称或者ip,且是hdfs的主机,之前hdfs配置的是localhost,那么下面spark配置里面的所有master都需要改为localhost):

<configuration>
    <!-- 配置yarn主节点的位置 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 设置yarn集群的内存分配方案 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>20480</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>2048</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>
    <!-- 开启日志聚合功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置聚合日志在hdfs上的保存时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://master:19888/jobhistory/logs</value>
    </property>
    <!-- 关闭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>

</configuration>

设置spark的历史服务器地址

cd /home/peng/software/spark/conf
cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf

末尾添加下面内容(注意:改好master( master-->localhost),并在hdfs根目录下创建sparklog目录):

spark.eventLog.enabled                  true
spark.eventLog.dir                      hdfs://master:9000/sparklog/
spark.eventLog.compress                 true
spark.yarn.historyServer.address        master:18080

设置日志级别

hadoop fs -mkdir /sparklog

cd /home/peng/software/spark/conf
cp log4j.properties.template log4j.properties
vi log4j.properties

设置 INFO  改为  WARN

4. 配置依赖spark jar包

当Spark Application应用提交运行在YARN上时,默认情况下,每次提交应用都需要将依赖Spark相关jar包上传到YARN 集群中,为了节省提交时间和存储空间,将Spark相关jar包上传到HDFS目录中,设置属性告知Spark Application应用

先在hadoop创建存放路径(先启动hdfs:strat-dfs.sh),再上传相关jar文件

start-all.sh
hadoop fs -mkdir -p /spark/jars
hadoop fs -put /home/peng/software/spark/jars/*  /spark/jars
5. 修改spark-defaults.conf
cd /home/peng/software/spark/conf/
vi spark-defaults.conf

末尾添加下面一行(master —>localhost)

spark.yarn.jars  hdfs://master:9000/spark/jars/*
6. 修改spark-env.sh

添加下面一行,注意master( master -> localhost)

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://master:9000/sparklog
-Dspark.history.retainedApplications=30"
7. 建议配上python
vi ~/.bashrc

# 添加下面两行
export PYSPARK_PYTHON=/home/peng/miniconda3/envs/pyspark_env/bin/python
export PYSPARK_DRIVER_PYTHON=/home/peng/miniconda3/envs/pyspark_env/bin/python

顺便配上SPARK_HOME

export SPARK_HOME=/home/peng/software/spark
export PATH=$PATH:$SPARK_HOME/bin

使生效,source  ~/.bashrc

-----如果是集群模式,上面内容需要同步到其他节点---------------------------

四、提交测试

代码如下:

spark-submit \
--master yarn \
/home/peng/software/spark/examples/src/main/python/pi.py \
10

结果如下(确保sparklog已经被创建):

-------------------------------------------------------------------

至此,完成了spark on yarn 的配置,单机版不用这么麻烦,但为了以后集群使用,故采用该方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值