1、是什么
Spark是一个基于内存运算的分布式计算框架, 包含多个模块提供各种场景的数据统计分析计算,统一分析引擎
-
速度快 开发效率高运行速度快:Spark支持使用Scala、Java、Python、SQL、R进行快速分布式应用程序构建,并提供了基于内存的资源调度方式,可以将所有的计算步骤在网络和内存中完成,任务过程中不需要使用磁盘IO
-
简单易用 类似Scala中的集合,Spark中提供了近百种高级算子,和4种数据抽象,完成数据处理任务的编排
-
通用性 Spark提供了SparkCore(批处理),SparkSQL(结构化数据运算),SparkStreaming(流式计算),MLlib(机器学习库),GraphX(图计算)
-
兼容性 Spark提供了多种任务管理方式:HadoopYARN、Mesos、K8s Spark也提供了独立的集群模式: 主从架构 主: Master 从: Worker Spark为了兼容Hadoop生态的组件,提供了数百种数据的访问方式
2、集群搭建
-
关于版本
-
经典版本: 1.6.3
-
企业中常见版本: 2.1.x 2.4.x 3.1.x
-
当前: 3.1.2
-
-
下载解压
-
链接: https://pan.baidu.com/s/1-AwAcEoNzwn1DTXs9bP9SA 提取码: kajy
-
修改配置文件
-
spark-env.sh
-
# hadoop集群配置文件所在路径 HADOOP_CONF_DIR=/opt/hadoop-2.7.7/etc/hadoop # SparkStandalone集群模式的主节点服务端口 SPARK_MASTER_PORT=7077 # 主节点WebUI端口 SPARK_MASTER_WEBUI_PORT=8080 # JDK JAVA_HOME=/opt/jdk-1.8
-
spark-defaults.conf
# Spark客户端连接集群时使用的默认配置 spark.master spark://zhaohui01:7077
-
workers
# 配置所有需要启动Worker服务的机器 zhaohui01 zhaohui02 zhaohui03
-
分发安装包
#!/bin/bash HOSTNAME=`hostname` HOSTS=`cat /etc/hosts | grep zhaohui |awk '{print $2}' | grep -v $HOSTNAME` # for 循环变量 in 集合 # do # 循环体 # done for HOST in $HOSTS do echo "正在将${1}发送到${HOST}的$2" scp -rq $1 $HOST:$2 echo "发送完成" done
-
配置环境变量
echo 'export SPARK_HOME=/opt/spark-3.1.2' >> /etc/profile echo 'export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH' >> /etc/profile source /etc/profile
-
启动集群
[root@zhaohui01 shell]# start-spark-all.sh
-
运行Spark