的方式似懂非懂目录
一、 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。
----------------------
二、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 的配置,单机版不用这么贫苦,但为了以后集群使用,故接纳该方式。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |