一、前言
周末干了近四十个小时中间只休息了五个小时终于成功安装了ClouderaManager以及分布式集群,其中各种辛酸无以言表,唯有泪两行。总体是安装的很慢,但是其中有很多细节问题,需要记录下来使以后再次安装少走弯路,以及给其他有需要的人提供一点参考。
二、整体介绍
整体上可以借鉴使用Ambari安装hadoop集群[附]。安装共分三步,第一步安装并配置操作系统(本文采用Ubuntu14.04,其他的可以参考相应安装方法);第二步安装ClouderaManager;第三步安装分布式集群。
三、分步安装介绍
3.1、安装并配置操作系统
整体配置包括启用root用户等都可以参考上述文章,这里强调一些细节。安装并配置操作系统应该是整个安装过程的核心,能否顺利完成分布式集群安装主要就在这一步,本次仅操作系统就重新安装了5次,已经变成了一个熟练的Ubuntu装机码农。这里面有太多的问题需要考虑,本次之所以折腾这么久,也主要浪费在这上面。根据此次经验我总结一定要注意以下几点:
1、首先安装版本的选择,一定要安装ClouderaManager支持的版本,ClouderManager5目前Ubuntu只支持到Ubuntu14.04,其他系统可以查看具体要求。
2、安装过程中时区选择一定要正确并统一,不然会造成时间同步的问题。为了严格时间同步,需要使用apt-get install ntp安装ntp进行时间同步。
3、网络(IP、DNS等)在安装过程中可以先不进行配置,以节约时间,待安装完成后统一配置内网外IP及网关等,同时配置双网卡需要第一块网卡不在/etc/network/interfaces文件中配置gateway,使用route add -net 192.168.1.0/24 gw 192.168.1.1 dev eth1命令设置第一块网卡的路由,也可以将上述语句写到/etc/rc.local文件里,防止每次重启系统都要重新配置路由。
4、用户名密码切记一定不要使用古怪的字符包含下划线中划线等等,密码也不要使用弱密码类型,否则真的可能是会出现各种各样莫名其妙、让人无法查找ERROR的问题。
5、尽量启用系统root用户,否则在配置sudo免密码的时候就会有各种问题,并且在安装ClouderaManager的时候也会出现各种权限问题。
6、每台机器的hosts配置要准确,不然肯定是要出问题的。
7、如果网速不够快,可以将ubuntu的源替换成阿里云。
8、最重要的一点,如果后续步骤一旦安装失败或报错,并且折腾一会之后找不到解决的办法,不要犹豫,马上重装系统,6台机器重装加配置一遍操作系统如果有6个系统盘加KVM的话也就顶多一个小时,但是你要真的去找问题,用上两个小时也不一定能找到问题,只会越来越纠结。
3.2、安装ClouderaManager
首先切换到root用户,然后使用以下命令下载并安装即可:
wget http://archive.cloudera.com/cm5/installer/latest/cloudera-manager-installer.bin
chmod u+x cloudera-manager-installer.bin
./cloudera-manager-installer.bin
这里面倒是没有什么特别需要注意的地方,只需要注意下载相应的版本以及在安装的过程中不要出现关机、断网等情况。
3.3、安装分布式集群
如果前面两步都完成的很好的话这一步应该是很轻松的,本次安装中在最最后看着那一个个轻松飘来的绿色√,真的是喜极而泣、言不成声。但是回首整个过程真的是在安装集群这一步无比辛酸,前两步操作没有注意到的各种细节都会在这里变成一个个无法查找的ERROR,让人痛苦万分。该步需要注意以下细节:
1、整个安装过程中使用tail -fn 300 /var/log/cloudera-scm-agent/cloudera-scm-agent.log来监控安装中出现的各种问题,有的时候web ui界面显示成功,可能并不是真的成功了,如果接着往下走肯定是不行。本次安装中就是刚开始没注意,在进行cdh分发以及激活的时候前台界面一直显示的成功,但是后来查看日志发现一直在报无法激活的错误,所以导致后续安装根据就不往下进行,只是简单的提示安装hdfs等出错,根本不给任何错误的信息,就无法发现问题,发现问题是解决问题的第一步,发现不了何谈去解决问题,当然造成无法激活的原因我猜测应该就是3.1中讲述的那些。
2、关于选择单用户还是多用户模式可以根据自己的需要,二者区别并不大,只是多用户会创建hdfs、zookeeper等用户,但是一旦某一种模式安装失败,第二次安装的时候请换另一种模式,不要太执着,否则真的可能是一遍遍的重装仍无法解决问题。
3、选择安装内容的时候可以先选少一点,比如选择自定义模式并只选spark、hdfs、zookeeper、YARN这几个。因为选的越少出现错误的可能性越小,而等这几个分布式的基础软件安装完毕之后,再安装其他的就很容易,不需要再从安装操作系统开始。
4、如果集群安装失败可以重新安装一遍,只需要在管理界面点击添加集群,但是要通过管理界面将ClouderaManager中的Cluster1集群删除(默认叫这个名字,因为虽然安装失败但是集群在ClouderaManager中已经有了),然后将所有节点解除授权并从集群删除,否则无法将这些节点再加入到新创建的集群。
四、总结
失败是安装过程中必然出现的,但是成功是多次失败安装的必然结果。我们要执着又不能太执着——要执着于一次不行两次、两次不行三次,但是又不能执着于不会灵活、不变通,该重装系统就重装系统,该改配置就改配置,该换方案就换方案。最终一定会收获成功。
附:使用Ambari安装hadoop集群
最近需要做些spark的工作,所以弄了几台dell7500就这么准备开始搭建集群,之前用过几台更破的台式机搭建过一次,折腾了半个月之久,终于成功搭建,这次不想走老路,所以网上查了一下,发现一个神器AMBARI,可以部署、管理集群,果然是个好东西,所以就拿来用,但是在安装的过程中碰到了许许多多的问题,所以现在把安装过程总结一下,放到这里,以方便下次安装或者其他有对ambari感兴趣的同学可以参考之。
安装过程大量查阅了网上的相关资料,主要是https://cwiki.apache.org/和这篇PDF,大家也可以直接参考这两篇文章来进行安装,其余的一些细节我直接写在本文里。
安装Ubuntu服务器,在这里就不做说明了,目前比较合适的版本应该是14.04,可以直接在官网上下载然后用u盘做个启动盘,直接安装即可。
安装集群主要分以下几步:
1、安装ambari
cd /etc/apt/sources.list.d
sudo wget http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.2.0.0/ambari.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
sudo apt-get update
sudo apt-get install ambari-server
sudo ambari-server setup
sudo ambari-server start
可以先设置下一步的root用户,这样不需要sudo
2、启用root用户
sudo passwd root
输入密码
然后
sudo vim /etc/ssh/sshd_config
注释掉PermitRootLogin with。。。
添加PermitRootLogin yes
然后重启服务 sudo service ssh restart
3、配置hosts
vim /etc/hosts
添加
192.168.1.201 host01
192.168.1.202 host02
注意不要删除以下两行,否则会出问题
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
每台服务器上均需要设置
4、配置静态IP、DNS
vim /etc/network/interfaces
修改成如下格式
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.101
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 111.111.111.111
5、配置ntp(时间同步服务器)
apt-get install ntp 每台服务器上均需要安装
6、免密码登陆
server 到 客户端
ssh-keygen -t rsa
ssh-copy-id -i host01
ssh-copy-id -i host02
将root/.ssh/id_rsa下载到本地,以供上传
7、禁用Transparent Huge Pages
Edit the grub configuration file present in /etc/default/grub and add transparent_hugepage=never to the GRUB_CMDLINE_LINUX_DEFAULT if other options are already present in this line then simply put a space and transparent_hugepage=never
GRUB_CMDLINE_LINUX_DEFAULT=”transparent_hugepage=never”
Save and then on the terminal run “sudo update-grub”
每台服务器上均需要设置
8、配置注意事项
填写hostname的时候直接写host
host001
host002
其余均按照自己需求选择
本文介绍的是Ubuntu服务器,如果需要在其他平台中安装,只需要简单修改即可。