一、scala的安装与配置
scala的下载
下载地址为:scala下载地址
1.启动hadoop(搭建高可用集群的一起启动)
(1)启动Zookeeper(三台虚拟机都进行)
[root@hadoop1 ~]# zkServer.sh start
(2)启动journalnode(三台虚拟机都进行)
[root@hadoop1 ~]# hadoop-daemon.sh start journalnode
(3)启动Hadoop
[root@hadoop1 ~]# start-all.sh
2.scala的安装与配置
(1)安装包的解压(并移动到指定位置)
[root@hadoop1 ~]# tar -zxvf scala-2.12.14.tgz
[root@hadoop1 ~]# mv scala-2.12.14 /export/software/
(2)环境变量的配置
在命令行中输入如下命令,打开profile配置文件
[root@hadoop1 ~]# vi /etc/profile
打开profile文件后在文件末尾加入如下配置语句:
然后再命令行中输入source /etc/profile使环境变量生效。
[root@hadoop1 ~]# source /etc/profile
测试scala安装 scala -version
[root@hadoop1 software]# scala -version
在命令行输入scala,能进入scala命令行说明安装成功.
注意!:退出Scala的命令为 :quit
二、spark的安装与配置
1.spark的下载
下载地址为:spark下载地址
下载对应的Hadoop版本的spark,这里我的Hadoop版本为2.4.1,因此如图选择对应的版本
2.spark的安装与配置
和Scala的安装与配置一样,先进行解压(并移动到指定位置),然后打开profie文件配置环境变量
[root@hadoop1 ~]# tar -zxvf spark-2.1.0-bin-hadoop2.4.tgz
[root@hadoop1 ~]# mv spark-2.1.0-bin-hadoop2.4 /export/software/
3.配置conf/spark-env.sh 文件
[root@hadoop1 ~]# cd /export/software/spark-2.1.0-bin-hadoop2.4/
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# ls
bin data jars licenses python README.md sbin
conf examples LICENSE NOTICE R RELEASE yarn
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# cd conf/
[root@hadoop1 conf]# ls
docker.properties.template metrics.properties.template spark-env.sh.template
fairscheduler.xml.template slaves.template
log4j.properties.template spark-defaults.conf.template
[root@hadoop1 conf]#
进入到conf目录下会发现spark-env.sh为临时文件,须重命名为spark-env.sh
执行如下命令:
[root@hadoop1 conf]# mv spark-env.sh.template spark-env.sh
在文件中加入如下内容:
[root@hadoop1 conf]# vi spark-env.sh
export SCALA_HOME=/export/software/scala-2.12.14
export JAVA_HOME=/export/software/jdk1.8.0_161
export SPARK_WORK_MEMORY=4g
export SPARK_MASTER_IP=hadoop1
export MASTER=spark://hadoop1:7077
参数解释:
SPARK_WORK_MEMORY 决定在每一个Worker节点上可用的最大内存,增加这个数可以在内存中缓存更多数据,但一定要给Slave的操作系统和其他服务预留足够内存
SPARK_MASTER_IP 参数可以是具体的IP地址也可以是hostname,系统会更具hosts文件进行解析
MASTER 配置端口号
PS:SPARK_MASTER_IP和MASTER必须配置否则会造成Slave无法注册主机错误
配置conf/slaves 文件 将节点的主机名加入到slaves文件中
[root@hadoop1 conf]# mv slaves.template slaves
[root@hadoop1 conf]# vi slaves
hadoop2
hadoop3
4.启动Spark集群
在启动前,将scala文件、spark文件以及etc目录下的profile文件传给slave1和slave2,并在slave1和slave2命令行中输入source /etc/profile使环境变量生效
进入spark目录下,输入如下命令:
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# scp -r /export/software/spark-2.1.0-bin-hadoop2.4 hadoop2:/export/software/
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# scp -r /export/software/spark-2.1.0-bin-hadoop2.4 hadoop3:/export/software/
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# scp -r /etc/profile hadoop2:/etc/
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# scp -r /etc/profile hadoop3:/etc/
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# sbin/start-all.sh
如上图所示说明启动成功,这时候分别在三个节点上通过jps查看进程,则如下图所示:
至此spark的安装结束,也已成功启动,如需停止,输入如下命令:
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# sbin/stop-all.sh
5.配置HistoryServer
(1)默认情况下,Spark程序运行完毕后,就无法再查看运行记录的WebUI,通过HistoryServer可以提供一个服务,通过读取日志文件,使得我们可以在程序运行结束后,依然能够查看运行过程。
(2)复制spark-defaults.conf,以供修改
[root@hadoop1 spark-2.1.0-bin-hadoop2.4]# cd /export/software/spark-2.1.0-bin-hadoop2.4/conf/
[root@hadoop1 conf]# ls
docker.properties.template metrics.properties.template spark-env.sh
fairscheduler.xml.template slaves
log4j.properties.template spark-defaults.conf.template
[root@hadoop1 conf]# mv spark-defaults.conf.template spark-defaults.conf
[root@hadoop1 conf]# vi spark-defaults.conf
(3)将以下内容复制到spark-default.conf末尾处,通过这段配置,可以指定spark将日志输入到HDFS中
spark.eventLog.enabled true
//日志的存储路径
spark.eventLog.dir hdfs://hadoop1:8020/spark_log
//日志是否压缩
spark.eventLog.compress true
(4)将以下内容复制到spark-env.sh的末尾,配置HistoryServer启动参数,使得HistoryServer在启动的时候读取HDFS中写入的spark日志
[root@hadoop1 conf]# vi spark-env.sh
//指定HIstoryServer运行参数
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://hadoop1:9000/history"