安装Spark并运行示例

看视频学习安装Spark,前提是已经配置好各个虚拟机的网络等等
https://www.bilibili.com/video/BV1vb41137Yv?p=5

1、spark官网下载

2、解压压缩包
cd /usr/src/spark
tar -zxvf  spark-2.4.6-bin-hadoop2.7.tgz -C /root/src/

3、文件重命名
cd /root/src/spark-2.4.6-bin-hadoop2.7
cd conf
mv spark-env.sh.template spark-env.sh
mv slaves.template slaves


4、配置环境变量
vi spark-env.sh
export JAVA_HOME=/root/src/jdk1.8.0_171

export SPARK_MASTER_HOST=master
export SPARK_WORKER_PORT=7077

5、配置节点名称
vi slaves
slave1
slave2

6、拷贝设置到其它节点
for i in {1..2}; do scp -r /root/src/spark-2.4.6-bin-hadoop2.7/ slave$i:/root/src/;done

7、启动spark
cd /root/src/spark-2.4.6-bin-hadoop2.7
sbin/start-all.sh
sbin/stop-all.sh

8、查看管理节点
http://192.168.10.168:8080/


高可用集群安装
1、下载zookeeper
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

2、解压安装
cd /usr/src/zookper
tar -zxvf  zookeeper.tar.gz -C /root/src/

3、配置文件(需要启动几个机器就配置几个机器的文件)
cd /root/src/zookeeper/conf
#cp zoo_sample.cfg zoo.cfg
vi zoo.cfg


dataDir=/root/src/zookeeper/data
server.1=master:2888:3888
server.2=master2:2888:3888
server.3=master3:2888:3888

4、在dataDir的目录下创建myid文件,里面写上server.后面的文本
比如server.1就写1
比如server.2就写2


运行
systemctl stop firewalld
service iptables status
chkconfig iptables off
 	
cd /root/src/zookeeper/bin
./zkServer.sh start
./zkServer.sh restart
./zkServer.sh stop

检查运行状态(显示正常需要启动所有配置好的机器)
./zkServer.sh status
jps
查看进程
netstat -nltp | grep 2181

杀死进程
kill -9 7018

作用:选举、保存活跃Master的信息、保存所有worker的资源信息和资源使用情况(为了故障切换)

1、配置环境变量
cd /root/src/spark-2.4.6-bin-hadoop2.7/conf
vi spark-env.sh
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark2"
export SPARK_WORKER_CORES=4
export SPARK_WORKER_MEMORY=6g

2、拷贝设置到其它节点
for i in {1..2}; do scp -r /root/src/spark-2.4.6-bin-hadoop2.7/conf/spark-env.sh slave$i:$PWD; done
for i in {2..3}; do scp -r /root/src/spark-2.4.6-bin-hadoop2.7/conf/spark-env.sh master$i:$PWD; done

3、启动集群
     启动ZK集群
     启动spark集群,但是只会启动一个Master,另外一个Master手动启动

永久关闭防火墙
systemctl disable firewalld.service


提交第-个spark应用到集群中运行
cd /root/src/spark-2.4.6-bin-hadoop2.7
bin/spark-submit --master spark://master:7077,master2:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.4.6.jar 100

cd /root/src/spark-2.4.6-bin-hadoop2.7
bin/spark-submit --master spark://master:7077,master2:7077 --class org.apache.spark.examples.SparkPi --executor-memory 2g --total-executor-cores 8 examples/jars/spark-examples_2.11-2.4.6.jar 10000


-executor--memory每个executor使用的内存大小
--total-executor-cores整个app使用的核数
提交-个spark程序到spark集群,会产生哪些进程?
Spa rkSubmint(Driver)提交任务
Executor执行真正的计算任务的
提交任务可以指定多个master地址,目的是为了提交任务高可用


Spark Shell(-一个交互式的命令行,里面可以写spark程序,方便学习和测试,他也是一个客户端,用于提交spark应用程序)
cd /root/src/spark-2.4.6-bin-hadoop2.7
bin/spark-shell
bin/spark-shell上面的方式没有指定master的地址,即用的是spark的local模式运行的
bin/spark-shell --master spark://master:7077,master2:7077 
上面是指定了master的地址, 那么就会将任务提交到集群,开始时sparksubmit (客户端)要连接Master,并申请计算资源(内存和核数)
,Master进行资源调度(就是让那些worker启动Executor),在准备工作时,这些进程都已经创建好了

sc.textFile("/root/src/file/file1.txt").flatMap(_. split(" ")). map((_,1)). reduceByKey(_+_).collect

使用Hadoop上面hdfs的内容
先启动hdfs
sbin/start-dfs.sh

查看在/hdfsinput 下面有txt文件
sc.textFile("hdfs://master:9000/hdfsinput/file1.txt").flatMap(_. split(" ")). map((_,1)). reduceByKey(_+_).collect


启动Zookeeper
报错这种
在这里插入图片描述
参考
https://blog.csdn.net/qq_34478594/article/details/105326460?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

更改权限
cd /root/src/zookeeper/data/version-2
chmod 777 acceptedEpoch
chmod 777 currentEpoch
chmod 777 snapshot.200000000
chmod 777 snapshot.500000000

Mast
er2

在这里插入图片描述

master
在这里插入图片描述

启动spark
Master2
在这里插入图片描述

Slave1

在这里插入图片描述
Slave2
在这里插入图片描述

第二个master启动
在这里插入图片描述

查看管理节点
http://192.168.10.168:8080/
在这里插入图片描述

备份管理节点

在这里插入图片描述
执行第一个spark程序(已有jar程序)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

执行第一个spark程序(自己写的scala程序)

使用本地文件
进入spark-shell
bin/spark-shell

sc.textFile("/root/src/file/file1.txt").flatMap(. split(" ")). map((,1)). reduceByKey(+).collect

在这里插入图片描述
运行结果

在这里插入图片描述

使用Hadoop的hdfs文件

在这里插入图片描述
sc.textFile(“hdfs://master:9000/hdfsinput/file1.txt”).flatMap(. split(" ")). map((,1)). reduceByKey(+).collect

按照单词个数从多到少排序
sc.textFile(“hdfs://master:9000/hdfsinput/file1.txt”).flatMap(. split(" ")). map((,1)). reduceByKey(+).sortBy(_._2,false). collect

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


运行java打包的jar中的wordcount
cd /root/src/spark-2.4.6-bin-hadoop2.7
bin/spark-submit \
--master spark://master:7077,master2:7077 \
--class cn.edu360.spark.JavaWordCount \
--executor-memory 2g \
--total-executor-cores 8 \
/root/src/spark-2.4.6-bin-hadoop2.7/examples/jars/SparkTest-1.0-SNAPSHOT.jar \
hdfs://master:9000/hdfsinput/file1.txt \
hdfs://master:9000/output_dir


#删除hdfs目录
hadoop fs -rm -r hdfs://master:9000/output_dir



在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值