终于拿到了3台性能还不错的服务器,可以尝试搭建一下Cloudera的hadoop平台CDH了。在此mark一下,记录安装细节。
Step.1 安装pdsh(可选)
pdsh的作用是在多台机器上同时执行shell命令。步骤参考之前的blog: http://blog.csdn.net/strangerzz/article/details/49864089
这步不做也可以,不过有了pdsh,集群管理起来确实会更加方便
Step.2 设置SSH免密码登陆(可选)
设置了SSH面密码登陆配合pdsh进行集群管理,步骤参考之前的blog:
http://blog.csdn.net/strangerzz/article/details/49864441
不同于Ambari或者手工部署Hadoop,部署CDH的时候登录设置有设置SSH免密码登陆并上传私钥文件,或者给集群的root账户设置同意的登陆密码两种方式,所以这步不做也可以。
Step.3 安装MySQL(可选)
安装步骤参考http://blog.csdn.net/strangerzz/article/details/49884613。
CDH安装的时候本身提供了内嵌的数据库,所以外置的MySQL或者ORACLE不装也没关系。另外虽然CDH安装文档上没有写支持mysql5.7,但是部署后还没发现啥问题。
Step.4 设置Cloudera Manager、CDH本地源
本地yum源做起来也很简单。把Cloudera Manager的RPM包下载下来,用createrepo命令生成一个本地源,然后用nfs或者Apache httpd开一个端口共享出去就可以了。CDH则使用了Cloudera推荐的parcel包。
Step.5 配置hostname和/etc/hosts
集群所有机器的hostname和/etc/hosts文件一定要配置好,否则安装的时候会出现agent起不来、agent起来后找不到server等问题。
/etc/hosts配置的方式参考安装文档例子:
127.0.0.1 localhost.localdomain localhost
192.168.1.1 cluster-01.example.com cluster-01
192.168.1.2 cluster-02.example.com cluster-02
192.168.1.3 cluster-03.example.com cluster-03
这里要注意几点
1. hostname中不能有下划线”_”,否则agent启动不起来
2. /etc/hosts文件中不能出现重复的ip
3. 127.0.0.1只能配置为localhost,不能配置为本机的hostname
4. 本机的hostname也要配置到/etc/hosts中,而且不能为127.0.0.1
Step.6 设置集群的时间同步
使用ntpd来进行时间同步,设置方法参考之前的blog:
http://blog.csdn.net/strangerzz/article/details/45243981
Step.7 安装cloudera manager server
整个安装过程参考cloudera的安装文档即可。如果要用cloudera内置的数据库,那么需要先安装cloudera-manager-server-db这个包.
yum install cloudera-server-db-2
否则的话,直接使用
yum install cloudera-manager-server
安装就可以了。这里我使用的是MySQL作为外置数据库,所以直接安装了server。
Step.8 (条件可选)配置MySQL数据库
首先配置clouder manager要用的数据库和用户。
在MySQL中执行
create database cmanager character set utf8;
grant all privileges on cmanager.* to 'userc'@'hostname' identified by 'xxxxx';
这一步首先在MySQL中建立了一个名字叫cmanager的数据库,然后建立了一个用户名为userc,密码为xxxxx的用户,并把cmanager这个数据库的权限全部分配给他。
然后在shell 里执行
/usr/share/cmf/schema/scm_prepare_database.sh mysql cmanager user xxxxx
为cloudera manager配置数据库接口并初始化。
Step.9 启动cloudera-manager-server并开始部署cm、CDH
经过以上的准备工作,就可以启动cloudera-manager-server服务了:
service clouder-scm-server start
然后在安装cm-server的主机的7180端口,就可以访问clouder-manager的web UI了。
之后的安装过程和安装一般软件差不多,跟着提示一步一步走就可以了。
根据安装的组件不同,可能也需要设置hive的metastore数据库、activity monitor数据库等,参考Step.8 就可以了,只是不用执行scm_prepare_database.sh这个脚本了。
Finally:遇到的问题
1. Agent启动失败、或者Agent启动后检测不到心跳
解决方案:参考Step.5,检查/etc/hosts和hostname设置是否正确
2. 安装出问题retry的时候一直停留在acquiring lock这个阶段
解决方案:删除要retry的机器上的/etc/.scm*.lock并重试
3. 安装中途出问题,修改/etc/hosts或者重新search主机后,安装阶段依然按照重做前的主机列表以及配置进行安装
解决方案:重启clouder-manager-server服务
4. Hbase启动失败
解决方案:检查集群的时间是否同步,检查ntp状态