01
Cloudera CDH CM:简介
Cloudera CDH,是Cloudera公司对Apache Hadoop二次开发后的发行版;
Cloudera CM,是Cloudera公司开发的,用于管理Hadoop集群的工具;
02
预安装环境说明
如题所示,本文会详细介绍如何在红帽RHEL7.6的平台上部署Cloudera CM与CDH的Hadoop集群环境;
在开始正式说明之前,你需要配置好一些前置条件:
DNS:
在我的环境中,DNS是搭建在MS Windows 2016上的;
地址:192.168.72.254
如图:

监控:
监控的目标是为了更好的查看集群的资源状态与运行情况;
为了简便,这里我使用的监控是Percona的PMM,对MySQL与OS的运行状态做简单的监控与展示;
地址:
http://192.168.72.253/graph/
如图:

数据库支持:
Cloudera的CM与CDH需要后端数据库的支持,Cloudera支持的数据库有很多种,如:Oracle MySQL PostgreSQL;
在我的环境中,我选择MySQL数据库;
数据库的支持不在本文档的介绍范畴中,但这一部分的配置我已经完成了,它的信息如下:
MySQL:Percona MySQL 5.7 - PXC集群模式
节点一:192.168.72.21
节点二:192.168.72.22
节点三:192.168.72.23
代码:
[root@percona-mysql-01 ~]# systemctl status mysql@bootstrap.service● mysql@bootstrap.service - Percona XtraDB Cluster with config etc/sysconfig/mysql.bootstrapLoaded: loaded (/usr/lib/systemd/system/mysql@.service; disabled; vendor preset: disabled)Active: active (running) since Tue 2020-04-07 20:34:59 CST; 23h agoMain PID: 41171 (mysqld_safe)CGroup: system.slice/system-mysql.slice/mysql@bootstrap.service├─41171 bin/sh usr/bin/mysqld_safe --basedir=/usr --wsrep-new-c...└─41657 usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql -...Apr 07 20:34:49 percona-mysql-01 systemd[1]: Starting Percona XtraDB Cluster....Apr 07 20:34:49 percona-mysql-01 mysql-systemd[41172]: State transfer in prog...Apr 07 20:34:50 percona-mysql-01 mysqld_safe[41171]: 2020-04-07T12:34:50.0874...Apr 07 20:34:50 percona-mysql-01 mysqld_safe[41171]: 2020-04-07T12:34:50.0927...Apr 07 20:34:50 percona-mysql-01 mysqld_safe[41171]: 2020-04-07T12:34:50.1382...Apr 07 20:34:50 percona-mysql-01 mysqld_safe[41171]: 2020-04-07T12:34:50.1585...Apr 07 20:34:50 percona-mysql-01 mysqld_safe[41171]: 2020-04-07T12:34:50.1613...Apr 07 20:34:59 percona-mysql-01 mysql-systemd[41172]: SUCCESS!Apr 07 20:34:59 percona-mysql-01 systemd[1]: Started Percona XtraDB Cluster ....Hint: Some lines were ellipsized, use -l to show in full.[root@percona-mysql-01 ~]#[root@percona-mysql-01 mysql]# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6569Server version: 5.7.28-31-57-log Percona XtraDB Cluster (GPL), Release rel31, Revision ef2fa88, WSREP version 31.41, wsrep_31.41Copyright (c) 2009-2019 Percona LLC and/or its affiliatesCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>mysql> show global status like 'wsrep_ready';+---------------+-------+| Variable_name | Value |+---------------+-------+| wsrep_ready | ON |+---------------+-------+1 row in set (0.01 sec)mysql>mysql> show global status like 'wsrep_cluster%';+--------------------------+--------------------------------------+| Variable_name | Value |+--------------------------+--------------------------------------+| wsrep_cluster_weight | 3 || wsrep_cluster_conf_id | 3 || wsrep_cluster_size | 3 || wsrep_cluster_state_uuid | f0ae4bd5-78c7-11ea-a173-6a64eeb13518 || wsrep_cluster_status | Primary |+--------------------------+--------------------------------------+5 rows in set (0.00 sec)mysql> exit[root@percona-mysql-01 ~]# cat etc/hosts#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# Local127.0.0.1 localhost localhost.localdomain# Public192.168.72.21 percona-mysql-01 percona-mysql-01.adamhuan.com192.168.72.22 percona-mysql-02 percona-mysql-02.adamhuan.com192.168.72.23 percona-mysql-03 percona-mysql-03.adamhuan.com# Finished[root@percona-mysql-01 ~]#
在PMM的监控上面也是可以看到PXC的状态的:

