借助ansible简化了CDH6部署工作的大部分内容,也降低了手工操作失误的概率,今天实战的内容,是在一台安装了ansible的电脑上(苹果或Linux操作系统)运行ansible脚本,远程操作一台CentOS服务器,在上面部署CDH6,并操作验证本次部署是否成功。
如果您想了解ansible,请参考《ansible2.4安装和体验》
主要是用来做为大数据技术的学习和开发的环境,并不适合生产;
本文由以下章节组成:
本次实战的操作过程如下图所示,安装ansible2.9版本的MabBook Pro电脑作为ansible服务器,执行playbook脚本,对一台CentOS服务器进行远程操作,完成CDH6的部署和启动:
上图蓝色背景的电脑,可以是苹果操作系统,也可以是Linux操作系统,黄色背景的电脑要用来运行CDH6,必须是CentOS7.7操作系统(实在对不起,我这条件有限,别的系统没有试过)
整个实战涉及的环境版本信息如下:
本次实战用到的所有文件如下表所示:
编号 | 文件名 | 简介 |
---|---|---|
1 | jdk-8u191-linux-x64.tar.gz | Linux版的jdk安装包 |
2 | mysql-connector-java-5.1.34.jar | mysql的JDBC驱动 |
3 | cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm | cm的server安装包 |
4 | cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm | cm的daemon安装包 |
5 | cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm | cm的agent安装包 |
6 | CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel | CDH应用离线安装包 |
7 | CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha | CDH应用离线安装包sha验证码 |
8 | hosts | ansible用到的远程主机配置,里面记录了CDH6服务器的信息 |
9 | ansible.cfg | ansible用到的配置信息 |
9 | ansible.cfg | ansible用到的配置信息 |
10 | cdh-single-install.yml | 部署CDH时用到的ansible脚本 |
11 | cdh-single-start.yml | 初次启动CDH时用到的ansible脚本 |
上述11个文件的下载地址:
如果您已经下载好了上述11个文件,请按照如下位置摆放,这样才能顺利完成部署:
本次实战中,CDH服务器hostname是deskmini,IP地址是192.168.50.134,需要做以下操作:
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
由于修改了selinux和swap的设置,需要重启操作系统才能生效,因此请重启CDH服务器;
CDH已经启动,CDH服务器对外提供了web服务,可以通过浏览器来操作:
hadoop fs -setrep -R 1 /
接下来运行一个Spark任务,经典的WordCount:
hdfs dfs -mkdir /input
hdfs dfs -put ./GoneWiththeWind.txt /input
sc.textFile("hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.50.134:8020/output")
hdfs dfs -get /output/*
整个实战虽然避免了传统部署过程中的大量手动操作,但弊端也很明显:所有路径、文件名、服务版本都是固定的,不能做任何设置,虽然ansible也支持变量,但是如果变量太多也会给您带来困扰,所以,如果您有修改版本或路径的需求,建议您自行修改cdh-single-install.yml、cdh-single-start.yml的内容,所有文件和版本信息都在里面。