郭卫东 发表于 2024-6-11 09:14:18

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
https://img-blog.csdnimg.cn/direct/34bac529a69a435f830e1324ca122dcf.png
这时发现,终端会自动进入conda的base环境,可以关闭
conda config --set auto_activate_base false https://img-blog.csdnimg.cn/direct/25f661534827446ab9bf10c434706769.png
创建pyspark_env环境
conda create -n pyspark_env python=3.8 期间需要下载各种依靠包,都  y   就行
安装完成后,可查看当前安装的env。
conda env list https://img-blog.csdnimg.cn/direct/5d54a9de9a1f4950af48d7f9b061554f.png
----------------------
二、PySpark环境安装

摘自黑马:PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 雷同Pandas一样,是一个库
先激活新创建的环境
conda activate pyspark_env https://img-blog.csdnimg.cn/direct/d387a6833a554f16b67a78d099b52ac4.png
然后,在pyspark_env环境中,可以用pip install pyspark  大概 conda install pyspark==3.2.1 安装pyspark    为了后续flink安装依靠包一致,下图pyspark后面加上==3.2.1
https://img-blog.csdnimg.cn/direct/e34c62519b364b268ae84e6afa8f324a.png
三、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
https://img-blog.csdnimg.cn/direct/8a83a00bfc214bcd9783945f946b793c.png
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.jarshdfs://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
-----假如是集群模式,上面内容需要同步到其他节点---------------------------
四、提交测试

https://img-blog.csdnimg.cn/direct/578cb6b1770d4b85b977e53ea4842595.png
代码如下:
spark-submit \
--master yarn \
/home/peng/software/spark/examples/src/main/python/pi.py \
10 结果如下(确保sparklog已经被创建):
https://img-blog.csdnimg.cn/direct/bafeb0645ee1459998618cca34ef7773.png
-------------------------------------------------------------------
至此,完成了spark on yarn 的配置,单机版不用这么贫苦,但为了以后集群使用,故接纳该方式。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: ubuntu 摆设spark