关于云计算:超简单的CDH6部署和体验单机版

4次阅读

共计 6888 个字符,预计需要花费 18 分钟才能阅读完成。

欢送拜访我的 GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,波及 Java、Docker、Kubernetes、DevOPS 等;

为什么会超简略

借助 ansible 简化了 CDH6 部署工作的大部分内容,也升高了手工操作失误的概率,明天实战的内容,是在一台装置了 ansible 的电脑上 (苹果或 Linux 操作系统) 运行 ansible 脚本,近程操作一台 CentOS 服务器,在下面部署 CDH6,并操作验证本次部署是否胜利。

ansible 学习

如果您想理解 ansible,请参考《ansible2.4 装置和体验》

为什么要部署单机版 CDH6

次要是用来做为大数据技术的学习和开发的环境,并不适宜生产;

实战简述

本次实战内容:部署、启动、验证,整个过程如下图所示:

全文纲要

本文由以下章节组成:

  1. 环境信息;
  2. 下载文件;
  3. 文件摆放;
  4. CDH 机器设置;
  5. ansible 参数设置;
  6. 部署;
  7. 重启 CDH 服务器
  8. 启动;
  9. 设置;
  10. 修复问题;
  11. 体验;

环境信息

本次实战的操作过程如下图所示,装置 ansible2.9 版本的 MabBook Pro 电脑作为 ansible 服务器,执行 playbook 脚本,对一台 CentOS 服务器进行近程操作,实现 CDH6 的部署和启动:

上图蓝色背景的电脑,能够是苹果操作系统,也能够是 Linux 操作系统,黄色背景的电脑要用来运行 CDH6,必须是 CentOS7.7 操作系统(切实对不起,我这条件无限,别的零碎没有试过)

整个实战波及的环境版本信息如下:

  1. ansible 服务器:macOS Catalina 10.15(实测用 CentOS7.7 也胜利)
  2. CDH 服务器:CentOS Linux release 7.7.1908
  3. cm 版本:6.1.0
  4. parcel 版本:6.1.1
  5. jdk 版本:8u191

下载文件(ansible 服务器)

本次实战用到的所有文件如下表所示:

编号 文件名 简介
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 个文件的下载地址:

  1. <font color=”blue”>jdk-8u191-linux-x64.tar.gz</font>:Oracle 官网可下,另外我将 jdk-8u191-linux-x64.tar.gz 和 mysql-connector-java-5.1.34.jar 一起打包上传到 csdn,您能够一次性下载,地址:https://download.csdn.net/dow…
  2. <font color=”blue”>mysql-connector-java-5.1.34.jar</font>:maven 地方仓库可下,另外我将 jdk-8u191-linux-x64.tar.gz 和 mysql-connector-java-5.1.34.jar 一起打包上传到 csdn,您能够一次性下载,地址:https://download.csdn.net/dow…
  3. <font color=”blue”>cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm</font>:https://archive.cloudera.com/…
  4. <font color=”blue”>cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm</font>:https://archive.cloudera.com/…
  5. <font color=”blue”>cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm</font>:https://archive.cloudera.com/…
  6. <font color=”blue”>CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel</font>:https://archive.cloudera.com/…
  7. <font color=”blue”>CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha</font>:https://archive.cloudera.com/…(下载结束后,将扩展名从.sha256 改为.sha)
  8. <font color=”blue”>hosts、ansible.cfg、cdh-single-install.yml、cdh-single-start.yml</font>:这四个文件都保留在我的 GitHub 仓库,地址是:https://github.com/zq2599/blo…,这外面有多个文件夹,上述文件在名为 <font color=”blue”>ansible-cdh6-single</font> 的文件夹中,如下图红框所示:

文件摆放(ansible 服务器)

