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服务器和应用程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集。

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 官网文档

Cloudera Product Documentation

2 安装部署

2.1 主机规划

主机名

角色

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 root@192.168.159.10:/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]$ timedatectlLocal time: Thu 2020-03-12 13:00:55 UTCUniversal time: Thu 2020-03-12 13:00:55 UTCRTC time: Thu 2020-03-12 13:00:45Time zone: UTC (UTC, +0000)NTP enabled: yes
NTP synchronized: yesRTC in local TZ: noDST 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 ~]$ timedatectlLocal time: Thu 2020-03-12 21:06:37 CSTUniversal time: Thu 2020-03-12 13:06:37 UTCRTC time: Thu 2020-03-12 13:06:28Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
NTP synchronized: yesRTC in local TZ: noDST 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

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

sudo vi /etc/ntp.conf

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 版本选择、摘自官网:
参考:GitHub - Hackeruncle/MySQL: MySQL Product Maintenance
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-nowbinlog_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=16relay-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.infolog_slave_updates=1gtid_mode=OFFenforce_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:autoextendinnodb_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/tmpinnodb_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.8performance_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

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

[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(包括第一台服务器)

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

查看Agent状态

访问: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

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

2.4 CDH集群安装

2.4.1 CM集群配置

参考:CDH6从0到1搭建_qq_40127822的博客-CSDN博客_cdh6搭建

1.WELCOME

2.Accept License

3.Select Edition

4.Welcome (Add Cluster - Installation)

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

6.Select Repository

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

7.Install Parcels

8.Inspect Hosts

***问题(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

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

2.自定义分配角色

3.数据库设置

4.审核更改

5.命令详细信息

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

6.汇总

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

2.4.2.2安装Zookeeper服务

1.添加服务

2.4.2.2安装Zookeeper服务

1.添加服务

  1. 选择zookeeper服务

2.自定义角色分配

4.审核更改

3.命令行详细信息

4.汇总

2.4.2.2安装Hive服务

参考:The Hive Service

数据库配置

报错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

重新连接成功

命令详细信息

汇总

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

2.自定义角色分配

3.数据库设置

4.审核修改(默认)

5.命令详细信息

6.汇总

2.4.2.4安装Sqoop

参考:CDH 安装 sqoop1_あずにゃん梓喵的博客-CSDN博客

2.4.2.5 安装Spark

2.4.2.6 Hue安装

数据库选择

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

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

问题参考:CDH添加Hue服务时遇到的坑_Tinson写字的地方-CSDN博客 
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',)
解决方案:参考:CDH-hue : Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available_李现伟的博客-CSDN博客

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会托管此任务流。
参考:
什么是Oozie——大数据任务调度框架_TNTZS666的博客-CSDN博客_oozie怎么读

2.4.3 问题

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

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

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

问题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 启动失败

原因:日志显示没有安装httpd服务。
解决方案:安装httpd服务,安装完成后记得查看是否启动
yum -y install mod_ssl
yum -y install httpd
参考:HUE Load Balancer 启动失败_jast-CSDN博客

3 内存调优(后续)

参考:cdh内存分配参考文档_adshiye的博客-CSDN博客_cdh内存分配

企业大数据CDH管理平台搭建方案相关推荐

  1. 智慧交通大数据可视化管理平台建设方案

    "智慧交通大数据可视化与虚拟仿真突发事件应对管理决策服务平台"是一个针对交通管控单位的综合型辅助管理决策服务平台和三维仿真突发事件应对系统,系统以实际的交通设备和运输能力分布为基础 ...

  2. 145页6万字政务大数据交换共享平台建设方案

    第一章 需求分析和项目建设的必要性 ...........................................4 1.1 项目建设目标.内容........................ ...

  3. 大快搜索城市运河大数据政务管理平台案例解读

    2019独角兽企业重金招聘Python工程师标准>>> 大快搜索城市运河大数据政务管理平台案例解读 大数据在政务当中的应用对于提高问题解决的效率可谓大有帮助,但政务大数据平台的应用开 ...

  4. 14万字数字政府大数据治理平台及大数据中心资源平台建设方案

    本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除. 部分资料内容: 1.1 数据治理子平台建设 在本次项目中,我们将通过大数据治理子平台的建设,提供数据标准管理.元数据管理.数据质量管理 ...

  5. 705页PPT|智慧金融大数据可视化展示平台建设方案(附PDF下载)

    下载方式 扫描以下二维码关注公众号 转发朋友圈截图后台回复666或后台回复"资料下载"下载所有资料 推荐阅读: 世界的真实格局分析,地球人类社会底层运行原理 不是你需要中台,而是一 ...

  6. 深度解析大数据可视化管理平台的监控功能

    在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能.管理功能已经给大家列举了一些做了说明,今天就DKM平台的监控功能 ...

  7. 31页大数据治理管理平台解决方案合集

    以下为部分内容,文档获取方式见文末 背景与需求分析随着各地正在逐渐成立大数据中心,并响应职责与市大数据中心对应,来推进各区公共数据的统采集.归集.整合.共享.开放和应用,建设各区数据资产,改善和解决数 ...

  8. 应急管理指挥中心大数据信息化管控平台建设方案

    [版权声明]本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用. [侵删致歉]如有侵权请联系小编,将在收到信息后第一时间进行删除! 完整资料领取见文末,部分资料内容: 篇幅有限,无法完全展示 ...

  9. 应急管理指挥中心大数据信息化管控平台建设方案(ppt可编辑)

    本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 篇幅有限,无法完全展示,喜欢资料可转发+评论,私信了解更多信息.

最新文章

  1. MySQL多实例学习笔记
  2. @value 静态变量_Linux运维工程师从基础到进阶:Shell变量知识梳理
  3. wxWidgets:wxDateTime类用法
  4. js写的程序如何上线到linux,将 Node.js 应用发布到 Linux 应用服务 - Visual Studio | Microsoft Docs...
  5. 第 7 章 使用filter过滤请求
  6. python批量删除数据库记录_GitHub - TracyMcgrady6/pymsql_Operation: Python3操作mysql数据库,实现增、批量增、删、改、查...
  7. [知识竞赛策划方案][图]何用PPT制作知识竞赛所需要的题库?作为一个普通的单位,由于不具备电视台专用的比赛平台,如果要搞一场极致专业的知识竞赛?同时花钱最少?
  8. 企业信息安全管理制度
  9. 3D编辑器-Web在线编辑基于WebGL/Threejs技术
  10. 结构体习题:有5个职工,每个职工的数据包括:职工号、姓名、工资,编写程序要求从键盘上输入职工们的数据,输出高于平均工资的职工信息及高于平均工资的职工人数。——[C语言]入门基础编程 1092
  11. 机工士姆斯塔迪奥分数 20作者 DAI, Longao单位 杭州百腾教育科技有限公司
  12. 开始做一个简单的记账工具
  13. 播放器实战08 打开AVCODEC
  14. 换行标签<br>和水平线标签<hr>
  15. (附源码)spring boot校园管理系统 毕业设计 021104
  16. 情侣积分微信小程序零基础开发教程(附代码及开发指南)
  17. 计算机生物学专业大学排名,2021中国生物信息学专业大学排名 最好的高校排行榜...
  18. win10连接不上wifi、经常断连问题(高质量修复指南)
  19. Out of range value for column 'phon' at row 1
  20. pdf怎么合并在一起?软件操作更高效

热门文章

  1. 启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ...
  2. Segment Anything Model (SAM)——卷起来了,那个号称分割一切的CV大模型他来了
  3. 实现程序补丁_在家办公环境中的补丁程序管理
  4. STL系列_istream_iterator和ostream_iterator
  5. python基础 03
  6. 使用摩客原型托管发布原型的五大理由
  7. java私活_程序员接私活,怎样防止做完不给钱?
  8. 很简单的左侧随页面滚动下滑的漂浮图片代码
  9. 清华即将颁发特等奖学金 15位“神仙”打架看呆网友
  10. c++的未来前景估测