ubuntu 摆设spark

打印 上一主题 下一主题

主题 565|帖子 565|积分 1695

的方式似懂非懂目录
一、 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
  1. export ANACONDA_HOME=/home/peng/miniconda3
  2. export PATH=$PATH:$ANACONDA_HOME/bin
复制代码
根据自己的路径更改
使其见效    source  ~/.bashrc

这时发现,终端会自动进入conda的base环境,可以关闭
  1. conda config --set auto_activate_base false
复制代码

创建pyspark_env环境
  1. conda create -n pyspark_env python=3.8
复制代码
期间需要下载各种依靠包,都  y   就行
安装完成后,可查看当前安装的env。
  1. conda env list
复制代码

----------------------
二、PySpark环境安装

摘自黑马:PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 雷同Pandas一样,是一个库
先激活新创建的环境
  1. 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的软连接:
  1. 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
在配置地方,参加下面两行
  1. HADOOP_CONF_DIR=/home/peng/software/hadoop-3.2.4/etc/hadoop
  2. 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的话,加一句下面的,否则不需要添加)
  1. export SPARK_DIST_CLASSPATH=$(/home/peng/software/hadoop-3.1.3/bin/hadoop classpath)
复制代码
3. 修改hadoop的yarn-site.xml

  1. vi /home/peng/software/hadoop-3.2.4/etc/hadoop/yarn-site.xml
复制代码
内容如下(留意此中的master改为你节点的名称大概ip,且是hdfs的主机,之前hdfs配置的是localhost,那么下面spark配置里面的全部master都需要改为localhost):
  1. <configuration>
  2.     <!-- 配置yarn主节点的位置 -->
  3.     <property>
  4.         <name>yarn.resourcemanager.hostname</name>
  5.         <value>master</value>
  6.     </property>
  7.     <property>
  8.         <name>yarn.nodemanager.aux-services</name>
  9.         <value>mapreduce_shuffle</value>
  10.     </property>
  11.     <!-- 设置yarn集群的内存分配方案 -->
  12.     <property>
  13.         <name>yarn.nodemanager.resource.memory-mb</name>
  14.         <value>20480</value>
  15.     </property>
  16.     <property>
  17.         <name>yarn.scheduler.minimum-allocation-mb</name>
  18.         <value>2048</value>
  19.     </property>
  20.     <property>
  21.         <name>yarn.nodemanager.vmem-pmem-ratio</name>
  22.         <value>2.1</value>
  23.     </property>
  24.     <!-- 开启日志聚合功能 -->
  25.     <property>
  26.         <name>yarn.log-aggregation-enable</name>
  27.         <value>true</value>
  28.     </property>
  29.     <!-- 设置聚合日志在hdfs上的保存时间 -->
  30.     <property>
  31.         <name>yarn.log-aggregation.retain-seconds</name>
  32.         <value>604800</value>
  33.     </property>
  34.     <!-- 设置yarn历史服务器地址 -->
  35.     <property>
  36.         <name>yarn.log.server.url</name>
  37.         <value>http://master:19888/jobhistory/logs</value>
  38.     </property>
  39.     <!-- 关闭yarn内存检查 -->
  40.     <property>
  41.         <name>yarn.nodemanager.pmem-check-enabled</name>
  42.         <value>false</value>
  43.     </property>
  44.     <property>
  45.         <name>yarn.nodemanager.vmem-check-enabled</name>
  46.         <value>false</value>
  47.     </property>
  48. </configuration>
复制代码
设置spark的汗青服务器地址
  1. cd /home/peng/software/spark/conf
  2. cp spark-defaults.conf.template spark-defaults.conf
  3. vi spark-defaults.conf
复制代码
末尾添加下面内容(留意:改好master( master-->localhost),并在hdfs根目录下创建sparklog目录):
  1. spark.eventLog.enabled                  true
  2. spark.eventLog.dir                      hdfs://master:9000/sparklog/
  3. spark.eventLog.compress                 true
  4. spark.yarn.historyServer.address        master:18080
复制代码
设置日志级别
  1. hadoop fs -mkdir /sparklog
  2. cd /home/peng/software/spark/conf
  3. cp log4j.properties.template log4j.properties
  4. 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文件
  1. start-all.sh
  2. hadoop fs -mkdir -p /spark/jars
  3. hadoop fs -put /home/peng/software/spark/jars/*  /spark/jars
复制代码
5. 修改spark-defaults.conf

  1. cd /home/peng/software/spark/conf/
  2. vi spark-defaults.conf
复制代码
末尾添加下面一行(master —>localhost)
  1. spark.yarn.jars  hdfs://master:9000/spark/jars/*
复制代码
6. 修改spark-env.sh

添加下面一行,留意master( master -> localhost)
  1. export SPARK_HISTORY_OPTS="
  2. -Dspark.history.ui.port=18080
  3. -Dspark.history.fs.logDirectory=hdfs://master:9000/sparklog
  4. -Dspark.history.retainedApplications=30"
复制代码
7. 建议配上python

  1. vi ~/.bashrc
  2. # 添加下面两行
  3. export PYSPARK_PYTHON=/home/peng/miniconda3/envs/pyspark_env/bin/python
  4. export PYSPARK_DRIVER_PYTHON=/home/peng/miniconda3/envs/pyspark_env/bin/python
复制代码
顺便配上SPARK_HOME
  1. export SPARK_HOME=/home/peng/software/spark
  2. export PATH=$PATH:$SPARK_HOME/bin
复制代码
使见效,source  ~/.bashrc
-----假如是集群模式,上面内容需要同步到其他节点---------------------------
四、提交测试


代码如下:
  1. spark-submit \
  2. --master yarn \
  3. /home/peng/software/spark/examples/src/main/python/pi.py \
  4. 10
复制代码
结果如下(确保sparklog已经被创建):

-------------------------------------------------------------------
至此,完成了spark on yarn 的配置,单机版不用这么贫苦,但为了以后集群使用,故接纳该方式。

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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表