超简单的CDH6部署和体验(单机版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 借助ansible,和已经调试好的playbook,快速部署和体验单机版CDH6

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

为什么会超简单

  • 借助ansible简化了CDH6部署工作的大部分内容,也降低了手工操作失误的概率,今天实战的内容,是在一台安装了ansible的电脑上(苹果或Linux操作系统)运行ansible脚本,远程操作一台CentOS服务器,在上面部署CDH6,并操作验证本次部署是否成功。

ansible学习

为什么要部署单机版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操作系统(实在对不起,我这条件有限,别的系统没有试过)
  • 整个实战涉及的环境版本信息如下:
  • ansible服务器:macOS Catalina 10.15(实测用CentOS7.7也成功)
  • CDH服务器:CentOS Linux release 7.7.1908
  • cm版本:6.1.0
  • parcel版本:6.1.1
  • 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脚本

在这里插入图片描述

文件摆放(ansible服务器)

  • 如果您已经下载好了上述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服务器设置

  • 本次实战中,CDH服务器hostname是deskmini,IP地址是192.168.50.134,需要做以下操作:
  • 请确保CDH服务器能SSH登录(用户名+密码);
  • SSH登录到部署CDH的机器;
  • 检查/etc/hostname文件是正确,如下图:

在这里插入图片描述

  • 修改/etc/hosts文件,将自己的IP地址和hostname配置上去,如下图红框所示(事实证明这一步很重要,如果不做可能导致在部署时一直卡在"分配"阶段,看agent日志显示agent下载parcel的进度一直是百分之零):

在这里插入图片描述

ansible参数设置(ansible服务器)

  • 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保证了操作的幂等性;
  • 部署成功如下图所示:

在这里插入图片描述

重启CDH服务器

  • 由于修改了selinux和swap的设置,需要重启操作系统才能生效,因此请重启CDH服务器;

启动(ansible服务器)

  • 等待CDH服务器重启成功;
  • 登录ansible服务器,进入~/playbooks目录;
  • 执行此命令开始初始化数据库,然后启动CDH:ansible-playbook cdh-single-start.yml
  • 启动完成输出如下信息:

在这里插入图片描述

设置(网页)

  • CDH已经启动,CDH服务器对外提供了web服务,可以通过浏览器来操作:
  • 浏览器访问:http://192.168.50.134:7180 ,如下图,账号密码都是admin

在这里插入图片描述

  • 一路next,在选择版本页面选择60天体验版:

在这里插入图片描述

  • 选择主机页面可见deskmini:

在这里插入图片描述

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

在这里插入图片描述

  • 下载瞬间完成,等候分配、解压、激活:

在这里插入图片描述

  • 选择服务的页面,我这里选择了Data Engineering,因为需要spark:

在这里插入图片描述

  • 选择机器的页面,全选deskmini:

在这里插入图片描述

  • 数据库设置页面,请和下图保持一致,数据库主机都是localhost,每个数据库的名称、用户名、密码都相同,分别是:hive、amon、rman、oozie、hue

在这里插入图片描述

  • 参数设置页面,请根据磁盘情况适当调整存储路径,例如我的/home目录空间充足,这里都改到了/home目录下面:

在这里插入图片描述

  • 等待启动完成:

在这里插入图片描述

  • 等待启动完成后,如下图所示:

在这里插入图片描述

  • 至此,所有服务启动完成,不过有两个小问题需要修复;

修复HDFS问题

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

在这里插入图片描述

  • 点击下图红框位置:

在这里插入图片描述

  • 故障详情如下图所示,属于常见的副本不足的问题:

在这里插入图片描述

  • 如下图所示,修改HDFS的配置dfs.replication,从3改成1,然后保存更改:

在这里插入图片描述

  • 重启服务:

在这里插入图片描述

  • 经过上述设置,副本数已经调整为1,但是已有文件的副本数还没有同步,需要重新做设置,SSH登录到电脑deskmini上;
  • 执行命令vi /etc/passwd,找到账号hdfs的配置,如下图红框所示,/sbin/nologin这样的shell会导致切换到hdfs账号失败:

在这里插入图片描述

  • 将上述红框中的内容改为/bin/bash,修改后如下图红框所示:

在这里插入图片描述

  • 执行命令su - hdfs,即可切换到hdfs账号,此时执行以下命令即可完成副本数设置:
hadoop fs -setrep -R 1 /
  • 服务已经全部正常了:

在这里插入图片描述

调整YARN参数避免spark-shell启动失败

  • YARN默认给容器分配的内存过小,导致启动spark-shell失败,需要调整YARM相关的内存参数:

在这里插入图片描述

  • 在YARN的配置页面,调整yarn.scheduler.maximum-allocation-mbyarn.nodemanager.resource.memory-mb这两个参数的值,我这里将这个两个参数的值都改成8G(请按照自己电脑实际硬件配置来调整),如下图:

在这里插入图片描述

  • 重启YARN:

在这里插入图片描述

  • 执行spark-shell命令之前,先执行命令su - hdfs切换到hdfs账号;
  • 这次终于成功进入spark-shell交互模式:

在这里插入图片描述

  • 至此,CDH6的部署、启动、设置都已经完成,接下来体验一下大数据服务;

体验HDFS和Spark

hdfs dfs -mkdir /input
  • 将文本文件上传到/input目录:
hdfs dfs -put ./GoneWiththeWind.txt /input
  • 执行命令spark-shell,启动一个worker;
  • 输入以下命令,即可完成一次WorkCount任务,192.168.50.134是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")
  • 执行完毕后,下载结果文件:
hdfs dfs -get /output/*
  • 上述命令将spark任务的结果文件part-00000、part-00001下载到本机,用vi命令查看文件,如下图,可见WorkCount执行成功:

在这里插入图片描述

  • 在浏览器上查看历史任务,地址是:http://192.168.50.134:18088 ,可见此次任务的详情:

在这里插入图片描述

  • 至此,CDH6的部署、设置、体验都已经完成,如果您正在搭建自己的学习或者开发环境,希望本文能给您一些参考。

深度定制

  • 整个实战虽然避免了传统部署过程中的大量手动操作,但弊端也很明显:所有路径、文件名、服务版本都是固定的,不能做任何设置,虽然ansible也支持变量,但是如果变量太多也会给您带来困扰,所以,如果您有修改版本或路径的需求,建议您自行修改cdh-single-install.yml、cdh-single-start.yml的内容,所有文件和版本信息都在里面。

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 Linux 数据安全/隐私保护
安装部署milvus单机版(快速体验)
安装部署milvus单机版(快速体验)
1721 0
|
6月前
|
分布式计算 Hadoop 大数据
最新版本——Hadoop3.3.6单机版完全部署指南
最新版本——Hadoop3.3.6单机版完全部署指南
996 57
|
6月前
|
消息中间件 分布式计算 Hadoop
kafaka单节点安装部署kafaka多节点安装部署
kafaka单节点安装部署kafaka多节点安装部署
58 3
|
存储 Java 大数据
分布式数据库HBase的安装部署和环境搭建的集群模式
HBase是一个分布式数据库系统,能够支持高性能、高可靠性、高伸缩性的数据存储和读写操作。在大数据时代,HBase成为了一个越来越受欢迎的数据库选择。本文将介绍HBase的集群模式的安装部署和环境搭建,帮助开发者快速上手。
718 2
|
存储 Java 大数据
分布式数据库HBase的安装部署和环境搭建的Standalone/伪集群模式
HBase是一个分布式数据库系统,能够支持高性能、高可靠性、高伸缩性的数据存储和读写操作。在大数据时代,HBase成为了一个越来越受欢迎的数据库选择。本文将介绍HBase的Standalone/伪集群模式的安装部署和环境搭建,帮助开发者快速上手。
716 1
|
资源调度 分布式计算 Kubernetes
Flink最全的集群部署攻略(推荐yarn实现企业级部署)
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
6984 1
Flink最全的集群部署攻略(推荐yarn实现企业级部署)
|
分布式计算 运维 Hadoop
【大数据开发运维解决方案】Hadoop2.7.6+Spark单机伪分布式安装
一、安装spark依赖的Scala 1.1 下载和解压缩Scala 下载地址: 点此下载 或则直接去官网挑选下载: 官网连接 在Linux服务器的opt目录下新建一个名为scala的文件夹,并将下载的压缩包上载上去: [root@hadoop opt]# cd /usr/ [root@hadoop usr]# mkdir scala [root@hadoop usr]# cd scala/ [ro...
【大数据开发运维解决方案】Hadoop2.7.6+Spark单机伪分布式安装
|
分布式计算 Hadoop Java
Hadoop使用教程(1):单节点部署
本文记录了hadoop单节点部署的步骤
|
分布式计算 资源调度 Ubuntu
Hadoop3.0通用版集群安装高可靠详细教程【包括零基础】
Hadoop3.0通用版集群安装高可靠详细教程【包括零基础】
135 0
Hadoop3.0通用版集群安装高可靠详细教程【包括零基础】
uiu
|
存储 分布式计算 安全
【亲测】Hadoop 高可用集群搭建 与 开发环境部署(二)
【亲测】Hadoop 高可用集群搭建 与 开发环境部署(二)
uiu
143 0
【亲测】Hadoop 高可用集群搭建 与 开发环境部署(二)