CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha:https://archive.cloudera.com/cdh6/6.1.1/parcels/CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha256 (下载完毕后,将扩展名从.sha256改为.sha)
hosts、ansible.cfg、cdh-single-install.yml、cdh-single-start.yml:这四个文件都保存在我的GitHub仓库,地址是:https://github.com/zq2599/blog_demos ,这里面有多个文件夹,上述文件在名为ansible-cdh6-single的文件夹中,如下图红框所示:
如果您已经下载好了上述11个文件,请按照如下位置摆放,这样才能顺利完成部署:
在家目录下新建名为playbooks的文件夹:mkdir ~/playbooks
把这四个文件放入playbooks文件夹:hosts、ansible.cfg、cdh-single-install.yml、cdh-single-start.yml
在playbooks文件夹里新建名为cdh6的子文件夹;
把这七个文件放入cdh6文件夹(即剩余的七个):jdk-8u191-linux-x64.tar.gz、mysql-connector-java-5.1.34.jar、cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm、cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm、cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm、CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel、CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha
摆放完毕后目录和文件情况如下图,再次提醒,文件夹playbooks一定要放在家目录下(即:~/):
本次实战中,CDH服务器hostname是deskmini,IP地址是192.168.50.134,需要做以下操作:
请确保CDH服务器能SSH登录(用户名+密码);
SSH登录到部署CDH的机器;
检查/etc/hostname文件是正确,如下图:
修改/etc/hosts文件,将自己的IP地址和hostname配置上去,如下图红框所示(事实证明这一步很重要,如果不做可能导致在部署时一直卡在"分配"阶段,看agent日志显示agent下载parcel的进度一直是百分之零):
ansible参数设置的操作设置很简单,就是把部署CDH的机器信息配置好即可,包括IP地址、登录账号、密码等,修改~/playbooks/hosts文件,内容如下所示,您需要根据自身情况修改deskmini、ansible_host、ansible_port、ansible_user、ansible_password:
[cdh_group] deskmini ansible_host=192.168.50.134 ansible_port=22 ansible_user=root ansible_password=888888 部署(ansible服务器)进入~/playbooks目录;
检查ansible远程操作CDH服务器是否正常,执行命令ansible deskmini -a "free -m",正常情况下显示CDH服务器的内存信息,如下图:
执行此命令开始部署:ansible-playbook cdh-single-install.yml
整个部署过程涉及在线安装、传递文件等耗时的操作,因此请耐心等待(半小时左右),我在部署期间遭遇网络问题导致失败退出,待网络正常后再重新执行上述操作即可,ansible保证了操作的幂等性;
部署成功如下图所示:
由于修改了selinux和swap的设置,需要重启操作系统才能生效,因此请重启CDH服务器;
启动(ansible服务器)等待CDH服务器重启成功;
登录ansible服务器,进入~/playbooks目录;
执行此命令开始初始化数据库,然后启动CDH:ansible-playbook cdh-single-start.yml
启动完成输出如下信息:
CDH已经启动,CDH服务器对外提供了web服务,可以通过浏览器来操作: