spark集群主要有三种方式,standalone、on mesos 和 on yarn
standalone模式指:以spark架构为主集群资源管理模式,即资源的管理和分配以及任务调度都由spark生态来完成
spark on mesos和spark on yarn是把资源管理和分配交给其他框架来实现,这是将来的趋势。其中yarn又是基于hadoop架构的,配置yarn还需要更多地配置hadoop的相关文件,相比而言mesos比较好配置,建议配置spark on mesos。
这次的技术分享主要以standalone为主,快速地搭建一套spark集群。
操作系统:ubuntu 16.4
假设有如下地址:
1.1.1.1的ip为主机master
2.2.2.2的ip为从机slave1
一、配置host
1、编辑 /etc/hosts
(1)增加如下行:
1.1.1.1 master master
2.2.2.2 slave1 slave1
2、编辑 /etc/hostname
(1)把所有的内容去掉,修改成master(从机则修改成slave1)
3、sh命令行输入:service networking restart
或者重启
4、建立如下目录
/disk1
/disk1/java
/disk1/spark
5、下载jdk
1、进入:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载jdk
或者(截止2018/08/15,jdk8的下载下载方式如下):
(1)进入文件夹
sh:cd disk1
sh:cd java
(2)下载jdk
sh:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
其中标红的地方是会变更的,需要去oracle官网去寻找最新的地址
(3)解压
sh:tar zxf jdk-8u181-linux-x64.tar.gz
(4)给java目录修改一下名字,方便后期增加路径信息
sh:mv jdk1.8.0_181 java_main
6、下载spark
(1)进入文件夹
cd disk1
cd spark
(2)下载spark
wget http://mirrors.hust.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
(3)解压
tar spark-2.3.1-bin-hadoop2.7.tgz
(4)修改名字
mv spark-2.3.1-bin-hadoop2.7 spark_main
7、配置spark
(1)进入配置文件目录
cd /disk1/spark/spark_main/conf
(2)复制tmeplates文件
cp slaves.templates slaves
cp spark-env.sh.template spark-env.sh
(3)编辑slaves
vim slaves打开文件修改localhost为:slave1
保存
(4)编辑spark-env.sh
vim spark-env.sh追加如下:
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export JAVA_HOME=/disk1/java/java_main
保存
8、配置~/.bashrc
vim ~/.bashrc
追加如下:
export JAVA_HOME=/disk1/java/java_main
export JRE_HOME=${JAVA_HOME}/jre
export SPARK_HOME=/disk1/spark/spark_main
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:$SPARK_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
保存退出
执行:source ~/.bashrc
到这,所有的配置都配置完了,这是主机master的配置,从机slave1只需要把/etc/hostname的内容修改为slave1,其余的配置用master的所有配置信息,一模一样
最后:
cd /disk1/spark/spark_main/sbin
执行:
start-all-sh
输入slave1密码即可启动集群,免密登录详见百度- -
查看集群是否启动,在内网任一服务器的浏览器输入:master:8080即可,或者输入: IP(内网IP地址):8080,如发现spark页面,说明部署成功!!!
上述过程我自行编写了一些sh脚本,方便一键部署:详见:
https://github.com/a773427182/Bigdata/blob/master/main.sh
和
https://github.com/a773427182/Bigdata/blob/master/main2.sh