大数据-玩转数据-Spark分布式安装

大数据-玩转数据-Spark分布式安装

说明:
之前已经安装配置过了 Hadoop 的 hdfs,yarn 分布式集群,在此基础上进行spark的安装(基于jvm,可以不安装scala)

1.安装spark
1.1下载Spark安装包:
去官网下载 :
Download Spark: spark-3.2.0-bin-hadoop2.7.tgz
因与pyspark 兼容性问题,后更换成了
spark-2.4.4-bin-hadoop2.7.tgz版本,(官网下载里未找到改版本,网盘下载)
官网下载地址:http://spark.apache.org/downloads.html

1.2上传解压:
在上传目录下

[root@hadoop1 ]# tar -zxvf  spark-2.4.4-bin-hadoop2.7.tgz -C /home/hadoop/spark

1.3修改环境变量
在/home/hadoop/.bashrc 添加(已经在此添加过了hadoop 环境变量)

export SPARK_HOME=/home/hadoop/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

1.4环境变量生效

[root@hadoop1]# source /home/hadoop/.bashrc

1.5验证Spark

[root@hadoop1]# spark-shell

1.6退出spark shell

scala> :quit

1.7退出之前查看进程

[root@hadoop1]# jps
2566 Jps
2446 SparkSubmit

说明:spark-shell 就是一个SparkSubmi的进程,spark-shell是利用了本地的线程来模拟运行的,并没有利用到spark集群。

配置集群模式

2、配置
Linux完全分布式(Standalone)

2.1 spark-env.sh
在conf 下修改

[root@hadoop1]# vim spark-env.sh
export SPARK_MASTER_IP=192.168.80.2
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.10.1/etc/hadoop

2.2 slaves
在conf下

 [root@hadoop1]# vim slaves
hadoop1
hadoop2
hadoop3
hadoop4

2.3 分发到其他节点
部署到其它机器上:
到拷贝文件所在目录

[root@hadoop1]# for i in {2..4};do scp -r /home/hadoop/spark hadoop$i:$PWD; done

同样,.bashrc 环境变量也要拷贝,并生效。

[root@hadoop1]# for i in {2..4};do scp -r /home/hadoop/.bashrc hadoop$i:$PWD; done

2.4 启动
为了避免和hadoop中的start/stop-all.sh脚本发生冲突,将spark/sbin/start/stop-all.sh重命名

[root@hadoop1]#  mv start-all.sh start-spark-all.sh
[root@node01]#  mv stop-all.sh stop-spark-all.sh

启动:
先启动hdfs,yarn,再启动spark
[root@hadoop1]# start-spark-all.sh

会在我们配置的主节点master上启动一个进程Master
其它节点启动work进程

单独启动Master或者Worker
start-master.sh 或者start-slaves.sh
启动之后,master将会打印spark://HOST:PORT。你可以通过它连接workers,或者向SparkContext传递"master"参数。你也可以通过master的WEB UI来找到它

2.5 验证

[root@hadoop1]#cd  /home/hadoop/spark/bin
[root@hadoop1 bin]# run-example SparkPi

在这里插入图片描述

[root@hadoop1 bin] # run-example SparkPi 2>&1 |grep "Pi is roughly"

在这里插入图片描述

scala>sc.textFile("hdfs://ns1/input/spark/wordcount.txt").flatMap(_.split("")).map((_, 1)).reduceByKey(_+_).collect.foreach(println)
1

我们发现spark非常快速的执行了这个程序,计算出我们想要的结果

2.6 端口
8080–>spark集群的访问端口,类似于hadoop中的50070和8080的综合
4040–>sparkUI的访问地址 应用级别的界面,一个应用对应一个
7077–>hadoop中的9000端口
2.7 WEB界面管理
同网段电脑
http://192.168.80.2:8080
在这里插入图片描述

总结

Spark+Hadoop的组合,是大数据领域热门的组合
优势:
1.每一个作业独立调度,可以把所有的作业做一个图进行调度,各个作业之间相互依赖,在调度过程中一起调度,速度快。
2.所有过程都基于内存,所以通常也将Spark称作是基于内存的迭代式运算框架。
3.spark提供了更丰富的算子,让操作更方便。
4.更容易的API:支持Python,Scala和Java。

由于Spark同时支持批处理与流处理,因此,对于一些类型的企业应用而言,从“Hadoop+Storm”架构转向Spark架构就成为一种很自然的选择。
需要说明的是,Spark Streaming的原理是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业使用面向批处理的Spark Core进行处理,通过这种方式变相实现流计算,而不是真正实时的流计算,因而通常无法实现毫秒级的响应。因此,对于需要毫秒级实时响应的企业应用而言,仍然需要采用流计算框架(如Storm,FLINK)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值