3.spark简介
3.1.spark定义
spark是基于内存的, 分布式的, 大数据并行计算框架(处理引擎)
迭代式计算,优先使用内存,内存不足,再使用磁盘。
分布式:数据存储分布式;运算分布式。
spark + 数据源(hdfs)
3.2.spark和hadoop关系
hadoop:hdfs mapreduce yarn
spark + hadfs
spark + yarn
spark 和 mapreduce比较
mapreduce:第一代分布式运行框架。分治编程思想。
mapreduce: 两步计算,磁盘存储;
spark:多步计算,内存存储。类似于scala的函数式编程,链式编程。
-
spark基于内存,迭代效率更高(由于DAG有向无环图)
-
spark容错性更好(由于RDD)
-
spark算子更多
-
spark支持的语言更多(scala、java、python、R)
结论:spark是mapreduce的替代方案,兼容hdfs、hive,可融入hadoop生态圈,弥补mapreduce的不足。
3.3.spark优点
-
速度快
-
易用性 支持scala、java、python、r
-
通用性、
a. 一站式解决方案:离线分析 实时处理 机器学习 图计算 sql
b. 减少公司开发的人力物力成本
- 兼容性
a. spark + mysql redis kafka hdfs yarn zookeeper
4. spark部署模式
4.1.local本地模式
开箱即用,一台机器即可。多线程模拟。
4.2.standalone集群模式
是spark安装包自带的集群模式
4.3.yarn集群模式
yarn:资源调度平台(公司常用模式)
把spark任务提交到yarn集群运行
5.spark集群搭建
集群搭建特指:standslone集群。角色:master 和 worker
ssh远程服务器:ip port user password
跳板机器:如果服务器rno是内网的,外网无法直接访问。外网需要一个跳板机(bastion)。
5.1.机器准备
a1 192.168.23.1 master
a2 192.168.23.2 worker
a3 192.168.23.3 worker
至少两台
5.2.机器的环境配置
5.2.1.免密登陆
配置主节点到从节点的免密登陆即可。
# ssh-keygen
# ssh-copy-id ip
5.2.2.关闭防火墙
大数据集群,一般都是内网集群,不需要开启防火墙。
有单独的机器,具备内网和外网环境,可以通过该机器进行对外通信。
# service iptables status // 查看防火墙
# service iptables stop // 关闭防火墙
# ckconfig iptables off // 永久关闭
5.2.3.ip与host的映射关系
使用hostname
# cat /etc/hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
202.76.247.23 ion-ljz.corp.ebay.com
192.168.23.1 a1
192.168.23.2 a2
192.168.23.3 a3