数据库中,为Cloudera创建初始化的空库和对应的用户;
创建脚本:
# cloudera manager serverCREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '***不要看密码***';# activity monitorCREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '***不要看密码***';# reports managerCREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '***不要看密码***';# hueCREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '***不要看密码***';# hive metastore serverCREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '***不要看密码***';# sentry serverCREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '***不要看密码***';# cloudera navigator audit serverCREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '***不要看密码***';# cloudera navigator metadata serverCREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '***不要看密码***';# oozieCREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '***不要看密码***';
执行:
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || adamhuan || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec)mysql>mysql> source create_database.sqlQuery OK, 1 row affected (0.01 sec)Query OK, 0 rows affected, 1 warning (0.02 sec)Query OK, 1 row affected (0.02 sec)Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 1 row affected (0.02 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.02 sec)Query OK, 0 rows affected, 1 warning (0.02 sec)Query OK, 1 row affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 1 row affected (0.01 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 1 row affected (0.01 sec)Query OK, 0 rows affected, 1 warning (0.02 sec)Query OK, 1 row affected (0.01 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)mysql>mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || adamhuan || amon || hue || metastore || mysql || nav || navms || oozie || performance_schema || rman || scm || sentry || sys |+--------------------+14 rows in set (0.00 sec)mysql> select user,host from mysql.user\G*************************** 1. row ***************************user: amonhost: %*************************** 2. row ***************************user: hivehost: %*************************** 3. row ***************************user: huehost: %*************************** 4. row ***************************user: navhost: %*************************** 5. row ***************************user: navmshost: %*************************** 6. row ***************************user: ooziehost: %*************************** 7. row ***************************user: rmanhost: %*************************** 8. row ***************************user: roothost: %*************************** 9. row ***************************user: scmhost: %*************************** 10. row ***************************user: sentryhost: %*************************** 11. row ***************************user: sstuserhost: %*************************** 12. row ***************************user: mysql.sessionhost: localhost*************************** 13. row ***************************user: mysql.syshost: localhost*************************** 14. row ***************************user: roothost: localhost*************************** 15. row ***************************user: sstuserhost: localhost15 rows in set (0.00 sec)mysql>
03
Cloudera:架构说明
在我的当前环境中,我的Cloudera将包含5个节点:
节点一:192.168.72.11
节点二:192.168.72.12
节点三:192.168.72.13
节点四:192.168.72.14
节点五:192.168.72.15
其中:
CM,安装在【节点一】;
CDH,安装在【五个节点】;
CM架构与会开放的网络端口

CDH架构与会开放的网络端口

04
节点服务器:操作系统通用配置
操作系统:RHEL 7.6 - 64bit
[root@cloudera1 ~]# cat etc/redhat-releaseRed Hat Enterprise Linux Server release 7.6 (Maipo)[root@cloudera1 ~]#[root@cloudera1 ~]# uname -r3.10.0-957.el7.x86_64[root@cloudera1 ~]#
文件系统分配方式:LVM
[root@cloudera1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/rhel-root 17G 3.8G 14G 23%devtmpfs 7.8G 0 7.8G 0% devtmpfs 7.8G 0 7.8G 0% dev/shmtmpfs 7.8G 13M 7.8G 1% runtmpfs 7.8G 0 7.8G 0% sys/fs/cgroup/dev/sda1 1014M 178M 837M 18% boottmpfs 1.6G 12K 1.6G 1% run/user/42tmpfs 1.6G 0 1.6G 0% run/user/0/dev/sr0 4.2G 4.2G 0 100% iso[root@cloudera1 ~]#
网络:IP地址【静态分配】
[root@cloudera1 ~]# ifconfigens32: flags=4163mtu 1500inet 192.168.72.11 netmask 255.255.255.0 broadcast 192.168.72.255inet6 fe80::982e:a694:efaa:41c8 prefixlen 64 scopeid 0x20ether 00:0c:29:1c:98:59 txqueuelen 1000 (Ethernet)RX packets 98710 bytes 61491223 (58.6 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 105285 bytes 194772296 (185.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10loop txqueuelen 1000 (Local Loopback)RX packets 84 bytes 9828 (9.5 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 84 bytes 9828 (9.5 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:df:a4:a0 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@cloudera1 ~][root@cloudera1 ~]# cat etc/sysconfig/network-scripts/ifcfg-ens32TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens32"UUID="564fb326-a96e-4b6d-90a2-a6abaa0d3d13"DEVICE="ens32"ONBOOT="yes"IPADDR="192.168.72.11"PREFIX="24"GATEWAY="192.168.72.2"DNS1="114.114.114.114"DNS2="192.168.72.254"IPV6_PRIVACY="no"[root@cloudera1 ~]#
注意,上面的静态配置里面,指定了我们自建的DNS服务器地址【DNS2=XXX】
时间服务器(NTP):启用
[root@cloudera1 ~]# service ntpd statusRedirecting to bin/systemctl status ntpd.service● ntpd.service - Network Time ServiceLoaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)Active: active (running) since Thu 2020-04-09 18:06:36 CST; 3h 46min agoProcess: 9846 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 9885 (ntpd)Tasks: 1CGroup: /system.slice/ntpd.service└─9885 /usr/sbin/ntpd -u ntp:ntp -gApr 09 18:06:39 cloudera1.adamhuan.com ntpd[9885]: Listen normally on 4 ens32 192.168...3Apr 09 18:06:39 cloudera1.adamhuan.com ntpd[9885]: Listen normally on 5 ens32 fe80::9...3Apr 09 18:06:39 cloudera1.adamhuan.com ntpd[9885]: new interface(s) found: waking up ...rApr 09 18:06:42 cloudera1.adamhuan.com ntpd[9885]: Listen normally on 6 virbr0 192.16...3Apr 09 18:06:42 cloudera1.adamhuan.com ntpd[9885]: new interface(s) found: waking up ...rApr 09 18:06:46 cloudera1.adamhuan.com ntpd[9885]: 0.0.0.0 c61c 0c clock_step -0.281372 sApr 09 18:06:46 cloudera1.adamhuan.com ntpd[9885]: 0.0.0.0 c614 04 freq_modeApr 09 18:06:47 cloudera1.adamhuan.com ntpd[9885]: 0.0.0.0 c618 08 no_sys_peerApr 09 18:22:03 cloudera1.adamhuan.com ntpd[9885]: 0.0.0.0 c612 02 freq_set kernel 12...MApr 09 18:22:03 cloudera1.adamhuan.com ntpd[9885]: 0.0.0.0 c615 05 clock_syncHint: Some lines were ellipsized, use -l to show in full.[root@cloudera1 ~]#[root@cloudera1 ~]# cat etc/ntp.conf | grep -v "^#" | stringsdriftfile /var/lib/ntp/driftrestrict default nomodify notrap nopeer noqueryrestrict 127.0.0.1restrict ::1server 192.168.72.254 iburstincludefile /etc/ntp/crypto/pwkeys /etc/ntp/keysdisable monitor[root@cloudera1 ~]#
SELinux:disable
[root@cloudera1 ~]# getenforceDisabled[root@cloudera1 ~]# sestatusSELinux status: disabled[root@cloudera1 ~]#[root@cloudera1 ~]# sed -i '/SELINUX/s/enforcing/disabled/g' etc/selinux/config[root@cloudera1 ~]#[root@cloudera1 ~]# cat etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targeted[root@cloudera1 ~]#
防火墙:禁用
[root@cloudera1 ~]# systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)[root@cloudera1 ~]#
YUM:启用【缓存】
[root@cloudera1 ~]# sed -i '/keepcache/s/0/1/g' etc/yum.conf[root@cloudera1 ~]#[root@cloudera1 ~]# cat etc/yum.conf[main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=1debuglevel=2logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1installonly_limit=3# This is the default, if you make this bigger yum won't see if the metadata# is newer on the remote and so you'll "gain" the bandwidth of not having to# download the new metadata and "pay" for it by yum not having correct# information.# It is esp. important, to have correct metadata, for distributions like# Fedora which don't keep old packages around. If you don't like this checking# interupting your command line usage, it's much better to have something# manually check the metadata once an hour (yum-updatesd will do this).# metadata_expire=90m# PUT YOUR REPOS HERE OR IN separate files named file.repo# in etc/yum.repos.d[root@cloudera1 ~]#
【keepcache=1】就打开了YUM的RPM包缓存功能;
YUM:源
[root@cloudera1 ~]# ls -ltr etc/yum.repos.d/total 20-rw-r--r-- 1 root root 2424 Apr 8 15:45 docker-ce.repo-rw-r--r-- 1 root root 954 Apr 8 15:45 epel.repo-rw-r--r-- 1 root root 2501 Apr 8 15:45 percona-release.repo-rw-r--r--. 1 root root 358 Apr 8 15:45 redhat.repo-rw-r--r-- 1 root root 1544 Apr 8 15:45 tsinghua.repo[root@cloudera1 ~]#
文件:【/etc/hosts】
[root@cloudera1 ~]# cat etc/hosts#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# Local127.0.0.1 localhost.localdomain localhost# Public192.168.72.11 cloudera1.adamhuan.com cloudera1192.168.72.12 cloudera2.adamhuan.com cloudera2192.168.72.13 cloudera3.adamhuan.com cloudera3192.168.72.14 cloudera4.adamhuan.com cloudera4192.168.72.15 cloudera5.adamhuan.com cloudera5# Finished[root@cloudera1 ~]#
主机名
[root@cloudera1 ~]# cat etc/hostnamecloudera1.adamhuan.com[root@cloudera1 ~]#
主机名要和DNS中的配置相匹配;
Java支持
yum install -y oracle-j2sdk1.8
05
Cloudera:安装介质的获取
Cloudera的官方下载网站是:
https://www.cloudera.com/downloads.html

其中:
CM的下载页面是:
https://www.cloudera.com/downloads/manager.html

CDH的下载页面是:
https://www.cloudera.com/downloads/cdh.html

不过,现在要下载CDH最新版本的话,需要有Cloudera官方的许可;
除了官网页面可以访问到的上面两个路径可以下载到对应的安装介质之外,还可以通过Cloudera的Archive获取安装包:
CM:
https://archive.cloudera.com/cm6/
CDH:
https://archive.cloudera.com/cdh6/
06
通过离线的HTTPD分发Cloudera安装介质
在前一个小节里面,你可以看到Cloudera的CM和CDH的安装介质中,有的文件大小非常的大,有的甚至达到了1G的大小;
如果我们通过Cloudera的安装脚本或者CM工具,执行在线的安装,那么会通过网络效率很低的下载1G左右的数据,这样安装过程的时间会非常的不可控;
因此,比较好的做法是:
首先,将Cloudera的安装需要用到的介质全部下载到本地;
然后,在离线的私网中搭建HTTPD服务来分发安装介质;
这样,离线的网络速度肯定比在线的效率高得多。
在我的环境中,我的HTTPD服务安装在节点服务器【cloudera1】上面;
一、将安装介质上传到服务器上的【/software】目录,并且对RPM包目录执行【createrepo】
[root@cloudera1 ~]# ls -ltr softwaretotal 4drwxr-xr-x 4 root root 32 Apr 8 20:34 cdhdrwxr-xr-x 2 root root 4096 Apr 8 20:35 cm[root@cloudera1 ~]#[root@cloudera1 ~]# du -sh software14G /software[root@cloudera1 ~]#[root@cloudera1 ~]# du -sh /software/*12G /software/cdh1.4G /software/cm[root@cloudera1 ~]#[root@cloudera1 software]# pwd/software[root@cloudera1 software]#[root@cloudera1 software]# lscdh cm[root@cloudera1 software]#[root@cloudera1 software]# createrepo cm/Spawning worker 0 with 2 pkgsSpawning worker 1 with 2 pkgsSpawning worker 2 with 1 pkgsSpawning worker 3 with 1 pkgsWorkers FinishedSaving Primary metadataSaving file lists metadataSaving other metadataGenerating sqlite DBsSqlite DBs complete[root@cloudera1 software]#[root@cloudera1 software]# ls cm/ | grep reporepodata[root@cloudera1 software]#[root@cloudera1 software]# ls cdh/parcels rpm[root@cloudera1 software]#[root@cloudera1 software]# createrepo cdh/rpm/Spawning worker 0 with 23 pkgsSpawning worker 1 with 23 pkgsSpawning worker 2 with 22 pkgsSpawning worker 3 with 22 pkgsWorkers FinishedSaving Primary metadataSaving file lists metadataSaving other metadataGenerating sqlite DBsSqlite DBs complete[root@cloudera1 software]#[root@cloudera1 software]# ls cdh/rpm/ | grep reporepodata[root@cloudera1 software]#
二、安装HTTPD服务
[root@cloudera1 ~]# yum install -y httpdLoaded plugins: langpacks, product-id, search-disabled-repos, subscription-: managerThis system is not registered with an entitlement server. You can use subscription-manager to register.base | 3.6 kB 00:00docker-ce-stable | 3.5 kB 00:00epel | 4.7 kB 00:00extras | 2.9 kB 00:00percona-release-noarch | 2.9 kB 00:04percona-release-x86_64 | 2.9 kB 00:00Package httpd-2.4.6-90.el7.centos.x86_64 already installed and latest versionNothing to do[root@cloudera1 ~]#
三、配置HTTPD服务
[root@cloudera1 ~]# cat /etc/httpd/conf/httpd.conf | grep -v "#" | strings ServerRoot "/etc/httpd"Listen 80Include conf.modules.d/*.confUser apacheGroup apacheServerAdmin root@localhostAllowOverride noneRequire all deniedDocumentRoot "/var/www/html"AllowOverride NoneRequire all grantedOptions Indexes FollowSymLinksAllowOverride NoneRequire all grantedDirectoryIndex index.htmlRequire all deniedErrorLog "logs/error_log"LogLevel warnLogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" commonLogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedioCustomLog "logs/access_log" combinedScriptAlias /cgi-bin/ "/var/www/cgi-bin/"AllowOverride NoneOptions NoneRequire all grantedTypesConfig /etc/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgz .parcelAddType text/html .shtmlAddOutputFilter INCLUDES .shtmlAddDefaultCharset UTF-8MIMEMagicFile conf/magicEnableSendfile onIncludeOptional conf.d/*.conf[root@cloudera1 ~]#[root@cloudera1 ~]# cat /etc/httpd/conf/httpd.conf | grep "parcel"AddType application/x-gzip .gz .tgz .parcel[root@cloudera1 ~]#[root@cloudera1 ~]# cat /etc/httpd/conf/httpd.conf | grep -n "parcel"284: AddType application/x-gzip .gz .tgz .parcel[root@cloudera1 ~]#
如上,只是在【x-gzip】后面增加了【.parcel】
四、启动HTTPD服务
[root@cloudera1 ~]# service httpd startRedirecting to /bin/systemctl start httpd.service[root@cloudera1 ~]#[root@cloudera1 ~]# service httpd statusRedirecting to /bin/systemctl status httpd.service● httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2020-04-08 17:49:28 CST; 5h 46min agoDocs: man:httpd(8)man:apachectl(8)Main PID: 23091 (httpd)Status: "Total requests: 18; Current requests/sec: 0; Current traffic: 0 B/sec"Tasks: 11CGroup: /system.slice/httpd.service├─23091 /usr/sbin/httpd -DFOREGROUND├─23094 /usr/sbin/httpd -DFOREGROUND├─23095 /usr/sbin/httpd -DFOREGROUND├─23096 /usr/sbin/httpd -DFOREGROUND├─23097 /usr/sbin/httpd -DFOREGROUND├─26245 /usr/sbin/httpd -DFOREGROUND├─26246 /usr/sbin/httpd -DFOREGROUND├─26248 /usr/sbin/httpd -DFOREGROUND├─26249 /usr/sbin/httpd -DFOREGROUND├─26250 /usr/sbin/httpd -DFOREGROUND└─26251 /usr/sbin/httpd -DFOREGROUNDApr 08 17:49:28 cloudera1 systemd[1]: Starting The Apache HTTP Server...Apr 08 17:49:28 cloudera1 httpd[23091]: AH00558: httpd: Could not relia...eApr 08 17:49:28 cloudera1 systemd[1]: Started The Apache HTTP Server.Hint: Some lines were ellipsized, use -l to show in full.[root@cloudera1 ~]#[root@cloudera1 ~]# netstat -tupln | grep 80tcp6 0 0 :::80 :::* LISTEN 23091/httpdudp 0 0 0.0.0.0:33145 0.0.0.0:* 9780/avahi-daemon:udp 0 0 0.0.0.0:5353 0.0.0.0:* 9780/avahi-daemon:udp6 0 0 fe80::982e:a694:efa:123 :::* 21973/ntpd[root@cloudera1 ~]#
五、在HTTPD服务的WEB根目录中,创建软链接
[root@cloudera1 ~]# cd /var/www/html/[root@cloudera1 html]# lltotal 0[root@cloudera1 html]#[root@cloudera1 html]# ln -s /software/ software[root@cloudera1 html]# lltotal 0lrwxrwxrwx 1 root root 10 Apr 8 22:57 software -> /software/[root@cloudera1 html]#
六、通过网页浏览器查看配好的HTTPD服务,验证配置是否成功

可以看到,通过HTTPD分发Cloudera的安装介质,已经配置成功。
七、基于网页分发的RPM的源文件
[root@cloudera1 ~]# yum repolistLoaded plugins: langpacks, product-id, search-disabled-repos, subscription-: managerThis system is not registered with an entitlement server. You can use subscription-manager to register.local_cloudera_cdh | 2.9 kB 00:00local_cloudera_cm | 2.9 kB 00:00updates | 2.9 kB 00:00(1/2): local_cloudera_cdh/primary_db | 53 kB 00:00(2/2): local_cloudera_cm/primary_db | 8.6 kB 00:00repo id repo name statusbase/x86_64 CentOS-7 - Base 10,097docker-ce-stable/x86_64 Docker CE Stable - x86_64 70epel/x86_64 Extra Packages for Enterprise 13,229extras/x86_64 CentOS-7 - Extras 341local_cloudera_cdh cloudera_cdh_local 90local_cloudera_cm cloudera_cm_local 6percona-release-noarch/7Server Percona-Release YUM repository 53percona-release-x86_64/7Server/x86_64 Percona-Release YUM repository 1,985updates/x86_64 CentOS-7 - Updates 1,787repolist: 27,658[root@cloudera1 ~]#[root@cloudera1 ~]# cat /etc/yum.repos.d/local_cloudera.repo[local_cloudera_cm]name=cloudera_cm_localbaseurl=http://192.168.72.11/software/cmgpgcheck=0[local_cloudera_cdh]name=cloudera_cdh_localbaseurl=http://192.168.72.11/software/cdh/rpmgpgcheck=0[root@cloudera1 ~]#
这里的YUM源的配置,要同步到集群的所有节点。
07
Cloudera Manager【CM】:安装
【CM Server】
在我的环境里,在【cloudera1】上安装:
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
【CM Agent】
在我的环境里,在【所有节点上】上安装:
yum install cloudera-manager-agent cloudera-manager-daemons
08
Cloudera Manager【CM】:启动服务
零、所有节点安装【MySQL JDBC Driver】
yum install -y mysql-connector-java
一、【Cloudera Manager / Agent】
[root@cloudera2 ~]# systemctl enable cloudera-scm-agent[root@cloudera2 ~]# systemctl start cloudera-scm-agent[root@cloudera2 ~]# systemctl status cloudera-scm-agent● cloudera-scm-agent.service - Cloudera Manager Agent ServiceLoaded: loaded (/usr/lib/systemd/system/cloudera-scm-agent.service; enabled; vendor preset: disabled)Active: active (running) since Thu 2020-04-09 01:03:46 CST; 1min 21s agoMain PID: 17766 (cmagent)Tasks: 21CGroup: /system.slice/cloudera-scm-agent.service└─17766 /usr/bin/python2 /opt/cloudera/cm-agent/bin/cm agentApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...dApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...eApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...sApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...sApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...sApr 09 01:03:48 cloudera2 cm[17766]: [09/Apr/2020 01:03:48 +0000] 17766...gApr 09 01:03:52 cloudera2 cm[17766]: status_server: added process groupApr 09 01:03:52 cloudera2 cm[17766]: flood: added process groupApr 09 01:03:54 cloudera2 cm[17766]: /opt/cloudera/cm-agent/lib/python2...0Apr 09 01:03:54 cloudera2 cm[17766]: warnings.warn(msg, RuntimeWarning)Hint: Some lines were ellipsized, use -l to show in full.[root@cloudera2 ~]#
二、【Cloudera Manager / Server】
设置【CM Server】与数据库的关联
[root@cloudera1 ~]# find /opt -name "scm_prepare_database.sh"/opt/cloudera/cm/schema/scm_prepare_database.sh[root@cloudera1 ~]#[root@cloudera1 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 192.168.72.21 mysql scm scmEnter SCM password:JAVA_HOME=/usr/java/jdk1.8.0_181-clouderaVerifying that we can write to /etc/cloudera-scm-serverCreating SCM configuration file in /etc/cloudera-scm-serverExecuting: /usr/java/jdk1.8.0_181-cloudera/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![root@cloudera1 ~]#[root@cloudera1 ~]# cat /etc/cloudera-scm-server/db.properties# Auto-generated by scm_prepare_database.sh on Thu Apr 9 10:58:09 CST 2020## For information describing how to configure the Cloudera Manager Server# to connect to databases, see the "Cloudera Manager Installation Guide."#com.cloudera.cmf.db.type=mysqlcom.cloudera.cmf.db.host=192.168.72.21com.cloudera.cmf.db.name=scmcom.cloudera.cmf.db.user=scmcom.cloudera.cmf.db.setupType=EXTERNALcom.cloudera.cmf.db.password=这里会显示你的密码[root@cloudera1 ~]#
这时候,就可以启动服务了:
systemctl enable cloudera-scm-serversystemctl start cloudera-scm-server
在【CM Server】服务启动的过程中,会完成对上一步关联的数据库的初始化工作;初始化的过程可以在【cloudera-scm-server】的后台日志中看到;
日志位置:/var/log/cloudera-scm-server/cloudera-scm-server.log
2020-04-09 11:11:49,925 INFO WebServerImpl:org.eclipse.jetty.server.AbstractConnector: Started ServerConnector@35812541{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}2020-04-09 11:11:49,927 INFO WebServerImpl:org.eclipse.jetty.server.Server: Started @325820ms2020-04-09 11:11:49,927 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
如上,当日志内容出现了【Started Jetty server.】,则表示【CM Server】服务启动成功 这时候,查看系统的网络端口监听情况,你会发现,默认监听在了:7180
[root@cloudera1 ~]# netstat -tupln | grep 7180tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 12543/java[root@cloudera1 ~]#
当服务启动完成后,你再次查看MySQL的状态,会发现目标库中的表已经创建好了;而在之前,这个库是个空库;
[root@percona-mysql-01 mysql]# mysql -u scm -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2871Server version: 5.7.28-31-57-log Percona XtraDB Cluster (GPL), Release rel31, Revision ef2fa88, WSREP version 31.41, wsrep_31.41Copyright (c) 2009-2019 Percona LLC and/or its affiliatesCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || scm |+--------------------+2 rows in set (0.01 sec)mysql> use scmDatabase changedmysql> show tables;Empty set (0.00 sec)mysql>mysql> show tables;+--------------------------------+| Tables_in_scm |+--------------------------------+| AUDITS || AUTH_ROLES || AUTH_ROLES_SCOPES || CLIENT_CONFIGS || CLIENT_CONFIGS_TO_HOSTS || CLUSTERS || CLUSTERS_AUD || CLUSTER_ACTIVATED_RELEASES || CLUSTER_ACTIVATED_RELEASES_AUD || CLUSTER_MANAGED_RELEASES || CLUSTER_UNDISTRIBUTED_RELEASES || CM_PEERS || CM_VERSION || COMMANDS || COMMANDS_DETAIL || COMMAND_SCHEDULES || CONFIGS || CONFIGS_AUD || CONFIG_CONTAINERS || CREDENTIALS || DATA_CONTEXTS || DATA_CONTEXT_TO_BASE_SERVICE || DIAGNOSTICS_EVENTS || EXTERNAL_ACCOUNTS || EXTERNAL_ACCOUNTS_AUD || EXTERNAL_MAPPINGS || EXTERNAL_MAPPING_AUTH_ROLES || GLOBAL_SETTINGS || HOSTS || HOSTS_AUD || HOST_TEMPLATES || HOST_TEMPLATE_TO_ROLE_CONF_GRP || METRICS || PARCELS || PARCEL_COMPONENTS || PROCESSES || PROCESSES_DETAIL || PROCESS_ACTIVE_RELEASES || RELEASES || RELEASES_AUD || REVISIONS || ROLES || ROLES_AUD || ROLE_CONFIG_GROUPS || ROLE_CONFIG_GROUPS_AUD || ROLE_STALENESS_STATUS || SCHEMA_VERSION || SERVICES || SERVICES_AUD || SNAPSHOT_POLICIES || USERS || USER_AUTH_ROLES || USER_ROLES || USER_SETTINGS |+--------------------------------+54 rows in set (0.00 sec)mysql>
09
Cloudera Manager【CM】:集群安装
在前面的步骤完成后,你就可以通过网页浏览器查看【Cloudera Manager】了;
在我的环境中,CM的地址是:
http://192.168.72.11:7180
默认口令:admin / admin








这里就可以,配置之前设置的离线的安装介质分发路径;





等待一段时间;



其实,这个过程也可以在CM的Parcel管理界面看到更详细的状态:

回到CM的安装界面:

10
Cloudera Manager【CM】:集群设置
选择你需要安装的服务组合;

这里,我只希望安装最简单的,因此我选择自定义:
选择:HDFS + YARN

分配服务的角色:

为服务设置后端数据库:
这一步的数据库在前面的【数据库准备】阶段,已经创建了对应的空库;

只有测试成功了【Successful】才能接下来【继续】;
是否需要更改服务的配置?

如果希望保持默认,没有什么需要更改的话,直接【继续】;
然后,等待一段时间:

然后,命令执行就成功了:

最后,安装就成功了:

11
Cloudera Manager:体验刚刚部署的【CDH】
主页:

全部主机状态:

服务HDFS状态:

服务YARN状态:

12
终了
至此,Cloudera CM + CDH的部署,完成。




