一、搭建方法
在虚拟机上搭建集群的方法通常有两种
1.类似于真实的机器上部署,首先要进行密钥授权使各台机器之间能够免密码相互访问,然后在主节点上将各个软件配置好,分发各个从节点。
2.采用虚拟机克隆的方式,先进行软件的配置,然后将master的公钥授权自己,这样克隆出来的多个虚拟机之间都能够免密码登录
本文采用虚拟机克隆的方式创建Spark集群,其他的方式也是与这种方式类似
二、准备
物理机是win10操作系统,首先需要VMware软件,拟搭建具有三个节点的Spark集群,三台主机名名别是master, slave1, slave2
所需要使用的软件及版本
- Ubuntu 14.04
- jdk-8u221 (强烈建议不要使用最新版jdk, 使用jdk8)
- Scala 2.13.1
- Hadoop 3.2.1
- spark-2.4.4-bin-hadoop2.7.tgz
三、系统环境配置
这部分也是准备工作,包括
1.新建名为hadoop的用户,并创建密码,添加管理员权限
2.密钥授权,可以让集群的所有节点相互免密访问
3.修改主机名
4.主机名映射为IP,因为在软件的配置过程当中,通常会使用主机名,而不是直接使用IP,所以采用主机名和IP绑定的方式能够更方便的进行修改以适应各种环境。
操作步骤
1.新建用户,命令如下:
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
完成之后,需要注销当前用户,使用hadoop用户登录
2.密钥授权,首先要安装openssh-server
,然后生成公钥,将公钥添加进授权认证文件
sudo apt-get install openssh-server
cd ~/.ssh/
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
3.修改主机名
sudo vim /etc/hostname
将主机名修改为master
,之后克隆的主机名分别改为slave1
,slave2
4.主机名与ip绑定,当然这一步在最后做,因为现在还没有克隆虚拟机,只有一台master机器。
首先通过ifconfig
命令查看当前IP,然后编辑hosts
文件
sudo vim /etc/hosts
我添加的内容如下
# Spark group
192.168.40.128 master
192.168.40.129 slave1
192.168.40.130 slave2
四、软件安装与配置
1. 软件下载安装
Java下载安装
在 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 中下载JDK8,下载完解压到/home/hadoop/Spark
目录下并重命名,这个目录就作为整个Spark集群的工作空间
命令如下:
tar -zxf ~/Downloads/jdk-8u221-linux-x64.tar.gz -C ~/Spark
cd ~/Spark
mv jdk1.8.0_221 JDK
然后配置环境变量,命令为sudo vim /etc/profile
,添加内容如下
export WORK_SPACE=/home/hadoop/Spark/
export JAVA_HOME=$WORK_SPACE/JDK/
export JRE_HOME=$WORK_SPACE/JDK/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
Scala, Hadoop, Spark下载安装的方式相同,完成之后结果如下
hadoop@master:~/Downloads$ ls ~/Spark
hadoop JDK scala spark
/etc/profile
的内容如下
export WORK_SPACE=/home/hadoop/Spark/
export JAVA_HOME=$WORK_SPACE/JDK/
export JRE_HOME=$WORK_SPACE/JDK/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export SCALA_HOME=$WORK_SPACE/scala
export PATH=$PATH:$SCALA_HOME/bin
export SPARK_HOME=/home/hadoop/Spark/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
配置完之后可以通过java -version
命令和 scala -version
命令验证是否配置正确。
2.Hadoop配置
这部分配置需要配置7个文件,在 home/hadoop/Spark/hadoop/etc/hadoop/