生态
- Spark Core:最重要,其中最重要的是RDD(弹性分布式数据集)
- Spark SQL
- Spark Streaming
- Spark MLLib:机器学习算法
- Spark Graphx:图计算
特点
- 针对大规模数据处理的快速通用引擎
- 基于内存计算
- 速度快,易用,兼容性强
体系架构
- 主节点:Cluster Manager(Standalone时叫Master)
- 从节点:Worker(占用节点上所有资源,耗内存,没用内存管理机制,易OOM)
安装部署
- 安装jdk,配置主机名,配置免密码登录
- 伪分布(Standalone):一台机器上模拟分布式环境(Master+Worker)
- 核心配置文件:conf/spark-env.sh
- cp spark-env.sh.template spark-env.sh
- export JAVA_HOME=/root/training/jdk1.8.0_144
- export SPARK_MASTER_HOST=bigdata111
- export SPARK_MASTER_PORT=7077
- 启动:sbin/start-all.sh
- Web Console:http://192.168.174.111:8080/
- 核心配置文件:conf/spark-env.sh
- 全分布:先在主节点上安装,再把装好的目录复制到从节点上
- scp -r spark-2.1.0-bin-hadoop2.7/ root@bigdata114:/root/training
- 在主节点上启动集群
HA
- 基于文件目录
- 本质还是只有一个主节点
- 创建恢复目录保存状态信息
- 主要用于开发和测试
- mkdir /root/training/spark-2.1.0-bin-hadoop2.7/recovery
- spark-env.sh
- export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/root/training/spark-2.1.0-bin-hadoop2.7/recovery"
- 基于zookeeper
- 用于生产环境
- 相当于数据库
- 数据同步,选举功能,分布式锁(秒杀)
- 步骤
- 设置时间同步
- date -s 2020-06-03
- 启动zk
- 配置spark-env.sh,注释掉最后两行,添加:
-
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata112:2181,bigdata113:2181,bigdata114:2181 -Dspark.deploy.zookeeper.dir=/spark"
- bigdata112上启动spark集群后,在bigdata114上启动Master
工具
- spark-submit:用于提交Spark任务(jar包)
- spark-shell:相当于REPL,命令行工具
- bin/spark-shell
参考
spark.apache.org