CentOS7 基于 Hadoo2.7.3 安装spark2.4.3 以及安装 scala
0x00准备
0x01 前提
确保Hadoop2.7.3完全分布式集群可正常使用
笔者已配置环境如下:
JDK版本:jdk1.8.0_121
Hadoop版本:hadoop-2.7.3
三台服务器ip分布如下
10.1.1.91 hadoop01 #主
10.1.1.92 hadoop02 #从
10.1.1.93 hadoop03 #从
启动Hadoop
start-all.sh
#
# 用jps查看主节点有如下活动
8227 DataNode
8580 ResourceManager
8692 NodeManager
8901 Jps
8122 NameNode
8397 SecondaryNameNode
#
# 用jps查看从节点
7430 Jps
7197 DataNode
7309 NodeManager
0x02 下载 Spark 安装包
Spark官方下载地址:https://spark.apache.org/downloads.html
- 选择版本号,如2.4.3
- 选择包类型,如Pre-buillt for Apache Hadoop 2.7 and later
- 点击下载进入下载页面
选择建议镜像下载地址进行下载:
0x03 下载 Scala 安装包
Scala官方下载地址:https://www.scala-lang.org/download/2.12.8.html
- 打开页面滑动至底部
- 选择包类型,如scala-2.12.8.tgz
0x10安装配置Scala
在主节点完成以下配置
- 解压Scala的tgz包到路径/opt/module
tar -xvf scala-2.12.8.tgz -C /opt/module
- 编辑/etc/profile(在文本末尾添加),配置系统环境变量
# 使用vi打开
vi /etc/profile
#
# 添加如下Scala的环境变量
export SCALA_HOME=/opt/module/scala-2.12.8
export $SCALA_HOME/bin:$PATH
#
#保存退出,然后source使其生效
source /etc/profile
0x20 安装配置Spark
以下操作均在主节点机器上
0x21解压tgz包和配置系统环境变量
- 解压Spark的tgz包到路径/opt/module
tar -xvf spark-2.4.3-bin-hadoop2.7.tgz -C /opt/module
2.编辑/etc/profile文件(在末尾添加) ,配置系统环境变量
# 使用vi打开
vi /etc/profile
#
# 添加如下saprk的环境变量
export SPARK_HOME=/opt/module/spark-2.4.3-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
#
#保存退出,然后source使其生效
source /etc/profile
0x22 配置spark-env.sh文件
#
# 进入spark安装路径的conf目录
cd /opt/module/spark-2.4.3-bin-hadoop2.7/conf/
#
# 拷贝spark-env.sh已有模板
cp spark-env.sh.template spark-env.sh
用vim编辑 spark-env.sh 在末尾添加如下内容
#
# JDK 的安装路径
export JAVA_HOME=/opt/module/jdk1.8.0_121
# Scala 的安装路径
export SCALA_HOME=/opt/module/scala-2.12.8
# Hadoop 的安装路径
export HADOOP_HOME=/opt/module/hadoop-2.7.3
# Hadoop 配置文件路径
export HADOOP_CONF_DIR=/opt/module/hadoop-2.7.3/etc/hadoop
# 集群主机IP
export SPARK_MASTER_IP=10.1.1.91
# 集群主机IP
export SPARK_MASTER_HOST=10.1.1.91
# 在Slave中需要将export SPARK_LOCAL_IP=10.1.1.91改成Slave对应节点的IP
export SPARK_LOCAL_IP=10.1.1.91
# Worker内存,不能超过实际内存
export SPARK_WORKER_MEMORY=1g
# Worker核心数
export SPARK_WORKER_CORES=2
# spark 安装路径
export SPARK_HOME=/opt/module/spark-2.4.3-bin-hadoop2.7
# Hadoop bin路径
export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop-2.7.3/bin/hadoop classpath)
0x23 配置slaves文件(这个文件模板也在conf下)
#
# 拷贝slaves已有模板
cp slaves.template slaves
用vim编辑 slaves 文件,添加如下内容(hosts文件中配置的集群主机名)
hadoop01
hadoop02
hadoop03
0x30 将以上安装以及配置从主节点拷贝的从节点
集群内是用scp命令传输文件很方便
0x31 主节点拷贝scala到从节点
scp -r /opt/module/scala-2.12.8/ root@hadoop02:/opt/module/
scp -r /opt/module/scala-2.12.8/ root@hadoop03:/opt/module/
0x32 主节点拷贝spark到从节点
scp -r /opt/module/spark-2.4.3-bin-hadoop2.7/ root@hadoop02:/opt/module/
scp -r /opt/module/spark-2.4.3-bin-hadoop2.7/ root@hadoop03:/opt/module/
注意:拷贝到从节点的spark,配置路径conf下的 spark-env.sh
需要将 export SPARK_LOCAL_IP=10.1.1.91 中的IP改成Slave对应节点的IP
如,在从节点hadoop02中
export SPARK_LOCAL_IP=10.1.1.92
如,在从节点hadoop03中
export SPARK_LOCAL_IP=10.1.1.93
0x33 主节点拷贝/etc/profile文到从节点
- 拷贝
scp /etc/profile root@hadoop02:/etc/profile
scp /etc/profile root@hadoop03:/etc/profile
- 执行source命令是环境变量生效
ssh root@hadoop02 "source /etc/profile"
ssh root@hadoop03 "source /etc/profile"
0x40 启动Spark
0x41 启动spark(在此之前Hadoop已启动)
/opt/module/spark-2.4.3-bin-hadoop2.7/sbin/start-all.sh
注:Spark的启动脚本的名称和Hadoop一样的,你可以使用mv命令为spark启动脚本取个别名
如:start-spark-all.sh
便于自己区分
0x42 jps 查看主从集群已有活动
主节点
8227 DataNode
10115 Worker
8580 ResourceManager
8692 NodeManager
10149 Jps
8122 NameNode
8397 SecondaryNameNode
可见相对于本篇开始,主节点多出了Master和Worker
从节点
7820 Jps
7197 DataNode
7309 NodeManager
7775 Worker
可见相对于本篇开始,从节点多出了Worker
0x50 参考
[待补充]