1.创建3个centos虚拟机
关闭防火墙 systemctl stop firewalld
在 centos7 中默认没有安装 ifconfig,执行 yum install net-tools 安装
注:这里也可以只创建1个实例,做好环境和基础的配置准备,再用克隆功能克隆出2个新的实例,只需要改下IP和mac地址即可
2.修改网卡配置(配静态IP)
修改网卡配置文件,vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.211.55.6
NETMASK=255.255.255.0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
DNS1=114.114.114.114
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=10.211.55.1
NM_CONTROLLED=no
重启服务
service network restart
查看IP
3.修改机器名(即hostname)
master:hostnamectl set-hostname spark_master
slave_1:hostnamectl set-hostname spark_slave_1
slave_2:hostnamectl set-hostname spark_slave_2
4.修改Host
vi /etc/hosts追加:
master主机IP spark_master
slave_1主机IP spark_slave_1
slave_2主机IP spark_slave_2
5.创建免密登录
spark是用scp在服务器之间传文件的,所以需要创建彼此之间SSH免密登录(下文root需要替换为实际的服务器用户名)
每台机器上生成公钥和私钥 ssh-keygen -t rsa 一路回车到底
相互之间拷贝公钥,本机对自己也需要拷贝(下面的指令只能一句一句执行,不能复制连带一起):
ssh-copy-id -i ~/.ssh/id_rsa.pub root@spark_slave_1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@spark_slave_2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@spark_master
6.安装JDK
rpm -ivh jdk-8u151-linux-x64.rpm
7.安装Scala
rpm -ivh scala-2.12.4.rpm
8.部署Spark
81 下载spark-2.2.0-bin-hadoop2.7.tgz
8.2 tar zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /usr/local/ 注:子节点的路径必须和主节点一致
8.3 cd /usr/local/spark-2.2.0-bin-hadoop2.7/
8.4 cd conf
8.5 mv slaves.template slaves
8.6 vi slaves
在该文件中添加子节点所在的位置(Worker节点,文中的localhost删掉)
spark_master
spark_slave_1
spark_slave_2
8.7 mv spark-env.sh.template spark-env.sh
8.8 vi spark-env.sh
在该配置文件中添加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_151
export SCALA_HOME=/usr/share/scala
export SPARK_CONF_DIR=/usr/local/spark-2.2.0-bin-hadoop2.7/conf
export SPARK_MASTER_HOST=10.211.55.6 ##非常关键
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_EXECUTOR_INSTANCES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1024M
8.9 将slaves、spark-env.sh拷到所有的子节点对应的文件夹下
8.10 cd ../sbin
8.11 启动集群:./start-all.sh
8.12 查看启动日志的输出是否正常
8.13 验证:用浏览器打开http://10.211.55.6:8080查看是否有3个worker节点