一、概念介绍

1、CDH 概览

CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版。CDH提供Hadoop的核心元素-可伸缩存储和分布式计算-以及基于web的用户界面和重要的企业功能。CDH是Apache许可的开放源码,是唯一提供统一批处理、交互式SQL和交互式搜索以及基于角色的访问控制的Hadoop解决方案。

CDH 提供以下特性:

  • 灵活性:存储任何类型的数据并使用各种不同的计算框架进行操作,包括批处理、交互式SQL、免费文本搜索、机器学习和统计计算。
  • 集成:在一个完整的Hadoop平台上快速启动和运行,该平台与广泛的硬件和软件解决方案一起工作。
  • 安全:处理和控制敏感数据。
  • 可伸缩性:启用广泛的应用程序和规模,并扩展它们以满足您的需求。
  • 高可用性:满怀信心地执行任务关键的业务任务。
  • 兼容性:利用您现有的IT基础设施和投资。

CDH 组件如下图:

2、Cloudera Manager 概览

Cloudera Manager 是用于管理cdh集群的端到端应用程序。Cloudera Manager通过向CDH集群的每个部分提供细粒度的可见性并对其进行控制来设置企业部署标准-授权运营商提高性能、提高服务质量、提高遵从性和降低管理成本。使用Cloudera Manager,您可以轻松地部署和集中操作完整的CDH堆栈和其他托管服务。应用程序自动化安装过程,将部署时间从数周减少到分钟;为您提供在集群范围内运行主机和服务的实时视图;提供一个单一的中央控制台来执行整个集群的配置更改;并集成各种报告和诊断工具,以帮助您进行操作。

Cloudera Manager 的架构如上图所示(cs结构),主要由如下几部分组成:

  • 服务端/Server:

    Cloudera Manager 的核心。主要用于管理 web server 和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。

  • 代理/agent:

    安装在每台主机上。它负责启动和停止的进程,部署配置,触发安装和监控主机。

  • 数据库/Database:

    存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的 Cloudera 管理器服务和监视,后台程序使用不同的逻辑数据库。

  • Cloudera Repository:由cloudera manager 提供的软件分发库。

  • 客户端/Clients:

    提供了一个与 Server 交互的接口。

Cloudera Manager包括server端和agent;server端主要作用是监控集群分发配置集群等,agent端主管集群各节点。

CDH是CM的安装包,本地或者云端,其中包括hadoop的生态系统需要的所有组件,通过Cloudera Manager统一管理和安装。

CDH除了可以通过cm安装也可以通过yum,tar,rpm安装。

二、环境准备

1、软件版本选择

类目 版本 下载地址
操作系统 CentOS Linux release 7.5.1804 (Core) 使用阿里云镜像下载
数据库 5.5.60-MariaDB yum源安装
JDK jdk-8u162-linux-x64.rpm Oracle 官网下载
Cloudera Manager Cloudera Manager 6.0.1 官方仓库
CDH CDH 6.0.1 使用parcels安装

2、节点准备(四个节点)

名称 IP CM管理软件
namenode01.wzlinux.com 172.18.8.200 Cloudera Manager Server&Agent ,MariaDB
datanode01.wzlinux.com 172.18.8.201 Cloudera Manager Agent
datanode02.wzlinux.com 172.18.8.202 Cloudera Manager Agent
datanode03.wzlinux.com 172.18.8.203 Cloudera Manager Agent

3、配置主机名和hosts解析(所有节点)

编辑/etc/hostname,修改主机名,并使用命令hostname使其立刻生效。

编辑文件/etc/hosts,增加如下内容。

172.18.8.200 namenode01.wzlinux.com namenode01
172.18.8.201 datanode01.wzlinux.com datanode01
172.18.8.202 datanode02.wzlinux.com datanode02
172.18.8.203 datanode03.wzlinux.com datanode03

4、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

5、关闭SELinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0

6、添加定时任务

echo "$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root

7、禁用透明大页面压缩

CDH配置需要

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并将上面的两条命令写入开机自启动/etc/rc.local

8、优化交换分区

echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p

三、安装 CM 和 CDH

1、配置 Cloudera Manager 仓库(所有节点)

wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera

使用仓库安装会比较慢,建议先把需要的rpm下载下来,进行离线安装或者建私有仓库,主要下面的三个软件包:

cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm

cloudera-manager-daemonsserveragent 必须安装的。

2、配置 JDK (所有节点)

rpm -ivh jdk-8u162-linux-x64.rpm

3、安装 CM Server 和 Agent

建议离线安装,把rpm包下载到服务器上面,传到其他节点一份,再本地安装,速度会快很多。

  • namenode01
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • datanode0[1-3]
yum install cloudera-manager-daemons cloudera-manager-agent

4、安装数据库(namenode01)

我们这里现在 CentOS 7.5 自带的 MariaDB,版本是支持的。

yum install mariadb-server -y

编辑配置文件/etc/my.cnf,修改成如下内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1 max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M #log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log #In later versions of MariaDB, if you enable the binary log and do not set
#a server_id, MariaDB will not start. The server_id must be unique within
#the replicating group.
server_id=1 binlog_format = mixed read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M # InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M [mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid #
# include all files from the config directory
#
!includedir /etc/my.cnf.d

打开数据库

systemctl enable mariadb
systemctl start mariadb

初始化数据库

/usr/bin/mysql_secure_installation

按照下面提示输入。

[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
[...]
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
[...]
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure. Thanks for using MariaDB!

4、安装 MySQL JDBC 驱动(所有节点)

用于各节点连接数据库。

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar xf mysql-connector-java-5.1.46.tar.gz mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

5、为 Cloudera 各软件创建数据库

使用root登陆数据库,创建以下数据库和账号。

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'wzlinux';

6、设置 Cloudera Manager 数据库

[root@namenode01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

Enter SCM password:
JAVA_HOME=/usr/java/jdk1.8.0_162
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_162/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

7、安装 CDH

配置CDH的软件包 parcels(namenode01)

CM安装成功之后,接下来我们就可以通过CM安装CDH的方式构建企业大数据平台。所以首先需要把CDH的parcels包下载到CM主服务器上。

同样的,我们为了加速我们的安装,我们可以把需要下载的软件包提前下载下来,也可以创建CDH私有仓库

[root@namenode01 ~]# cd /opt/cloudera/parcel-repo

wget https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
wget https://archive.cloudera.com/cdh6/6.0.1/parcels/manifest.json

在manifest.json文件中,找到对应版本的秘钥,复制到.sha文件中。

echo "2e650f1f1ea020a3efc98a231b85c2df1a50b030" > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha

修改属主属组。

chown cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/*

启动 Cloudera Manager Server

[root@namenode01 ~]# systemctl start cloudera-scm-server

如果启动中有什么问题,可以查看日志。

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

在最后显示的日志中,有显示启动监听的端口。

Started ServerConnector@da518cb{SSL,[ssl, http/1.1]}{0.0.0.0:7183}
Started ServerConnector@a77165b{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}

四、初始化 Cloudera Manager

浏览器打开http://172.18.8.200:7183,用户名和密码默认都是admin



接收许可。



这里我们选择免费版,收费版请自行选择。

五、集群安装



指定要添加的节点。



选择存储库,之前我们已经在 CM Server 节点配置好了。



不进行勾选,选择我们自己安装的 JDK。



提供 SSH 登录凭据。



安装 agents,因为之前我们已经安装了,所以这里速度会很快。



安装选定的Parcel,之前我们已经下载好,并配置好放在的 CM Server 节点的/opt/cloudera/parcel-repo



检查主机正确性。

六、集群设置

选择要安装的服务,可以根据自己的需求进行软件安装。



自定义角色分配。



数据库设置。



审核更改,如果有特定目录的设定或者参数的设定,可以在这里进行更正。



首次运行。



安装完成。

七、管理集群

首页Dashboard。



HDFS。



HBase。

安装参考文档:https://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html

CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解的更多相关文章

  1. 通过Cloudera Manager部署CDH5.15.1的webUI界面详解

    通过Cloudera Manager部署CDH5.15.1的webUI界面详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客CDH的部署完全通过Cloudera Mana ...

  2. 手动安装cloudera manager 5.x(tar包方式)详解

    官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦.第二种方法下载很多包.第三种方法对系统 ...

  3. windows环境下tensorflow安装过程详解

    写在最前: 在安装过程中遇到很多坑,一开始自己从官网下载了Python3.6.3或者Python3.6.5或者Python3.7.1等多个版本,然后直接pip install tensorflow或者 ...

  4. CentOS 7系统KVM虚拟机安装过程详解

    什么是 KVM ? KVM 在标准的 Linux 内核中增加了虚拟技术,从而我们可以通过优化的内核来使用虚拟技术.在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以 ...

  5. (转)Installing Cloudera Manager and CDH

    转:https://blog.csdn.net/qq_26222859/article/details/79976506 译自官网: Installing Cloudera Manager and C ...

  6. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...

  7. Cloudera Manager及CDH最新版本安装全程记录

    大家都知道,Apache Hadoop的配置很繁琐,而且很零散,为此Cloudera公司提供了Clouder Manager工具,而且还封装了Apache Hadoop,flume,spark,hiv ...

  8. 2、CDH 搭建Hadoop在安装(安装Cloudera Manager,CDH和托管服务)

    安装Cloudera Manager,CDH和托管服务 建议使用此过程为生产环境安装Cloudera Manager和CDH.对于非生产“易于安装”,请参阅安装概念证明群集. 在开始安装之前,请确保已 ...

  9. Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel

    本文引用自:Cloudera CDH .Impala本地通过Parcel安装配置详解及什么是Parcelhttp://www.aboutyun.com/forum.php?mod=viewthread ...

随机推荐

  1. 大数据之路week03--day05(线程 II)

    今天,咱们就把线程给完完全全的结束掉,但是不是说,就已经覆盖了全部的知识点,可以说是线程的常见的问题及所含知识基本都包含. 1.多线程(理解) (1)JDK5以后的针对线程的锁定操作和释放操作 Loc ...

  2. 「Django」Django内置email发送邮件

    Django内置email发送邮件 1.首先在settings.py文件设置相关参数 STATIC_URL = '/static/' # 设置邮件域名 EMAIL_HOST = 'smtp.163.c ...

  3. 「数据结构与算法(Python)」(三)

    栈结构实现 栈可以用顺序表实现,也可以用链表实现. 栈的操作 Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元 ...

  4. 尤娜博客系统 Una

    站长资讯平台:Una [‘尤娜’] 只是一个项目代号,没有特殊含义.尤娜是站在巨人的肩膀上开发完成的博客系统,旨在为程序员提供一个极简的内容创作管理平台,尤娜100%开放源代码,如果您对她感兴趣,Fo ...

  5. Node多国语言包

    Via:https://github.com/caouecs/Laravel-lang 1.下载:https://github.com/caouecs/laravel-lang/archive/mas ...

  6. Ubuntu 执行 apt-get install ××× 报错

    执行apt-get install fcitx时,报如下错误 grub-pc E: Sub-process /usr/bin/dpkg returned an error code (1) 通过执行下 ...

  7. 「NOI2019」弹跳(KD树)

    题意:w×h网格中有n个点,m条边.每条边可以从p点花费t时间到一个矩形中的任意点,求1号点到每个点的最少时间. \(1<=w,h<=n<=70000,1<=m<=150 ...

  8. P4160 [SCOI2009]生日快乐 搜索

    思路:无脑搜索 提交:1次 题解: 大力搜索,枚举每个状态\((x,y,l)\)(\(x\)指分配到的长(可能比\(y\)要短),\(y\)指分配到的宽(可能比\(x\)要长),\(l\)指剩余切的次 ...

  9. MySQL 跨版本主从复制时报错:ERROR 1794 (HY000): Slave is not configured or failed to initialize properly.

    背景: zabbix 数据库迁移,搭建主从,主是5.6.25,从是5.7.15,流式备份应用 redo.log 之后,change master 和reset slave 时报出如下错误 mysql& ...

  10. 随手记录---jq如何判断当前元素是第几个元素

    主要自己总是不记得 结构如下,涉及jq中获取当前元素是父元素的的第几个元素,jq中获取某类在同类元素中占第几,each方法 <div class="parent"> & ...