如果您曾经下载好了上述 11 个文件,请依照如下地位摆放,这样能力顺利完成部署:

  1. 在家目录下新建名为 playbooks 的文件夹:<font color=”blue”>mkdir ~/playbooks</font>
  2. 把这四个文件放入 <font color=”blue”>playbooks</font> 文件夹:hosts、ansible.cfg、cdh-single-install.yml、cdh-single-start.yml
  3. 在 <font color=”blue”>playbooks</font> 文件夹里新建名为 <font color=”blue”>cdh6</font> 的子文件夹;
  4. 把这七个文件放入 <font color=”blue”>cdh6</font> 文件夹(即残余的七个):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
  5. 摆放结束后目录和文件状况如下图,再次揭示,<font color=”red”> 文件夹 playbooks 肯定要放在家目录下 </font>(即:<font color=”red”>~/</font>):

CDH 服务器设置

本次实战中,CDH 服务器 hostname 是 deskmini,IP 地址是 <font color=”blue”>192.168.50.134</font>,须要做以下操作:

  1. 请确保 CDH 服务器能 SSH 登录(用户名 + 明码);
  2. SSH 登录到部署 CDH 的机器;
  3. 查看 <font color=”blue”>/etc/hostname</font> 文件是正确,如下图:

  1. 批改 <font color=”blue”>/etc/hosts</font> 文件,将本人的 IP 地址和 hostname 配置下来,如下图红框所示(事实证明这一步很重要,如果不做可能导致在部署时始终卡在 ” 调配 ” 阶段,看 agent 日志显示 agent 下载 parcel 的进度始终是百分之零):

ansible 参数设置(ansible 服务器)

ansible 参数设置的操作设置很简略,就是把部署 CDH 的机器信息配置好即可,包含 IP 地址、登录账号、明码等,批改 <font color=”blue”>~/playbooks/hosts</font> 文件,内容如下所示,您须要依据本身状况批改 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 服务器)

  1. 进入 <font color=”blue”>~/playbooks</font> 目录;
  2. 查看 ansible 近程操作 CDH 服务器是否失常,执行命令 <font color=”blue”>ansible deskmini -a “free -m”</font>,失常状况下显示 CDH 服务器的内存信息,如下图:

  1. 执行此命令开始部署:<font color=”blue”>ansible-playbook cdh-single-install.yml</font>
  2. 整个部署过程波及在线装置、传递文件等耗时的操作,因而请急躁期待(半小时左右),我在部署期间遭逢网络问题导致失败退出,待网络失常后再从新执行上述操作即可,ansible 保障了操作的幂等性;
  3. 部署胜利如下图所示:

重启 CDH 服务器

因为批改了 selinux 和 swap 的设置,须要重启操作系统能力失效,因而请重启 CDH 服务器;

启动(ansible 服务器)

  1. 期待 CDH 服务器重启胜利;
  2. 登录 ansible 服务器,进入~/playbooks 目录;
  3. 执行此命令开始初始化数据库,而后启动 CDH:<font color=”blue”>ansible-playbook cdh-single-start.yml</font>
  4. 启动实现输入如下信息:

设置(网页)

CDH 曾经启动,CDH 服务器对外提供了 web 服务,能够通过浏览器来操作:

  1. 浏览器拜访:http://192.168.50.134:7180,如下图,账号密码都是 <font color=”blue”>admin</font>:

  1. 一路 next,在抉择版本页面抉择 60 天体验版:

  1. 抉择主机页面可见 deskmini:

  1. 抉择下图红框中的 CDH 版本,因为对应的离线包曾经复制到 CM 的本地仓库,无需下载:

  1. 下载霎时实现,等待调配、解压、激活:

  1. 抉择服务的页面,我这里抉择了 Data Engineering,因为须要 spark:

  1. 抉择机器的页面,全选 deskmini:

  1. 数据库设置页面,<font color=”blue”> 请和下图保持一致 </font>,数据库主机都是 <font color=”blue”>localhost</font>,每个数据库的名称、用户名、明码都雷同,别离是:<font color=”red”>hive、amon、rman、oozie、hue</font>

  1. 参数设置页面,请依据磁盘状况适当调整存储门路,例如我的 <font color=”blue”>/home</font> 目录空间短缺,这里都改到了 <font color=”blue”>/home</font> 目录上面:

  1. 期待启动实现:

  1. 期待启动实现后,如下图所示:


