Virtual Box
CDH5你好,老司机要来撸你了!
hadoop的流行发布版一度有四个,社区版,Cloudera, Hortonworks,MapR,
2018年Cloudera和Hortonworks合并,2019年MapR裁员,现在只有社区版和cloudera的CDH值得撸
社区版有开源软件的各种尿性,版本匹配复杂,各种不在文档中的小坑大坑,中文文档落后,虽然最近有了ambari这样的管理工具,嗯它本身也是开源软件,也要依赖一堆开源软件。
so有空再撸社区版吧,本老司机撸CDH是为了能快点在上面写程序,这次就先CDH5将就一下了。不选CDH6是因为最新大概看了一下版本列表,CDH6里支持的组件范围比CDH5多得有限,选个稍旧版本的文档还好找一些,撸通CDH5以后再多弄个CDH6也很容易。
要撸CDH5,老司机先排除掉用All in one VM这种小白选项,全是单机版,伪分布式,太假了。
买真服务器有点划不来,查了查国内云服务器报价,如果认真要做hadoop集群的节点机器,入门基础的通用型2核8G,自己再稍微搭配点存储空间,折算每个月要近200人民币。如果是标上了大数据专用型,更是贵的要死。
本老司机只是老,不高不富也不帅。想想还是先让自己家里的电脑发挥余热吧。
虚拟机软件选用VirtualBox。 Vmware本老司机是曾经的选择,但很不喜欢它在宿主操作系统里装的一大堆服务和驱动,有virtualbox后就戒掉了vmware。 windows 10自带的hyper-v试用了一下,感觉和玩具查不多。
老司机用的是virtualbox 5.2.2, 各版本在使用上差别不大,就不追最新版了
撸过一通后,老司机总结出的设置要点如下
- 操作系统Linux Redhat 64位
- 内存2G
- cpu核数1
- 硬盘10G
- 声音禁用
- 网络方式为桥接网卡
对于hadoop来说,内存2G单核cpu属于是地板配置了,如果不够以后可以再加
但如果一开始就配高,单个宿主机上同时开5个这样节点,本司机自己还要有个地方操作终端,有些不美。
Centos 7
Linux发行版比hadoop的发行版本多多了,老司机选择的是Centos 7-1810,因为老司机怀旧。
本老司机用的第一个发布版本是Redhat 5.0, 是从电脑城里买的CD Rom光盘,后来虽然也用过debian, ubuntu等等,但redhat体系还是最让本老司机容易接受的。
Centos 是重新编译的Redhat Enterprise发布版,可以直接使用redhat体系的各种资源,文件名里带着el5 el6 el7那些,就是对应的centos5 centos6 centos7
不同linux发布版有个最主要区别就是安装包格式,ubuntu和debian 用的都是deb格式,redhat和centos用的叫rpm包。不同格式之间肯定不能换用,同样格式的rpm包在不同的linux发布版上,也不一定通用。
虚拟机调好硬件配置,插入ISO文件后,就是centos的安装向导时间
在安装向导里要做的事情包括
- 时区选择Asia/Shanghai, 这就是北京时间,无处吐槽
- 语言和键盘保持默认的English / us ,如果改成其他都是自找麻烦
- 安装模式选择compute node以及下列add-ons
- Debugging tools
- Hardware monitoring utilities
- Performance tools
- Development tools
- System administration tools
- 网络默认是关闭的,打开提前看清楚获取的ip
- 分区选择手动分区,
- 设备类型普通分区
- 文件系统ext4
- 全盘分配给 / 一个挂载点
- 不需要swap
- root密码设定成laosiji 要按两次确认才能使用这个弱密码
如果使用向导默认的分区策略,会在硬盘上创建LVM,搭配/ /boot swap一共3个挂载点。对于linux使用来说区别不大,但硬盘的使用效率就降低了。
LVM是在硬盘分区之上的一个软件层,可以让linux操作系统动态调整所使用的硬盘数量和合并分区,对虚拟机来说,可以通过virtualbox直接调硬盘尺寸,所以不需要。
/和/boot分开在物理硬盘上很有必要,可以保护启动区域少被读写,降低故障概率,但虚拟机上整这个就没实际意义了,所以合并成一个挂载点
swap分区在物理内存不足时,可以供操作系统用那里的硬盘空间腾挪,代价就是频繁的硬盘读写。开多个虚拟机时频繁硬盘读写就是性能杀手。如果宿主机的硬盘是SSD,同时也是硬盘杀手,所以关掉。
都弄完后等待一段时间,让安装向导重启就可以进入centos默认的登陆界面了
这时候别着急安装新软件,直接关虚拟机电源,把虚拟机对应的虚拟硬盘做复制备份。
在virtualbox的全局工具里,可以看到虚拟硬盘,默认创建的是vdi文件。
把这个vdi文件复制出一个作为种子硬盘。
这样其他虚拟机就不用在virtualbox里逐步安装了,可以从种子硬盘里直接复制就可以选择连接已有的虚拟硬盘文件。
加新虚拟机前先把种子硬盘再复制出一份新副本,使用virtualbox的内部命令重置一下硬盘的UUID
VBoxManage internalcommands sethduuid 新副本的文件位置
这个命令要在virtualbox的安装目录下执行,不执行这个内部命令会因为UUID重复报错
然后在virutalbox里和前面类似创建新虚拟机,但硬盘部分选择连接到已有的虚拟硬盘文件上,这样虚拟机开机时就会直接是已经装好的centos7