昨天又捣鼓了一下,网上有些写得很不错的教程,自己经过尝试后觉得需要整理一下。
spark的运行模式有多种(见官网和Spark的Standalone模式安装部署):
- local(本地模式):常用于本地开发测试,本地还分为local单线程和local-cluster多线程;
- standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现 HA
- on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
- on mesos(集群模式): 运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算
- on cloud(集群模式):比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon的 S3;Spark 支持多种分布式存储系统:HDFS 和 S3
本文主要记录的是基于standalone的方式和基于集群的方式。
1 用虚拟机搭建Hadoop分布式集群
虚拟机安装
由于主要的实验室环境是Ubuntu系统的服务器,内存大约为64G,使用的虚拟机为virtualbox,在官网下载,安装步骤略。注意,请用相同的用户名创建,这会为后面省去很多麻烦。
主从机互ping
随后将两个guest机配置成slave1和slave2,host机作为master,这里主要需要注意的是通信问题。
要让彼此都ping通,有一点小技巧,我是参照这个教程来做的。
https://2buntu.com/articles/1513/accessing-your-virtualbox-guest-from-your-host-os/
简言之,在默认NAT的模式下,guest是可以直接访问host的,也可以互相访问,但是host不能访问guest,不过通过添加host-only networks,再在guest端添加对应的适配器,host和guest就在同一个网段了。
将它们对应的ip都添加到各自的/etc/hosts
文件中。
无密码登陆
在ping通后,我们希