至此,所有服务启动实现,不过有两个小问题须要修复;

修复 HDFS 问题

  1. 服务整体状况如下图,HDFS 服务有问题,点击红框中的图标:

  1. 点击下图红框地位:

  1. 故障详情如下图所示,属于常见的正本有余的问题:

  1. 如下图所示,批改 HDFS 的配置 <font color=”blue”>dfs.replication</font>,从 3 改成 1,而后保留更改:

  1. 重启服务:

  1. 通过上述设置,正本数曾经调整为 1,然而已有文件的正本数还没有同步,须要从新做设置,SSH 登录到电脑 deskmini 上;
  2. 执行命令 <font color=”blue”>vi /etc/passwd</font>,找到账号 hdfs 的配置,如下图红框所示,</font>/sbin/nologin</font> 这样的 shell 会导致切换到 hdfs 账号失败:

  1. 将上述红框中的内容改为 <font color=”blue”>/bin/bash</font>,批改后如下图红框所示:

  1. 执行命令 <font color=”blue”>su – hdfs</font>,即可切换到 hdfs 账号,此时执行以下命令即可实现正本数设置:
hadoop fs -setrep -R 1 /
  1. 服务曾经全副失常了:

调整 YARN 参数防止 spark-shell 启动失败

  1. YARN 默认给容器调配的内存过小,导致启动 spark-shell 失败,须要调整 YARM 相干的内存参数:

  1. 在 YARN 的配置页面,调整 <font color=”blue”>yarn.scheduler.maximum-allocation-mb</font> 和 <font color=”blue”>yarn.nodemanager.resource.memory-mb</font> 这两个参数的值,我这里将这个两个参数的值都改成 <font color=”red”>8G</font>(请依照本人电脑理论硬件配置来调整),如下图:

  1. 重启 YARN:

  1. 执行 spark-shell 命令之前,先执行命令 <font color=”blue”>su – hdfs</font> 切换到 hdfs 账号;
  2. 这次终于胜利进入 spark-shell 交互模式:


至此,CDH6 的部署、启动、设置都曾经实现,接下来体验一下大数据服务;

体验 HDFS 和 Spark

接下来运行一个 Spark 工作,经典的 WordCount:

  1. 筹备一份文本文件,外面是英文内容,您能够下载这个文件:https://raw.githubusercontent…
  2. 登录 SSH,切换到 <font color=”red”>hdfs</font> 账号;
  3. 创立 HDFS 文件夹:
hdfs dfs -mkdir /input
  1. 将文本文件上传到 /input 目录:
hdfs dfs -put ./GoneWiththeWind.txt /input
  1. 执行命令 <font color=”blue”>spark-shell</font>,启动一个 worker;
  2. 输出以下命令,即可实现一次 WorkCount 工作,<font color=”blue”>192.168.50.134</font> 是 deskmini 的 IP 地址:
sc.textFile("hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt").flatMap(_.split("")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.50.134:8020/output")
  1. 执行结束后,下载后果文件:
hdfs dfs -get /output/*
  1. 上述命令将 spark 工作的后果文件 part-00000、part-00001 下载到本机,用 vi 命令查看文件,如下图,可见 WorkCount 执行胜利:

  1. 在浏览器上查看历史工作,地址是:http://192.168.50.134:18088,可见此次工作的详情:

至此,CDH6 的部署、设置、体验都曾经实现,如果您正在搭建本人的学习或者开发环境,心愿本文能给您一些参考。

深度定制

整个实战尽管防止了传统部署过程中的大量手动操作,但弊病也很显著:所有门路、文件名、服务版本都是固定的,不能做任何设置,尽管 ansible 也反对变量,然而如果变量太多也会给您带来困扰,所以,如果您有批改版本或门路的需要,建议您自行批改 cdh-single-install.yml、cdh-single-start.yml 的内容,所有文件和版本信息都在外面。

欢送关注公众号:程序员欣宸

微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游 Java 世界 …
https://github.com/zq2599/blog_demos

正文完
 0