1 准备工作
2 scala环境安装
2.1 下载
https://www.scala-lang.org/download/2.11.12.html
2.2 解压
[root@hpmaster chy]# tar zxvf scala-2.11.12.tgz -C /usr/local/
2.3 配置环境变量
[root@hpmaster local]# vim /etc/profile
export SCALA_HOME=/usr/local/scala-2.11.12
export PATH=$PATH:$JAVA_HOME/bin:SCALA_HOME/bin
[root@hpmaster local]# source /etc/profile
2.4 验证
[root@hpmaster 桌面]# scala -version
Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL
3 网络结构
节点名称 | ip | zookeeper | master | worker |
hpmaster | 192.168.199.210 | zk | 主master |
|
hpslave1 | 192.168.199.211 | zk | 备master | worker |
hpslave2 | 192.168.199.212 | zk |
| worker |
4 开始配置安装
以下先在 192.168.199.210 (hpmaster) 服务器上操作
5 下载
spark下载地址
如何选择对应Hadoop版本的Spark版本,请参见 hadoop2.7.6和spark-2.3.0以及scala环境搭建
6 解压
[root@hpmaster chy]# tar zxvf spark-2.3.0-bin-hadoop2.7.tgz -C /usr/local/
7 重命明
[root@hpmaster local]# pwd
/usr/local
[root@hpmaster local]# mv spark-2.3.0-bin-hadoop2.7 spark-2.3.0
10 配置文件
[root@hpmaster conf]# pwd
/usr/local/spark-2.3.0/conf
11 spark-env.sh
复制spark-env.sh.template,并重命名为spark-env.sh
[root@hpmaster conf]# cp spark-env.sh.template spark-env.sh
[root@hpmaster conf]# vim spark-env.sh
在文件末尾追加内容:
# jdk
export JAVA_HOME=/usr/local/jdk1.8.0_181
#指定默认master的ip或主机名
export SPARK_MASTER_HOST=hpmaster
#指定maaster提交任务的默认端口为7077
export SPARK_MASTER_PORT=7077
#指定masster节点的webui端口
export SPARK_MASTER_WEBUI_PORT=8088
#每个worker从节点的端口(可选配置)
export SPARK_WORKER_PORT=7079
#每个worker从节点的wwebui端口(可选配置)
export SPARK_WORKER_WEBUI_PORT=8089
#每个worker从节点能够支配的内存数
export SPARK_WORKER_MEMORY=1g
#允许Spark应用程序在计算机上使用的核心总数(默认值:所有可用核心)
export SPARK_WORKER_CORES=1
#每个worker从节点的实例(可选配置)
export SPARK_WORKER_INSTANCES=1
#指向包含Hadoop集群的(客户端)配置文件的目录,运行在Yarn上配置此项
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.6/etc/hadoop
#指定整个集群状态是通过zookeeper来维护的,包括集群恢复
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hpmaster:2181,hpslave1:2181,hpslave2:2181
-Dspark.deploy.zookeeper.dir=/spark"
13 slaves
复制slaves.template并重命名为slaves
[root@hpmaster conf]# cp slaves.template slaves
[root@hpmaster conf]# vim slaves
清除以前内容,在文件末尾追加内容:
hpslave1
hpslave2
14 同步文件
以上配置在hpmaster服务器完成
拷贝hpmaster服务器spark目录到其他远程服务器,保证三台服务器spark配置一样
[root@hpmaster local]# pwd
/usr/local
[root@hpmaster local]# scp -r spark-2.3.0 root@hpslave1:/usr/local/
[root@hpmaster local]# scp -r spark-2.3.0 root@hpslave2:/usr/local/
15 差异配置
修改hpslave1服务器的conf/spark-env.sh文件
#指定默认master的ip或主机名
export SPARK_MASTER_HOST=hpslave1
完成spark主备服务器配置,实现高可用
16 配置scala环境变量
[root@hpmaster local]# vim /etc/profile
export SPARK_HOME=/usr/local/spark-2.3.0
export SCALA_HOME=/usr/local/scala-2.11.12
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
[root@hpmaster local]# source /etc/profile
17 配置spark环境变量
[root@hpmaster local]# vim /etc/profile
export SPARK_HOME=/usr/local/spark-2.3.0
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SPARK_HOME/bin
[root@hpmaster local]# source /etc/profile
18 最终环境变量
综合 java,scala,hadoop,zk
port JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-2.7.6
export SPARK_HOME=/usr/local/spark-2.3.0
export SCALA_HOME=/usr/local/scala-2.11.12
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin
sysctl -w vm.max_map_count=262144
三台服务器最终环境变量配置一样即可
19 启动spark
启动hadoop集群
[root@hpmaster hadoop-2.7.6]# ./sbin/start-dfs.sh
[root@hpslave1 hadoop-2.7.6]# ./sbin/start-yarn.sh
启动zookeeper集群
[root@hpmaster bin]# ./zkServer.sh start
[root@hpslave1 bin]# ./zkServer.sh start
[root@hpslave2 bin]# ./zkServer.sh start
启动spark集群
[root@hpmaster sbin]# ./start-all.sh
或者 master 节点执行 sbin/start-master.sh 和 sbin/start-slaves.sh
备注:启动报错
hpslave2: failed to launch: nice -n 0 /usr/local/spark-2.3.0/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://hpmaster:7077
hpslave2: JAVA_HOME is not set
hpslave2: full log in /usr/local/spark-2.3.0/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hpslave2.out
hpslave1: failed to launch: nice -n 0 /usr/local/spark-2.3.0/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://hpmaster:7077
hpslave1: JAVA_HOME is not set
hpslave1: full log in /usr/local/spark-2.3.0/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hpslave1.out
请检查 :
1 spark-env.sh文件中,export JAVA_HOME=/usr/local/jdk1.8.0_181 是否配置
2 端口是否占用
21 启动成功