1. Spark集群安装
1.1 安装
1.1.1 机器部署
准备四台Linux服务器,安装好JDK1.8
1.1.2下载Spark安装包
1.1.3上传安装包
将下载好的 spark-2.4.0-bin-hadoop2.6.tgz 压缩包上传到linux 虚拟机上
百度云网盘:https://pan.baidu.com/s/1XhC2g7VFblAIqAvZdU5GTQ 提取码: nrhy
由于Spark集群安装完毕,会有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且 启动至少两个Master节点来实现高可靠,配置方式比较简单:
Spark集群规划:mini1,mini2是Master;mini3,mini4 为work
本集群搭建案例,以4节点为例进行搭建,角色分配如下:
节点 | 说明 | IP地址 | zookeeper |
mini1 | 主节点 master | 192.168.63.181 | 是 |
mini2 | 主节点master | 192.168.63.182 | 是 |
mini3 | 从节点 work | 192.168.63.183 | 是 |
mini4 | 从节点work | 192.168.63.184 | 否 |
1.1.4配置Spark
相关前期配置详细请看https://blog.csdn.net/weixin_38201936/article/details/85096496 本博主hadoop集群搭建
如下图 在根目录下建立一个hadoop 用户 然后登陆 主节点为mini1
蓝框为上传的压缩包 在根目下创建一个文件
mkdir bigdata 然后将上传的压缩包解压到bigdata 文件中
tar -zxvf spark-2.4.0-bin-hadoop2.6.tgz -C bigdata 解压
1)进入 conf 目录
2) mv spark-env.sh.template spark-env.sh 修改 spark-env.sh.template
3) vi spark-env.sh 编辑
4) 在该配置文件中添加如下配置 保存退出
第一个是配置java的安装路径 可以$JAVA_HOME 查看一下
第二个是配置主机名: 博主的主机名是mini1
第三个是配置端口号: spark默认端口号是7077
export JAVA_HOME=/usr/java/jdk1.8.0_191-i586
export SPARK_MASTER_IP=sparknode1
export SPARK_MASTER_PORT=7077
5) 重命名并修改slaves.template文件
将mini3,mini4 作为work配置如下:
6)将bigdata 文件复制到其他两台虚拟机上
scp -r bigdata mini2:/home/spark/
scp -r bigdata mini3:/home/spark/
scp -r bigdata mini4:/home/spark/
7) 启动 在mini1上执行sbin/start-all.sh脚本,然后在mini2上执行sbin/start-master.sh启动第二个Master
网址上输入:http://sparknode1:8080 查看页面
spark shell 启动:
hadoop@mini1 spark]$ bin/spark-shell --master://mini1:7077 --executor-memory 512m --total-executor-cores 4
启动之后如图
启动之后做一个wordcount统计程序计算
随便写一个words.txt 然后上传到hdfs中,输入下面的统计
scala> sc.textFile("hdfs://mini1:9000/words.txt")
.flatMap(_.split(" ")).map((_,1))
.reduceByKey(_+_,1).sortBy(_._2,false).collect