前几天做了个hadoop镜像,hadoop擅长的场景在于离线计算,对于实时性要求要的场景还是得spark上场,于是研究了下spark。
项目地址 https://github.com/liuchengts/docker-spark
用法基本与上次的hadoop类似,同样我只在此说明 dockerfile的内容。
spark环境是在原先hadoop基础上增加一些其他必要组件,所以有些步骤是几乎一样的。
上次的axel下载工具坑了我,频繁超时之后会卡死。故换回了wget,慢就慢点吧,稳定就好。
Dockerfile:
1、拉取一个ubuntu镜像(centos也是可以的)
2、声明工作空间便于外部定义的配置文件存放。
3、声明启动时可更改的参数,这里我将所有用到的软件版本进行了参数声明,可以根据参数更改软件的版本,注意更改了版本后核实外部的配置文件是否能适用。
4、声明环境变量
5、因为是纯净的系统,所以需要安装必须的一些工具
6、jdk是必须要的,这里使用到了我个人的七牛云公共库,因为现在下载oracle的jdk需要登录了,意味着以前脚本方式下载jdk不再可用
7、下载zookeeper安装包,解压安装,复制配置文件
8、下载hadoop官方安装包,安装完成之后复制hadoop配置文件到相应的目录,注意hadoop版本不一样配置会有些差别,尤其是2到3的版本
9、hadoop的hdfs文件系统是在第一次使用必须格式化的,所以这里需要执行以下格式化
10、下载scala安装包,解压安装
11、下载spark安装包,解压安装,复制配置文件
12、生成秘钥并且配置免密登录,因为hadoop集群之间是需要相互访问的
13、清理资源,清理掉下载的文件,复制进镜像的配置文件,尽可能减少镜像大小
14、增加相应脚本的执行权限
15、最后启动ssh