企业大数据CDH管理平台搭建方案

1 基本介绍

1.1 概述

Hadoop的发行版本有很多,有华为发行版,Intel发行版,Cloudera发行版(CDH),MapR版本,以及HortonWorks版本等。所有发行版都是基于Apache Hadoop衍生出来的,产生这些版本的原因,是由于Apache Hadoop的开源协议决定的:任何人可以对其进行修改,并作为开源或商业产品发布和销售。
收费版本:
  收费版本一般都会由新的特性。国内绝大多数公司发行的版本都是收费的,例如Intel发行版本,华为发行版本等。
免费版本:
  不收费的版本主要有三个(都是国外厂商)。
Cloudera版本(Cloudera's Distribution Including Apache Hadoop)简称"CDH"。
Apache基金会hadoop
Hontonworks版本(Hortonworks Data Platform)简称"HDP"。
按照顺序代表了国内的使用率,CDH和HDP虽然是收费版本,但是他们是开源的,只是收取服务费用,严格上讲不属于收费版本。
Cloudera版本(Cloudera's Distribution Including Apache Hadoop,简称"CDH"),简单来说,Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。
Cloudera Manager可以轻松管理任何生产规模的Hadoop部署。通过直观的用户界面快速部署,配置和监控群集 - 完成滚动升级,备份和灾难恢复以及可定制警报。
企业大数据平台的建设和运营无疑是重中之重,这也正成为企业信息化建设的核心任务和目标。通过构建企业大数据平台,对企业大规模数据进行科学高效的管理、分析、挖掘、监控、可视化,为公司内部产品的策划、运营、营销、财务、决策等提供科学精确的数据支撑,提高企业运营效率、最大化释放数据价值。

1.2 Cloudera Manager 的功能

cloudera manager有四大功能:
• 管理:对集群进行管理,如添加、删除节点等操作。
• 监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
• 诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
• 集成:多组件进行整合。

1.3 架构

cloudera manager的核心是管理服务器,该服务器承载管理控制台的Web服务器和应用程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集。
企业大数据CDH管理平台搭建方案_第1张图片
Cloudera Manager Server由以下几个部分组成:
 • Agent:安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。
 • Management Service:由一组执行各种监控,警报和报告功能角色的服务。
 • Database:存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库。
 • Cloudera Repository:软件由Cloudera 管理分布存储库。
 • Clients:是用于与服务器进行交互的接口:
 • Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理。
 • API :与开发人员创建自定义的Cloudera Manager应用程序的API。

1.4 Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等

1.4.1 相关目录 

/var/log/cloudera-scm-installer : 安装日志目录。 
/var/log/* : 相关日志文件(相关服务的及CM的)。 
/usr/share/cmf/ : 程序安装目录。 
/usr/lib64/cmf/ : Agent程序代码。 
/var/lib/cloudera-scm-server-db/data : 内嵌数据库目录。 
/usr/bin/postgres : 内嵌数据库程序。 
/etc/cloudera-scm-agent/ : agent的配置目录。 
/etc/cloudera-scm-server/ : server的配置目录。 
/opt/cloudera/parcels/ : Hadoop相关服务安装目录。 
/opt/cloudera/parcel-repo/ : 下载的服务软件包数据,数据格式为parcels。 /opt/cloudera/parcel-cache/ : 下载的服务软件包缓存数据。 
/etc/hadoop/* : 客户端配置文件目录。

1.4.2 官网文档

https://www.cloudera.com/documentation.html

2 安装部署

2.1 主机规划

企业大数据CDH管理平台搭建方案_第2张图片

主机名

角色

IP地址

系统

用途

功能

配置

ptx-bigdata1

主节点

172.31.xxx.xx 

CentOS7.6

CM CMS MySQL Parcel

CM CMS MySQL NN RM JHS SHS ZK

8C/32G/500G

ptx-bigdata2

从节点

172.31.xxx.xx

CentOS7.6

Cloudera Agent

DN NM SNN SPARK HMS HS2 Oozie Hue Sqoop ZK

8C/32G/500G

ptx-bigdata3

从节点

172.31.xxx.xx

CentOS7.6

Cloudera Agent

DN NM Journalnode ZK

8C/32G/500G

ptx-bigdata4

从节点

172.31.xxx.xxx

CentOS7.6

Cloudera Agent

DN NM Journalnode

8C/32G/500G

ptx-bigdata5

从节点

172.31.xxx.xxx

CentOS7.6

Cloudera Agent

DN NM Journalnode

8C/32G/500G

注意:Journalnode和ZooKeeper保持奇数个,最少不少于 3 个节点
无论是Hadoop相关组件还是cm本身都需要使用到数据库,cm默认会使用内嵌数据库,但是这种方式并不推荐在生产环节使用 

2.2 基础环境部署

2.2.1 网络配置(所有节点)

新增用户ptxbd

#新增用户ptxbd 
useradd ptxbd 
uasswd ptxbd 
ptxbd ALL=(ALL) NOPASSWD:ALL 
ptxbd ALL=(ALL) NOPASSWD:/bin/whoami
#第一台服务器上执行 
echo "172.31.xxx.xxx ptx-bigdata1" >> /etc/hosts 
echo "172.31.xxx.xxx ptx-bigdata2" >> /etc/hosts 
echo "172.31.xxx.xxx ptx-bigdata3" >> /etc/hosts 
echo "172.31.xxx.xxx ptx-bigdata4" >> /etc/hosts 
echo "172.31.xxx.xxx ptx-bigdata5" >> /etc/hosts 
#因为所有主机的 hosts 文件都一致,为了减少重复工作使用,scp 命令拷贝到所有主机 
scp /etc/hosts [email protected]:/etc/ 
#设置hostname 
#分别进入集群中的每个主机,设置 hostname,需要注意的是 hostname 最好不好设置为大写,因为后续如果要开启 kerberos 的时候会报错! 
hostnamectl set-hostname ptx-bigdata1 
hostnamectl set-hostname ptx-bigdata2 
hostnamectl set-hostname ptx-bigdata3 
hostnamectl set-hostname ptx-bigdata4 
hostnamectl set-hostname ptx-bigdata5 
#在每台主机上输入 hostname 看输出的结果是否与主机相对应 
Hostname 
#重启服务器

2.2.2 SSH免密码登陆

#执行ssh-keygen -t rsa,三次Enter键

[ptxbd@ptx-bigdata1 ~]$  ssh-keygen -t rsa

[ptxbd@ptx-bigdata1 .ssh]$ ll

-rw-------. 1 ptxbd ptxbd 1679 Feb 26 04:18 id_rsa

-rw-r--r--. 1 ptxbd ptxbd  400 Feb 26 04:18 id_rsa.pub

-rw-r--r--. 1 ptxbd ptxbd  358 Feb 26 03:24 known_hosts

#拷贝公钥id_rsa.pub到其他节点
ssh-copy-id  ptx-bigdata2

#验证
ssh ptx-bigdata2

2.2.3 关闭防火墙和清空规则

#查看防火墙状态,注:active是绿的running表示防火墙开启 
systemctl status firewalld.service 
#关闭防火墙 
systemctl stop firewalld.service 
#开机禁用防火墙自启命令 
systemctl disable firewalld.service 
#启动防火墙 
systemctl start firewalld.service 
#防火墙随系统开启启动  
systemctl enable firewalld.service 
#重启防火墙 
firewall-cmd –reload 
#清空防火墙规则 
sudo iptables -F

2.2.4 关闭所有节点SELINUX

vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
[ptxbd@ptx-bigdata1 ~]$ sudo vi /etc/selinux/config

2.2.5 安装JDK

JDK 最好安装 1.8 的,因为 CDH6.0 以后 JDK 版本最低为 1.8
1)卸载openjdk
检查是否已经安装了jdk,  java -verison

rpm -qa|grep java
rpm –e --nodeps    xxxxxxxxx

(说明:qa:查询所有安装包     -e: 卸载   -nodeps:忽略依赖)

2)上传jdk安装包

#安装文件上传下载工具
[ptxbd@ptx-bigdata1 ~]$ sudo yum -y install lrzsz
#创建cdh6.2.0文件夹,安装包存放位置
[ptxbd@ptx-bigdata1 ~]$ mkdir cdh6.2.0
#查看上传的相关安装包
[ptxbd@ptx-bigdata1 cdh6.2.0]$ ll
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
jdk-8u211-linux-x64.tar.gz
manifest.json
mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
mysql-connector-java-5.1.47.tar.gz
#分发JDK到其他服务器上
[ptxbd@ptx-bigdata1 cdh6.2.0]$ scp jdk-8u211-linux-x64.tar.gz ptxbd@ptx-bigdata2:/opt/software/cdh6.2.0/
[ptxbd@ptx-bigdata1 cdh6.2.0]$ scp jdk-8u211-linux-x64.tar.gz ptxbd@ptx-bigdata3:/opt/software/cdh6.2.0/
[ptxbd@ptx-bigdata1 cdh6.2.0]$ scp jdk-8u211-linux-x64.tar.gz ptxbd@ptx-bigdata4:/opt/software/cdh6.2.0/
[ptxbd@ptx-bigdata1 cdh6.2.0]$ scp jdk-8u211-linux-x64.tar.gz ptxbd@ptx-bigdata5:/opt/software/cdh6.2.0/

3)解压安装包

#每个节点都创建/usr/java目录 
sudo mkdir /usr/java/ 
#解压到每个节点/usr/java/目录下 
sudo tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/java/ 
#必须修正所属用户及用户组 
sudo chown -R root:root /usr/java/jdk1.8.0_211 
drwxr-xr-x 7 root root 4096 Apr 2 2019 jdk1.8.0_211

*****提示:切记必须修正JDK所属用户及用户组 chown -R root:root /usr/java/jdk1.8.0_211
4)配置环境变量/etc/profile

sudo vi /etc/profile 
#Java配置 
export JAVA_HOME=/usr/java/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

5)刷新配置(重新加载)

source /etc/profile

6)检查是否安装成功

java -version 
which java

2.2.6 设置NTP(timedatectl)

主从 主和互联网同步时间,从节点与主节点同步
主主 每一台都和互联网同步时间
公司内部时钟服务器 

1、环境准备
1)timedatectl查看时间各种状态:

[ptxbd@ptx-bigdata2 etc]$ timedatectl
      Local time: Thu 2020-03-12 13:00:55 UTC
  Universal time: Thu 2020-03-12 13:00:55 UTC
        RTC time: Thu 2020-03-12 13:00:45
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

2)timedatectl list-timezones: 列出所有时区
3)timedatectl set-local-rtc 1 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
4)timedatectl set-timezone Asia/Shanghai 设置系统时区为上海

[ptxbd@ptx-bigdata2 ~]$ sudo timedatectl set-timezone Asia/Shanghai
[ptxbd@ptx-bigdata2 ~]$ timedatectl
      Local time: Thu 2020-03-12 21:06:37 CST
  Universal time: Thu 2020-03-12 13:06:37 UTC
        RTC time: Thu 2020-03-12 13:06:28
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

2.所有节点都需要安装 ntp,如果没有 ntp 先安装 ntp,一般集群无法连接外网,可以先完成配置本地源的操作

yum install -y ntp

3.在 cdh01修改 ntp.conf 输入 vi /etc/ntp.conf ,注释其他时间服务器,添加为本机

sudo vi /etc/ntp.conf 
#添加内容 
server 127.127.1.0 
fudge 127.127.1.0 stratum8

企业大数据CDH管理平台搭建方案_第3张图片

4.在其他节点(ptx-bigdata[2-5])修改 ntp.conf 文件 输入 vi /etc/ntp.conf 在26 行添加 server ptx-bigdata1 iburst,注释其他时间服务器

sudo vi /etc/ntp.conf

企业大数据CDH管理平台搭建方案_第4张图片

5.在所有节点启动 ntp 服务

sudo systemctl start ntpd 
sudo systemctl enable ntpd

6.验证是否成功设置开机自启动

sudo systemctl list-unit-files |grep enabled | grep ntpd

2.2.7 MySQL离线配置

MySql 版本选择、摘自官网:
参考:https://github.com/Hackeruncle/MySQL
1.解压及创建目录

#解压到/usr/local/文件夹 
sudo tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ 
#修改文件夹名称 
sudo mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql 
#创建文件夹 
sudo mkdir mysql/arch mysql/data mysql/tmp

2.创建my.cnf(见文件)

[ptxbd@ptx-bigdata1 local]# sudo vi /etc/my.cnf

[client]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4
[mysqld]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
skip-slave-start
skip-external-locking
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
query_cache_size= 32M
max_allowed_packet = 16M
myisam_sort_buffer_size=128M
tmp_table_size=32M
table_open_cache = 512
thread_cache_size = 8
wait_timeout = 86400
interactive_timeout = 86400
max_connections = 600

# Try number of CPU's*2 for thread_concurrency

#thread_concurrency = 32

#isolation level and default engine
default-storage-engine = INNODB
transaction-isolation = READ-COMMITTED
server-id  = 1739
basedir     = /usr/local/mysql
datadir     = /usr/local/mysql/data
pid-file     = /usr/local/mysql/data/hostname.pid

#open performance schema
log-warnings
sysdate-is-now

binlog_format = ROW
log_bin_trust_function_creators=1
log-error  = /usr/local/mysql/data/hostname.err
log-bin = /usr/local/mysql/arch/mysql-bin
expire_logs_days = 7
innodb_write_io_threads=16

relay-log  = /usr/local/mysql/relay_log/relay-log
relay-log-index = /usr/local/mysql/relay_log/relay-log.index
relay_log_info_file= /usr/local/mysql/relay_log/relay-log.info

log_slave_updates=1

gtid_mode=OFF

enforce_gtid_consistency=OFF

# slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

#other logs
#general_log =1
#general_log_file  = /usr/local/mysql/data/general_log.err
#slow_query_log=1
#slow_query_log_file=/usr/local/mysql/data/slow_log.err

#for replication slave
sync_binlog = 500
#for innodb options
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend

innodb_log_group_home_dir = /usr/local/mysql/arch
innodb_log_files_in_group = 4
innodb_log_file_size = 1G
innodb_log_buffer_size = 200M


#根据生产需要,调整pool size
innodb_buffer_pool_size = 2G
#innodb_additional_mem_pool_size = 50M #deprecated in 5.6
tmpdir = /usr/local/mysql/tmp

innodb_lock_wait_timeout = 1000
#innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 2
innodb_locks_unsafe_for_binlog=1

#innodb io features: add for mysql5.5.8

performance_schema
innodb_read_io_threads=4
innodb-write-io-threads=4
innodb-io-capacity=200
#purge threads change default(0) to 1 for purge
innodb_purge_threads=1
innodb_use_native_aio=on
#case-sensitive file names and separate tablespace
innodb_file_per_table = 1
lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 128M

[mysql]
no-auto-rehash
default-character-set=utf8mb4

[mysqlhotcopy]
interactive-timeout
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

3.创建用户组及用户

[ptxbd@ptx-bigdata1 local]$ sudo groupadd -g 101 dba
[ptxbd@ptx-bigdata1 local]$ sudo useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin

## 一般不需要设置mysqladmin的密码,直接从root或者LDAP用户sudo切换 #[root@hadoop39 local]# passwd mysqladmin 

4.copy 环境变量配置文件至mysqladmin用户的home目录中,为了以下步骤配置个人环境变量(###important

sudo cp /etc/skel/.* /usr/local/mysql

[caimh@cdh01 local]$ sudo cp /etc/skel/.* /usr/local/mysql

企业大数据CDH管理平台搭建方案_第5张图片

5.配置环境变量

sudo vi mysql/.bashrc 
export MYSQL_BASE=/usr/local/mysql 
export PATH=${MYSQL_BASE}/bin:$PATH

6.赋权限和用户组,切换用户mysqladmin,安装

[ptxbd@ptx-bigdata1 local]$ sudo chown mysqladmin:dba /etc/my.cnf
[ptxbd@ptx-bigdata1 local]$ sudo chmod 640 /etc/my.cnf
[ptxbd@ptx-bigdata1 local]$ sudo chown -R mysqladmin:dba /usr/local/mysql
[ptxbd@ptx-bigdata1 local]$ sudo chmod -R 755 /usr/local/mysql

7.配置服务及开机自启动

cd /usr/local/mysql/ 
#将服务文件拷贝到init.d下,并重命名为mysql 
sudo cp support-files/mysql.server /etc/rc.d/init.d/mysql 
#赋予可执行权限 
sudo chmod +x /etc/rc.d/init.d/mysql 
#删除服务 
sudo chkconfig --del mysql 
#添加服务 
sudo chkconfig --add mysql

8.安装libaio及安装mysql的初始db

[ptxbd@ptx-bigdata1 mysql]$ sudo yum -y install libaio
[ptxbd@ptx-bigdata1 mysql]$ sudo su - mysqladmin
[mysqladmin@ptx-bigdata1 ~]$ bin/mysqld \
--defaults-file=/etc/my.cnf \
--user=mysqladmin \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data/ \
--initialize

在初始化时如果加上 –initial-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中 
问题(可能多操作了几次)

解决方案:
通过/etc/my.conf找到datadir目录(/usr/local/mysql/data)
备份数据
Mv data data.bak
Rm –r data
Mkdir data
重新执行上面的命令

9.查看临时密码

[mysqladmin@ptx-bigdata1 data]$ pwd
/usr/local/mysql/data
[mysqladmin@ptx-bigdata1 data]$ cat hostname.err |grep password
2020-02-24T14:46:47.691389Z 1 [Note] A temporary password is generated for root@localhost: 2ggfs0&%oczJ

10.登录及修改用户密码

[mysqladmin@ptx-bigdata1 data]$ service mysql start
Starting MySQL.. SUCCESS!
#修改密码
[mysqladmin@ptx-bigdata1 data]$ mysql -uroot -p
mysql> alter user root@localhost identified by 'cmh123';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cmh123';
mysql> flush privileges;
#重新启动
[mysqladmin@ptx-bigdata1 data]$ service mysql restart

2.2.8 配置元数据库+用户+JDBC包

1.创建CDH元数据库 用户和amon的服务的库 用户
需要建的库有scm、amon、rman、hue、metastore、sentry、nav、navms、oozie

企业大数据CDH管理平台搭建方案_第6张图片

[ptxbd@ptx-bigdata1 mysql]$ sudo su - mysqladmin
[mysqladmin@cdh01 ~]$ mysql -uroot -pcmh123
#CM元数据库
create database cmf default character set utf8;
grant all privileges on cmf.* to 'cmf'@'%' identified by 'cmh123';
#CMS的Activity Monitor对应数据库
create database amon default character set utf8;
grant all privileges on amon.* to 'amon'@'%' identified by 'cmh123';
flush privileges;
mysql> show databases;
+--------------------+

| Database |
+--------------------+
| information_schema |
| amon |
| cmf |
| mysql |
| performance_schema |
| sys |
+--------------------+

6 rows in set (0.00 sec)
--------------------

2. 选择第一台部署amon的进程(配置mysql jdbc jar)

[ptxbd@ptx-bigdata1 ~]$ sudo mkdir -p /usr/share/java
[caimh@cdh01 CDH6.2.0]$ sudo tar -zxvf mysql-connector-java-5.1.47.tar.gz
[caimh@cdh01 mysql-connector-java-5.1.47]$ pwd
/home/caimh/CDH6.2.0/mysql-connector-java-5.1.47
[caimh@cdh01 mysql-connector-java-5.1.47]$ sudo cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

***提示:如果用到CDH,mysql-jdbc的目录统一用/usr/share/java。另外,去掉mysql-connector-java-5.1.47-bin.jar版本号,改为mysql-connector-java.jar

2.3 CM Server&Agent安装(官方rpm包)

Server:
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm 
sudo rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm --nodeps --force
第一台服务器安装完Server后,打开7180界面,不用动,继续安装其他机器Agent(包括第一台服务器) 
Agent:
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm 
sudo rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm --nodeps --force

2.3.1 安装CM Server(第一台服务器)

#安装CM Server
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm --nodeps --force
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo rpm -ivh cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm --nodeps --force
#配置/etc/cloudera-scm-server/db.properties文件
[ptxbd@ptx-bigdata1 cdh6.2.0]$ cd /etc/cloudera-scm-server/
[ptxbd@ptx-bigdata1 cloudera-scm-server]$ ll
db.properties
log4j.properties
[ptxbd@ptx-bigdata1 cloudera-scm-server]$ sudo vi db.properties
# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are valid databases. com.cloudera.cmf.db.type=mysql
# The database host
# If a non standard port is needed, use 'hostname:port'
com.cloudera.cmf.db.host=cdh01
# The database name
com.cloudera.cmf.db.name=cmf
# The database user
com.cloudera.cmf.db.user=cmf
# The database user's password
com.cloudera.cmf.db.password=cmh881290
# The db setup type
# After fresh install it is set to INIT
# and will be changed post config.
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL com.cloudera.cmf.db.setupType=EXTERNAL
#启动Server服务 --启动server服务,1~2分钟
[ptxbd@ptx-bigdata1 cloudera-scm-server]$ sudo service cloudera-scm-server start
Redirecting to /bin/systemctl start cloudera-scm-server.service

第一台服务器安装完Server后,访问:http://主机IP(hostname):7180,若可以访问(用户名、密码:admin),则安装成功,继续安装其他机器Agent(包括第一台服务器)

企业大数据CDH管理平台搭建方案_第7张图片

2.3.2 安装CM Agent

拷贝 cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm和cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm到所有 Server、Agent 节点

#远程拷贝rpm文件到其他服务器(2-5主机)
1)sudo scp cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm ptxbd@ptx-bigdata2~5:/opt/software/cdh6.2.0/
2)sudo scp cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm ptxbd@ptx-bigdata2~5:/opt/software/cdh6.2.0/
#安装Agent(所有节点,第一台主机安装Server时已经安装过daemos)
1)sudo rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm --nodeps --force
2)sudo rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm --nodeps --force
#配置Agent(第一台可以不配)
sudo vi /etc/cloudera-scm-agent/config.ini
[General]
# Hostname of the CM
server_host=ptx-bigdata1
#启动Agent(所有节点)
sudo service cloudera-scm-agent start
sudo service cloudera-scm-agent restart(重启)
#查看Agent状态
sudo service cloudera-scm-agent status

企业大数据CDH管理平台搭建方案_第8张图片

查看Agent状态

企业大数据CDH管理平台搭建方案_第9张图片

访问:http://主机IP(hostname):7180,若可以访问(用户名、密码:admin),则安装成功。
Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。

2.3.3 配置Parcel

1.配置本地源

1)Manager 节点 
mkdir -p /opt/cloudera/parcel-repo 
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo 
将下载好的文件( 
CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel、 
CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha、 
manifest.json)拷贝到该目录下(mv) 
2)Agent 节点(所有) 
创建目录/opt/cloudera/parcels,执行: 
mkdir -p /opt/cloudera/parcels 
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels 
3)重启Server/Agent 
sudo service cloudera-scm-server restart 
sudo service cloudera-scm-agent restart(重启)

2.配置http源(建议,默认80端口,有的云服务80端口是关闭的,需要备案,如AWS)

#安装 HTTP 服务与 REPO(节点1)
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo yum install httpd
#创建文件夹,存放cdh6的parcel包裹文件
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo mkdir /var/www/html/cdh6_parcel
#移动parcel文件到/var/www/html/cdh6_parcel目录
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel /var/www/html/cdh6_parcel/
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha /var/www/html/cdh6_parcel/
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo mv manifest.json /var/www/html/cdh6_parcel/
#启动服务
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo systemctl start httpd  --开启服务
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo systemctl enable httpd  --开机自启动
#扩展
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo systemctl stop httpd  --停止服务
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo systemctl restart httpd  --重启服务
[ptxbd@ptx-bigdata1 cdh6.2.0]$ sudo systemctl status httpd  --查看服务状态

访问ptx-bigdata1/cdh6_parcel

企业大数据CDH管理平台搭建方案_第10张图片

问题:无法访问
Httpd默认端口是80
国内AWS使用S3或者ec2的80\8080\443端口都需要ICP备案,否则访问不了
方案1:备案80端口
方案2:修改httpd默认80端口

2.4 CDH集群安装

2.4.1 CM集群配置

参考:https://blog.csdn.net/qq_40127822/article/details/84441869

1.WELCOME

企业大数据CDH管理平台搭建方案_第11张图片

2.Accept License

企业大数据CDH管理平台搭建方案_第12张图片

3.Select Edition

企业大数据CDH管理平台搭建方案_第13张图片

 

4.Welcome (Add Cluster - Installation)
企业大数据CDH管理平台搭建方案_第14张图片

5.Specify Hosts
主机是自己规划安装agent的主机

企业大数据CDH管理平台搭建方案_第15张图片

6.Select Repository

企业大数据CDH管理平台搭建方案_第16张图片

企业大数据CDH管理平台搭建方案_第17张图片

删除远程parcel存储库,使用parcel本地源

7.Install Parcels

企业大数据CDH管理平台搭建方案_第18张图片

8.Inspect Hosts

企业大数据CDH管理平台搭建方案_第19张图片

***问题(3个问题)
问题1:减少集群使用交换内存
swappiness 设置值的区间在 0~100 之间,swap 即交换空间,作用类似于 Windows 中的虚拟内存,也就是当物理内存不足时,将硬盘上的 swap 分区当做内存来使用。但是,由于磁盘的读写速率与内存相比差太多,一旦发生大量交换,系统延迟就会增加,甚至会造成服务长期不可用,这对于大数据集群而言是致命的。vm.swappiness 参数用于控制内核对交换空间的使用积极性,默认是 60。值越高,就代表内核越多地使用交换空间。对于内存较大的 CDH 集群,我们一般将这个值设为 0 或 1。0 表示只有当可用物理内存小于最小阈值 vm.min_free_kbytes 时才使用交换空间,1 则表示最低限度地使用交换空间。
1、所有主机运行以下三条命令
sysctl -w vm.swappiness=0
echo 'vm.swappiness=0' >> /etc/sysctl.conf
sysctl -p
问题2:大页面
1、所有主机输入以下命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
2、所有主机的/etc/rc.local 中也需要加入这两条命令
vi /etc/rc.local 
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 
问题3:暂时忽略

2.4.2 大数据组件安装

2.4.2.1安装HDFS&YARN

1.Select Services

企业大数据CDH管理平台搭建方案_第20张图片

先自定义安装HDFS和Yarn组件(先以通为主)

企业大数据CDH管理平台搭建方案_第21张图片

2.自定义分配角色

企业大数据CDH管理平台搭建方案_第22张图片

企业大数据CDH管理平台搭建方案_第23张图片

3.数据库设置

企业大数据CDH管理平台搭建方案_第24张图片

4.审核更改

企业大数据CDH管理平台搭建方案_第25张图片

5.命令详细信息

企业大数据CDH管理平台搭建方案_第26张图片

*****内网放开所有端口

6.汇总

企业大数据CDH管理平台搭建方案_第27张图片

企业大数据CDH管理平台搭建方案_第28张图片

调整后,一切正常,变绿了

企业大数据CDH管理平台搭建方案_第29张图片

2.4.2.2安装Zookeeper服务

1.添加服务

企业大数据CDH管理平台搭建方案_第30张图片

2.4.2.2安装Zookeeper服务

1.添加服务

企业大数据CDH管理平台搭建方案_第31张图片

  1. 选择zookeeper服务

企业大数据CDH管理平台搭建方案_第32张图片

2.自定义角色分配

企业大数据CDH管理平台搭建方案_第33张图片

企业大数据CDH管理平台搭建方案_第34张图片

4.审核更改

企业大数据CDH管理平台搭建方案_第35张图片

3.命令行详细信息

企业大数据CDH管理平台搭建方案_第36张图片

4.汇总

企业大数据CDH管理平台搭建方案_第37张图片

2.4.2.2安装Hive服务

参考:http://www.cloudera.com/documentation/manager/5-0-x/Cloudera-Manager-Managing-Clusters/cm5mc_hive_service.html#xd_583c10bfdbd326ba-204beb9-13ef1573a9e--7ff6__section_gmq_nq5_hl

企业大数据CDH管理平台搭建方案_第38张图片

数据库配置

企业大数据CDH管理平台搭建方案_第39张图片

报错1:JDBC driver cannot be found. Unable to find the JDBC database jar on host : ptx-bigdata2
解决方案

#ptx-bigdata2主机创建目录/usr/share/java,并修改属主
[ptxbd@ptx-bigdata2 share]$ sudo mkdir java
[ptxbd@ptx-bigdata2 share]$ sudo chown ptxbd:ptxbd java/
[ptxbd@ptx-bigdata2 java]$ pwd
/usr/share/java
#scp拷贝(从主机1拷贝)
[ptxbd@ptx-bigdata1 mysql-connector-java-5.1.47]$ sudo scp mysql-connector-java-5.1.47-bin.jar ptxbd@ptx-bigdata2:/usr/share/java/mysql-connector-java.jar

重新连接成功

企业大数据CDH管理平台搭建方案_第40张图片

命令详细信息

企业大数据CDH管理平台搭建方案_第41张图片

汇总

企业大数据CDH管理平台搭建方案_第42张图片

2.4.2.3 安装Oozie服务
1.选择安装服务

企业大数据CDH管理平台搭建方案_第43张图片

企业大数据CDH管理平台搭建方案_第44张图片

2.自定义角色分配

企业大数据CDH管理平台搭建方案_第45张图片

3.数据库设置

企业大数据CDH管理平台搭建方案_第46张图片

4.审核修改(默认)

企业大数据CDH管理平台搭建方案_第47张图片

5.命令详细信息

企业大数据CDH管理平台搭建方案_第48张图片

6.汇总

企业大数据CDH管理平台搭建方案_第49张图片

2.4.2.4安装Sqoop

参考:https://blog.csdn.net/zimiao552147572/article/details/88322724
企业大数据CDH管理平台搭建方案_第50张图片

2.4.2.5 安装Spark

企业大数据CDH管理平台搭建方案_第51张图片

2.4.2.6 Hue安装

企业大数据CDH管理平台搭建方案_第52张图片

数据库选择

企业大数据CDH管理平台搭建方案_第53张图片

安装过程中出现问题,见问题3

  1. 命令详细信息
  2. 汇总
  3. 问题

问题参考:https://blog.csdn.net/weixin_43840194/article/details/89555023 
HUE =Hadoop User Experience(hadoop用户体验),开源的Apache Hadoop UI系统。基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据。
问题:
启动hue web ui报错:Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found (code THRIFTTRANSPORT): TTransportException('Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found',)
解决方案:参考:https://blog.csdn.net/redhat1986/article/details/89953073

1.在hue所在服务器执行

yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi

或者

sudo yum install apache-maven ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel python-devel sqlite-devel gmp-devel

2.在CDH中重启hue

2.4.2.7 安装Oozie

oozie本质就是一个作业协调工具(底层原理是通过将xml语言转换成mapreduce程序来做,但只是在集中map端做处理,避免shuffle的过程。)
Oozie的工作流必须是一个有向无环图,实际上Oozie就相当于Hadoop的一个客户端,当用户需要执行多个关联的MR任务时,只需要将MR执行顺序写入workflow.xml,然后使用Oozie提交本次任务,Oozie会托管此任务流。
参考:
https://blog.csdn.net/TNTZS666/article/details/81915820?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2.4.3 问题

问题1:
Hive 未配置为使用 Spark 服务。如果将 Hive 作业提交到 Spark 执行引擎,这些作业不会正确运行。为确保 Hive on Spark 作业正确运行,请配置 Spark On YARN 服务属性

企业大数据CDH管理平台搭建方案_第54张图片

解决方案:点击Spark On YARN Service,选择hive运行引擎Spark-2
问题2:
Port conflict detected: 18088 (History Server WebUI Port) is also used by: History Server (ptx-bigdata1). 

企业大数据CDH管理平台搭建方案_第55张图片

原因是CM安装了2个版本的Spark/Spark-2,服务端口冲突。
解决方案修改了低版本Spark的端口号

企业大数据CDH管理平台搭建方案_第56张图片

问题3:安装hue,数据库连接报错Unexpected error. Unable to verify database connection

1.查看日志/var/log/cloudera-scm-server/ cloudera-scm-server.log报错是:ImportError: libxslt.so.1: cannot open shared object file: No such file or directory

原因分析:是centos缺少库文件,执行如下命令即可
解决方案:在安装hue的服务器上执行命令
yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejsonsqlite-devel

问题4:HUE Load Balancer 启动失败

企业大数据CDH管理平台搭建方案_第57张图片

原因:日志显示没有安装httpd服务。
解决方案:安装httpd服务,安装完成后记得查看是否启动
yum -y install mod_ssl
yum -y install httpd
参考:https://blog.csdn.net/zhangshenghang/article/details/82705553

3 内存调优(后续)

参考:https://blog.csdn.net/adshiye/article/details/78840040?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

你可能感兴趣的:(大数据,CM,CDH6,企业CDH大数据平台)