您现在的位置是:首页 >技术交流 >基于前置搭建的 Hbase 环境上配置 Spark 开发环境网站首页技术交流
基于前置搭建的 Hbase 环境上配置 Spark 开发环境
1. 准备工作及说明
本次安装考虑在不影响前置环境(Hbase环境)的基础下添加 Spark 的工作环境
Spark 集群部署采用 yarn 模式进行资源调度管理,这样部署更加简单,因 Hadoop 在之前已经进行集群安装,Spark 是提交 jar 到 yarn 中进行运行,只需要在任意一台中安装 Spark 客户端即可,而又因为是集群模式可能导致作业在未安装 Spark 的节点上运行,推荐的做法是上传这些 jar 到 hdfs 中, 并配置 hdfs 作为依赖,为了偷懒不想改配置文件该步骤我懒得去搞,直接在三台节点中都安装同样的客户端,如有新的依赖加入直接在三台中上传依赖(保障三台环境完全一致)即可。
- 下载
spark-2.3.2-bin-hadoop2.7.tgz
- 上传
spark-2.3.2-bin-hadoop2.7.tgz
到 master1,master2, slave1三台虚拟机中的/temp_work
目录下
2. 修改Hadoop配置文件
因为当前仅为学习用途,虚拟机运行内存我设置的1GB, 默认2GB的交换,这远远不够一些较大的作业运行,实测默认配置时 spark shell 直接被 gc 导致无法正常工作,于是增加的该配置主要用于关闭NodeManager物理内存检查,避免因内存不足导致的进程杀死。
配置文件: /opt/hadoop/etc/hadoop/yarn-site.xml
在配置 yarn-site.xml
文件中加入如下配置
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
同步配置
scp /opt/hadoop/etc/hadoop/yarn-site.xml master2:/opt/hadoop/etc/hadoop/
scp /opt/hadoop/etc/hadoop/yarn-site.xml slave1:/opt/hadoop/etc/hadoop/
3. 解压 Spark
执行如下命令(三台均需执行)
tar -zxvf /temp_work/spark-2.3.2-bin-hadoop2.7.tgz -C /opt
4. 创建 Spark 软连接
执行如下命令(三台均需执行)
ln -sf /opt/spark-2.3.2-bin-hadoop2.7/ /opt/spark
5. 修改 Spark 环境变量
创建spark环境变量文件
cp /opt/spark/conf/spark-env.sh.template /opt/spark/conf/spark-env.sh
修改配置文件添加如下环境变量配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
修改完成后如下图所示
同步配置到从机
scp /opt/spark/conf/spark-env.sh master2:/opt/spark/conf/
scp /opt/spark/conf/spark-env.sh slave1:/opt/spark/conf/
6. 配置系统环境变量
三台虚拟机均需要配置,这里不考虑 sbin ,sbin 独立部署 spark 集群时有用,这里我们基于 yarn 模式,如配置了 sbin 到 path 中会与 hadoop 的 path 产生冲突(部分 sh 文件名相同导致)
# Spark 环境变量
export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH
修改完成后如下图所示
7. 生效环境变量
执行如下命令(三台均需执行)
source /etc/profile
8. 验证环境
验证环境前请确保 ZooKeeper 和 Hadoop 已启动
执行如下命令进入spark shell 验证状态
spark-shell --master yarn --deploy-mode client
进入后如下图所示
可以在 yarn 的 web 监控面板(master1:8088)中的 application 看到应用相关信息即可