当前位置:   article > 正文

大数据平台 CDH6.2.1 搭建_cdh大数据平台

cdh大数据平台

一:关于CDH6.2.1 的介绍

1.1 概述

该文档主要记录大数据平台的搭建CDH版的部署过程,以供后续部署环境提供技术参考。

1.2 主流大数据部署方法

目前主流的hadoop平台部署方法主要有以下三种:

  • Apache hadoop
  • CDH (Cloudera’s Distribution Including Apache Hadoop)
  • HDP (Hortonworks Data Platform)

1.3 CDH基本优势

1、CDH比apache在兼容性、安全性、稳定性上有增强;

2、CDH比apache更新速度快;

3、CDH支持kerberos安全认证;

4、CDH文档清晰;

5、CDH支持yum/apt包;

6、CDH可以联网安装、升级比较方便(网上建议下载安装,联网安装有坑);

7、CDH自动下载依赖软件包;

8、CDH自动匹配hadoop生态系统中的包,不需要自己寻找hbase、hive等软件包,也不用考虑兼容性问题,CDH自动匹配相应版本;

9、CDH自动创建相关的目录,并自动创建hdfs、mapred用户;

1.4 部署方法的比较

手工部署: 需要配置太多参数,配置繁琐,建议初学者部署方式

工具部署: 比如Ambari和clouder Manger当前两大最主流的集群管理工具,前者是Hortonworks公司,后者是Cloudera公司)使用工具来,可以说是一键操作,难点都在工具Ambari或Cloudera Manger本身部署上。

两种部署方式的优缺点如下表1所示:

表1-1:手工方式和工具部署方式比较

内容手工方式工具方式
难易度难,几乎不可能成功简单 易行
兼容性自己解决兼容性的问题自动安装兼容组件
组件支持数支持全部组件支持常用组件
优点对组件和集群管理深刻简单 容易 可行
缺点太复杂,不可能成功屏蔽太多的细节,妨碍对组件的理解

CDH和DHP比较如下表1-2所示

表1-2:CDH和DHP部署方式比较,如表2所示:

工具名所属机构开源性社区易用及稳定性占有率
Cloudera MangerCloudera商用不支持易用,稳定
AmbariHortonwork开源支持较易用,较稳定较高

本节主要描述部署CDH系统环境配置及前期准备工作

Cloudera在前天12月19日,对外宣布正式发布Cloudera Enterprise 6.1包含大数据生态版本如下:
1.组件版本:Kafka 2.0, Spark 2.4, HBase 2.1.1, Accumulo 1.9.2, SOLR 7.4
2.CDH免费版限制100个节点内
3.HDFS的纠删码完全支持,包括Hive,Navigator(auditing),BDR,MR,Spark
4.对象存储支持:On-prem (Ceph), Cloud (ADLS gen 2)
5.Impala的多个distinct语句支持
6.Sqoop的HiveServer2与导入Parquet文件支持
7.OpenJDK支持
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

image_1d3o63jmt12s6vo1le2crr1ut816.png-136.3kB

二:系统环境初始化

CDH 部署基本要求

  • 机器数:3台
  • 内存:最少2GB(官方建议8GB)
  • 磁盘:100G

2.1 系统环境介绍

软件版本选择

类目命令版本下载地址
操作系统cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)使用阿里云镜像下载
Mysql数据库select version()mysql-5.7.26-1.el7.x86_64.rpm-bundle.taryum源安装
JDKjava -versionjdk-8u162-linux-x64.rpmOracle 官网下载
Cloudera ManagerCloudera Manager 6.0.1官方仓库
CDHCDH目前支持100台免费支持CDH 6.2.1使用parcels安装
核心cat /proc/cpuinfo | grep “cpu cores” |uniq
内存大小cat /proc/meminfo

首先准备三台虚拟机,虚拟机ip地址可以ping通。

ip域名核心存储内存大小角色
192.168.8.110cdh1830G8Gcm-server/agent /jdk/mysql
192.168.8.111cdh2410G4Gagent /jdk
192.168.8.112cdh3410G4Gagent /jdk

2.2 配置网络

cat > /etc/sysconfig/network-scripts/ifcfg-ens33<<EOF
TYPE="Ethernet"
BOOTPROTO="static"
PROXY_METHOD="none"
DEFROUTE="yes"
BROWSER_ONLY="no"
ONBOOT="yes"
PEERDNS="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
UUID="2a657b0d-e842-411e-9933-d99717dcc361"
DEVICE="ens33"
NAME="ens33"
DNS1="114.114.114.114"
DNS2="8.8.8.8"
IPADDR="192.168.8.110"
GATEWAY="192.168.8.2"
NETMASK="255.255.255.0"
EOF

sed -i 's/110/111/' /etc/sysconfig/network-scripts/ifcfg-ens33 &> /dev/null

systemctl restart network
yum update -y
yum search ifconfig
yum install net-tools
yum -y install vim
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

2.3 修改主机名

保证之间可以通过openssh协议传输脚本进行管理
#分别修改主机名
hostnamectl set-hostname cdh1
hostnamectl set-hostname cdh2
hostnamectl set-hostname cdh3

[root@localhost ~]# hostnamectl set-hostname cdh3
[root@localhost ~]# su
[root@cdh3 ~]# hostname
cdh3

#在三台主机上都执行
[root@localhost ~]# cat  >> /etc/hosts  << EOF
192.168.8.110 cdh1.example.com   cdh1
192.168.8.111 cdh2.example.com   cdh2
192.168.8.112 cdh3.example.com   cdh3
EOF

#将主机印射发送给其他节点
[root@localhost ~]# for i in cdh{2..3}; do scp /etc/hosts root@$i:/etc/hosts ; done
hosts                                                       100%  321   184.7KB/s   00:00
hosts                                                       100%  321   172.3KB/s   00:00
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

2.4 安装ansible

2.4.1 CDH_master安装ansible

在master节点在线安装ansible

cdh1 192.168.8.110 Centos7.9 主控机
cdh2 192.168.8.111 Centos7.9 受控机
cdh3 192.168.8.112 Centos7.9 受控机

yum -y install epel-release 	#从epel源安装高版本 ansible
yum list | grep ansible 		#查看可用ansible包版本
yum -y install ansible 			#安装ansible
ansible --version 				#查看Ansible版本
  • 1
  • 2
  • 3
  • 4

离线安装

cd /opt/cdh/ansible/
rpm -ivh libyaml-0.1.4-11.el7_0.x86_64.rpm
rpm -ivh python2-cryptography-1.7.2-2.el7.x86_64.rpm
rpm -ivh python2-httplib2-0.18.1-3.el7.noarch.rpm
rpm -ivh python2-jmespath-0.9.4-2.el7.noarch.rpm
rpm -ivh python2-pyasn1-0.1.9-7.el7.noarch.rpm
rpm -ivh python-babel-0.9.6-8.el7.noarch.rpm
rpm -ivh python-backports-1.0-8.el7.x86_64.rpm
rpm -ivh python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
rpm -ivh python-cffi-1.6.0-5.el7.x86_64.rpm
rpm -ivh python-enum34-1.0.4-1.el7.noarch.rpm
rpm -ivh python-idna-2.4-1.el7.noarch.rpm
rpm -ivh python-paramiko-2.1.1-9.el7.noarch.rpm
rpm -ivh python-ipaddress-1.0.16-2.el7.noarch.rpm
rpm -ivh python-jinja2-2.7.2-4.el7.noarch.rpm
rpm -ivh python-markupsafe-0.11-10.el7.x86_64.rpm
rpm -ivh python-ply-3.4-11.el7.noarch.rpm
rpm -ivh python-pycparser-2.14-1.el7.noarch.rpm
rpm -ivh python-setuptools-0.9.8-7.el7.noarch.rpm
rpm -ivh PyYAML-3.10-11.el7.x86_64.rpm
rpm -ivh sshpass-1.06-2.el7.x86_64.rpm
rpm -ivh ansible-2.9.10-1.el7.noarch.rpm
ansible --versions
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
2.4.2 设置密钥认证
#master节点做root用户无密钥认证
[root@cdh1 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[root@cdh1 ~]# for i in {0,1,2}; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.8.11$i ; done

或者
[root@cdh1 ~]# scp id_rsa.pub root@192.168.8.111:/root/.ssh/authorized_keys
 将所有的公钥导入authorized_keys  分发到 所有的 机器的.ssh/ 下面
 然后测试
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
2.4.3 添加被管控主机ip
#/etc/ansible/ 下有两个文件ansible.cfg、hosts,一个文件夹roles
[root@cdh1 ~]# ls /etc/ansible/
ansible.cfg  hosts  roles
//添加 被管控主机ip
[root@cdh1 ~]# cat >> /etc/ansible/hosts << EOF
[cdhnode]
192.168.8.[110:112]
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
2.4.4 测试
[root@cdh1 ~]# ansible all --list		#查看所有主机列表
  hosts (3):
    192.168.8.110
    192.168.8.111
    192.168.8.112

[root@cdh1 ~]# ansible "cdhnode" -m ping		#尝试访问"node"组下所有ip
192.168.8.111 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
192.168.8.112 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
192.168.8.110 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[root@cdh1 ~]#

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

2.5 时间同步

[root@cdh1 ~]# ansible cdhnode -m shell -a 'yum install ntpdate -y'
[root@cdh1 ~]# ansible cdhnode -m shell -a 'ntpdate cn.ntp.org.cn'
[root@cdh1 ~]# ansible cdhnode -m shell -a 'date -s "2020 09:27:00" && hwclock --systohc'
[root@cdh1 ~]# ansible cdhnode -m shell -a 'date "+%Y-%m-%d %H:%M:%S"'
[root@cdh1 ~]# ansible cdhnode -m shell -a 'cat /etc/hosts'
#如果不一致将主机印射发送给其他节点
[root@cdh1 ~]# for i in cdh{2..3}; do scp /etc/hosts root@$i:/etc/hosts ; done
hosts                           100%  272   162.4KB/s   00:00
hosts                           100%  272   165.3KB/s   00:00
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
# 操作NTP常用指令
启动指令:service ntpd start
重启指令:service ntpd restart
停止指令:service ntpd stop
开机自启动指令:systemctl enable ntpd.service
查看服务状态指令:systemctl status ntpd.service

#查看ntp服务
(1)查看当前节点同步的时间服务器。
查看指令:ntpq -p

(2)查看节点与时间同步服务器的偏差时间
查看指令:ntpdc -c loopinfo

(3)查看ntp状态
查看指令:ntpstat

# 修改时区为本地时区
修改指令:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
2.5.1 集群内各节点下载ntp软件
yum install ntp
  • 1
2.5.2 ntpd服务端配置ntp的信息

如果已经配置ntp服务器则不用配置

下面主要是配置内网的NPTD服务器(192.168.1.135), NTPD服务配置核心/etc/ntp.conf文件,配置好了就OK。需要修改的地方都备注了,一共4处,其他的是默认。

# For more information about this file, see the man pages
 
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
 
 
 
driftfile /var/lib/ntp/drift
 
 
 
# Permit time synchronization with our time source, but do not
 
# permit the source to query or modify the service on this system.
 
restrict default kod nomodify notrap nopeer noquery
 
restrict -6 default kod nomodify notrap nopeer noquery
 
 
 
# Permit all access over the loopback interface.  This could
 
# be tightened as well, but to do so would effect some of
 
# the administrative functions.
 
restrict 127.0.0.1
 
restrict -6 ::1
 
 
 
# Hosts on local network are less restricted.
 
# 01修改开始---->允许内网其他机器同步时间
 
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 01修改结束---->允许内网其他机器同步时间
 
 
 
# Use public servers from the pool.ntp.org project.
 
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
 
# 02修改开始----->中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
 
server 210.72.145.44 perfer   # 中国国家受时中心
 
server 202.112.10.36             # 1.cn.pool.ntp.org
 
server 59.124.196.83             # 0.asia.pool.ntp.org
# 02修改结束----->中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
 
 
 
#broadcast 192.168.1.255 autokey        # broadcast server
 
#broadcastclient                        # broadcast client
 
#broadcast 224.0.1.1 autokey            # multicast server
 
#multicastclient 224.0.1.1              # multicast client
 
#manycastserver 239.255.254.254         # manycast server
 
#manycastclient 239.255.254.254 autokey # manycast client
 
 
 
# allow update time by the upper server 
 
# 03修改开始---->允许上层时间服务器主动修改本机时间
 
restrict 210.72.145.44 nomodify notrap noquery
 
restrict 202.112.10.36 nomodify notrap noquery
 
restrict 59.124.196.83 nomodify notrap noquery
# 03修改结束---->允许上层时间服务器主动修改本机时间
 
 
 
# Undisciplined Local Clock. This is a fake driver intended for backup
 
# and when no outside source of synchronized time is available. 
 
# 04修改开始----->外部时间服务器不可用时,以本地时间作为时间服务
 
server  127.127.1.0     # local clock
 
fudge   127.127.1.0 stratum 10
# 04修改结束----->外部时间服务器不可用时,以本地时间作为时间服务
 
 
 
# Enable public key cryptography.
 
#crypto
 
 
 
includefile /etc/ntp/crypto/pw
 
 
 
# Key file containing the keys and key identifiers used when operating
 
# with symmetric key cryptography. 
 
keys /etc/ntp/keys
 
 
 
# Specify the key identifiers which are trusted.
 
#trustedkey 4 8 42
 
 
 
# Specify the key identifier to use with the ntpdc utility.
 
#requestkey 8
 
 
 
# Specify the key identifier to use with the ntpq utility.
 
#controlkey 8
 
 
 
# Enable writing of statistics records.
 
#statistics clockstats cryptostats loopstats peerstats

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
2.5.3 服务端通过ntpdate手动同步一次时间:
ntpdate -u 202.112.10.36
  • 1
2.5.4 服务端设置ntpd开机自启:
 chkconfig ntpd on
  • 1
2.5.5 服务端通过ntpd自动同步时间:
service ntpd start
  • 1
2.5.6 其它节点(nptd客户端)配置ntp信息:

在nptd客户端上配置/etc/ntp.conf文件,信息如下,需要修改的地方有3处,备注了,其它默认:

driftfile /var/lib/ntp/drift
 
restrict 127.0.0.1
 
restrict -6 ::1
 
# 01修改开始----->配置时间服务器为本地的时间服务器
 
server 192.168.1.135
# 01修改结束----->配置时间服务器为本地的时间服务器
 
 
# 02修改开始----->
restrict 192.168.1.135 nomodify notrap noquery
# 02修改结束----->
 
# 03修改开始------>
server  127.127.1.0     # local clock
 
fudge   127.127.1.0 stratum 10
# 03修改结束------->
 
includefile /etc/ntp/crypto/pw
 
keys /etc/ntp/keys
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

手动执行nptdate命令,第一次与ntpd服务端手动同步时间:

 ntpdate -u 192.168.0.135
  • 1

如果执行后提示:no server suitable for synchronization found

那么就执行以下命令,然后重新执行上面同步时间命令:

ntpdate -d 192.168.0.135
  • 1

客户端启动ntpd服务;

设置ntpd服务为开机自启;

将一个客户端中的/etc/ntp.conf文件复制到集群其它节点的客户端上,分别手动同步时间,启动ntpd服务即可;

2.6 关闭防火墙

ansible cdhnode -m shell -a 'systemctl is-enabled firewalld.service'

所有节点都要配置:
yum install -y firewall* iptable* 

(1) 关闭firewalld

systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

# firewall-cmd --query-port=3306/tcp		#查看3306端口是否开放
# firewall-cmd --permanent --add-port=3306/tcp	#开放3306端口
# firewall-cmd --list-all	#查看目前防火墙

(2) 关闭iptables 
iptables -F
systemctl stop iptables.service 
systemctl disable iptables.service 

(3) 禁用 selinux 
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  
setenforce 0
getenforce 0
sestatus

重启机器
reboot
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.7 安装Java

2.7.1 rpm安装Java
#上传rpm包到/tmp目录下
ansible cdhnode -m copy -a 'src=/root/jdk-8u241-linux-x64.rpm dest=/root/ backup=no'
#所有节点都进行安装
ansible cdhnode -m shell -a 'rpm -ivh /root/jdk-8u241-linux-x64.rpm'
ansible cdhnode -m shell -a 'java -version'
-------------------------------------------------
rpm -qa | grep java
rpm -e –nodeps java-x.x.x-gcj-compat-x.x.x.x-xxjpp.xxx	#卸载
# yum search java | grep -i --color JDK yum install -y java-1.8.0-openjdk.x86_64
rpm -ivh jdk-8u241-linux-x64.rpm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
2.7.2 源码安装Java
wget  http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
mkdir /usr/local/java/
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java/
rpm –qa | grep java 
rpm –e –nodes java-version #卸载系统自带的jdk

#所有节点都安装

cat >> /etc/profile << EOF
# set java environment
JAVA_HOME=/usr/java/jdk1.8.0_181
JRE_HOME=/usr/java/jdk1.8.0_181/jre
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"
EOF

source /etc/profile #生效
ln -s /usr/local/java/bin/java /usr/bin/java
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2.8 安装MySQL

2.8.1 rpm安装MySQL
# 卸载系统安装的 mysql 或 mariadb 依赖
rpm -qa | grep mysql
rpm -qa | grep mariadb
rpm -e --nodeps xxx

# 1、下载官方安装包
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
官方链接:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

# 2、在/usr/local目录下创建mysql文件夹
mkdir /usr/local/mysql

3、上传mysql安装包,这里可以采用FTP进行上传。
#解压 tar 文件
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 

[root@cdh1 ~]# ls
anaconda-ks.cfg
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-5.7.26-1.el7.x86_64.rpm
mysql-community-common-5.7.26-1.el7.x86_64.rpm
mysql-community-devel-5.7.26-1.el7.x86_64.rpm
mysql-community-embedded-5.7.26-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.26-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.26-1.el7.x86_64.rpm
mysql-community-libs-5.7.26-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
mysql-community-server-5.7.26-1.el7.x86_64.rpm
mysql-community-test-5.7.26-1.el7.x86_64.rpm

#安装 mysql 组件,顺序如下:
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm 
---------------------------------------------------------------

#在安装 mysql-community-server 的时候可能出现没有依赖包的
问题,可安装以下依赖包:
yum -y install libaio
yum -y install net-tools
yum -y install perl

#启动数据库:
service mysqld status
service mysqld start
service mysqld stop
service mysqld restart
systemctl enable mysqld

#查看临时密码
grep password /var/log/mysqld.log
2019-06-12T16:43:10.889769Z 1 [Note] A temporary password is generated for 
root@localhost: m*dj,/P_j6v>

#登陆 mysql 并修改密码,一定要加单引号
mysql -uroot -p'm*dj,/P_j6v>'
----------------------------------
set global validate_password_policy=LOW;
set global validate_password_policy =0;
set global validate_password_length = 6;
set password = password("123456");
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
flush privileges;
quit;

#上面若设置密码不成功,报错如下:
mysql> set password = PASSWORD('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

执行下面这几步:
这个其实与validate_password_policy的值有关。
执行下面命令 修改 即可
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy =0;
Query OK, 0 rows affected (0.04 sec)
mysql> set global validate_password_length = 6;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD = PASSWORD('your new password');		#然后重新 执行命令
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER
mysql> flush privileges;
mysql> quit

#设置远程连接
mysql -u root -p
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
flush privileges;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
2.8.2 源码安装MySQL
rpm -qa | grep mysql 							#查看本地mysql数据库
rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps 	#卸载本系统mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz									#下载mysql
tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.11-linux-glibc2.5-x86_64 /usr/local/mysql
userdel -r mysql
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
mkdir -p  /data/mysql
chown mysql:mysql -R /data/mysql
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2.8.3 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 = 1000

# 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 = 128M

#根据生产需要,调整pool size 
innodb_buffer_pool_size = 2048M
#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

# 因为配置hive连接数据库问题,暂时停掉GTID模式
gtid_mode = off
enforce_gtid_consistency = off

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
2.8.4 部署mysql jdbc jar
#选择所有节点都上传,/root/mysql-connector-java-5.1.47.jar
#创建目录/usr/share/java/
[root@cdh2 mysql]# ansible cdhnode -m shell -a 'mkdir -p /usr/share/java/'
#上传jar包到/tmp目录下
ansible cdhnode -m copy -a 'src=/root/mysql-connector-java-5.1.47.jar dest=/usr/share/java/mysql-connector-java.jar backup=no'
ansible cdhnode -m shell -a 'ls -l /usr/share/java/mysql-connector-java.jar'

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.9 文件下载

2.9.1 下载依赖

集群内各节点服务器上下载如下依赖,如果不下载这些依赖,使用cdh安装的时候会报各种各样的错误。

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
  • 1
2.9.2 下载CM离线软件安装包

A、找到离线软件下载页面:

访问官网:https://www.cloudera.com/

img

img

img

img

img

img

img

img

B、下载离线软件包:

点击上个步骤中找到的离线软件下载页面,然后进入到RPMS/x86_64/中,下载其中除了jdk以外的所有rpm文件:

img

还需要在离线软件下载页面下载rpm的url地址后面的几个路径去掉,即:redhat6/yum/RPMS/x86_64,从而进入到该版本软件的根目录下载allkeys.asc文件:

img

2.9.3 安装httpd
yum -y install httpd
service httpd start 
service httpd status
systemctl enable httpd		
chkconfig httpd on		#开机自启httpd服务
  • 1
  • 2
  • 3
  • 4
  • 5
2.9.4 上传CM离线软件安装包:

在CM的主节点上,将下载好的CM相关的rpm文件上传到服务器中对应文件夹中。

cd /var/www/html/
mkdir -p /var/www/html/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
将cm6下面6个文件,上传到/var/www/html/cm6/6.2.1/redhat7/yum/RPMS/x86_64/目录下
[root@cdh1 /var/www/html]# ls /var/www/html/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64.rpm
enterprise-debuginfo-6.2.1-1426065.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

#浏览器登录验证
http://192.168.8.110/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

cd /var/www/html/
mkdir -p /var/www/html/cm6/6.2.1/parcels/
#将cdh6下面3个文件,上传到/var/www/html/cm6/6.2.1/parcels/目录下
ls /var/www/html/cm6/6.2.1/parcels/
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha256

#将allkeys.asc文件上传到/var/www/html/cm6/6.2.1/目录下
[root@cdh1 /var/www/html]# ls /var/www/html/cm6/6.2.1/
allkeys.asc  parcels  redhat7
[root@cdh1 /var/www/html]#

#访问测试:http://192.168.8.110/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
curl http://cdh1/cm6/6.2.1/allkeys.asc
curl http://cdh1/cm6/6.2.1/parcels/
curl http://cdh1/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

#本地目录与官网目录对应yum正确找到
https://archive.cloudera.com/cm6/6.2.1/allkeys.asc
https://archive.cloudera.com/cdh6/6.2.1/parcels/
https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
2.8.7 安装createrepo生成repodata目录
#生成RPM元数据repodata不是下载的是生成的(失败)
yum install -y createrepo
cd /var/www/html/cm6/6.2.1/redhat7/yum
createrepo .
-----------------------------------------------------------------
[root@cdh1 /var/www/html/cm6/6.2.1/redhat7/yum]# createrepo .
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 1 pkgs
Spawning worker 2 with 1 pkgs
Spawning worker 3 with 1 pkgs
Spawning worker 4 with 1 pkgs
Spawning worker 5 with 1 pkgs
Spawning worker 6 with 0 pkgs
Spawning worker 7 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
2.8.8 配置本地yum源
#每台机器上都配置repo源
cat >> /etc/yum.repos.d/cloudera-manager.repo << EOF
[cloudera-manager]
name=Cloudera Manager
baseurl=http://cdh1/cm6/6.2.1/redhat7/yum/
gpgcheck=0
enabled=1
EOF

yum clean all && yum makecache		#清yum缓存;生成缓存;
yum list | grep cloudera
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2.8.9 下载CDH的Parcel文件

按照找CM离线软件包下载页面的步骤找到CDH离线软件包下载页面:

img

img

上传CDH的Parcel文件

将下载的CDH Parcel文件上传到CM主节点的/opt/cloudera/parcel-repo文件夹中。

修改.sha1格式的文件为.sha,因为.sha1为哈希文件,如果不重命名为.sha后面从本地读取CDH软件包会失败,因为找不到.sha哈希文件。

三、Cloudera-manager部署

3.1 CM安装Server服务

# 所有的master主节点操作
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-serve
# 所有的datanode节点
yum install -y cloudera-manager-daemons cloudera-manager-agent

#所有节点修改agent的配置,指向server的节点cdh1
sed -i "s/server_host=localhost/server_host=cdh1/g" /etc/cloudera-scm-agent/config.ini
----------------------------------------------------------
ansible cdhnode -m shell -a 'sed -i "s/server_host=localhost/server_host=cdh1/g" /etc/cloudera-scm-agent/config.ini'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
3.1.1 配置mysql的jdbc驱动
在CM集群所有节点上操作:

将mysql-connector-java-5.1.47-bin.jar(推荐使用5.1的较高版本的驱动jar包)文件上传至CM Server节点上的/usr/share/java/目录下并重命名为mysql-connector-java.jar(如果/usr/share/java/目录不存在,需要手动创建)。

设置元数据库为mysql--前提是安装ClouderaManager Server服务
/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql cmf cmf 123456
旧版本:/usr/share/cmf/schema/scm_prepare_database.sh -h 地址 mysql 数据库 用户 密码

提示ERROR JDBC Driver com.mysql.jdbc.Driver not found.
#需要上传mysql驱动包jar到/opt/cloudera/cm/lib目录下。
[root@cdh1 ~]# cp /usr/share/java/mysql-connector-java.jar /opt/cloudera/cm/lib/
[root@cdh1 ~]# ls /opt/cloudera/cm/lib/ | grep mysql
mysql-connector-java.jar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
3.1.2 创建数据库和用户:

根据所需要安装的服务参照下表创建对应的数据库以及数据库用户,数据库必须使用utf8编码,创建数据库时要记录好用户名及对应密码:

服务名数据库名用户名
Cloudera Manager Server服务对应的数据库和用户scmscm
Activity Monitor服务对应的数据库和用户amonamon
Reports Manager服务对应的数据库和用户rmanrman
Hue服务对应的数据库和用户huehue
Hive Metastore Server服务对应的数据库和用户metastorehive
Sentry Server服务对应的数据库和用户sentrysentry
Cloudera Navigator Audit Server服务对应的数据库和用户navnav
Cloudera Navigator Metadata Server服务对应的数据库和用户navmsnavms
Oozie服务对应的数据库和用户oozieoozie

先创建4个数据库及对应用户:scm、amon、rman、metastore;

在mysql数据库中创建CDH需要的各种数据库/参考2.8.4:

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 1
  • 2
  • 3
  • 4

在mysql中创建CDH连接不同数据库对应的用户:

create user 'scm'@'%' identified by '123456';
create user 'amon'@'%' identified by '123456';
create user 'rman'@'%' identified by '123456';
create user 'hive'@'%' identified by '123456';
  • 1
  • 2
  • 3
  • 4

在mysql中授权CDH不同连接数据库用户对应的数据库:

GRANT ALL ON scm.*  TO  'scm'@'%';
GRANT ALL ON amon.*  TO  'amon'@'%';
GRANT ALL ON rman.* TO  'rman'@'%';
GRANT ALL ON metastore.* TO  'hive'@'%';
  • 1
  • 2
  • 3
  • 4
3.1.3 设置CM数据库:

CM主节点上包含一个配置数据库的脚本。

mysql数据库与CM Server是同一台主机时命令为

[root@cdh1 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm scm 123456
[main] DbCommandExecutor    INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
[root@cdh1 ~]#

#查看主节点server的配置:
[root@cdh1 /opt/prometheus/config]# cat /etc/cloudera-scm-server/db.properties
# Auto-generated by scm_prepare_database.sh on 2023年 04月 26日 星期三 21:18:56 CST
#
# 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=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

不同台时命令为:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h 192.168.8.110 --scm-host 192.168.8.245 scm scm
  • 1

说明:mysql-h为mysql所在服务器的IP;–scrm-host为CM主节点所在的服务器IP;第一个scm为数据库;第二个scm为用户名。

3.2 操作CM Server服务:

  1. 主节点启动server服务进程(查看7180端口)
#启动服务
systemctl start cloudera-scm-server
#查看启动日志:
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
#关闭服务
systemctl stop  cloudera-scm-server
#查看启动状态:
systemctl status cloudera-scm-server
netstat -an | grep 7180
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

后等待Cloudera Manager Server启动,需要稍等一会儿,可以通过查看/var/log/cloudera-scm-server/cloudera-scm-server.log去监控服务启动状态。当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出来后,说明服务启动成功,可以通过浏览器访问Cloudera Manager WEB界面了。

img

  1. 各子节点
# 启动cloudera-scm-agent
systemctl start cloudera-scm-agent
# 查看启动日志
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
  • 1
  • 2
  • 3
  • 4
  1. 查看状态
systemctl start cloudera-scm-agent
systemctl start cloudera-scm-server
  • 1
  • 2
  1. 关闭服务
systemctl stop cloudera-scm-agent
systemctl stop  cloudera-scm-server
  • 1
  • 2
  1. 开机启动
systemctl enable cloudera-scm-agent
systemctl enable cloudera-scm-server
  • 1
  • 2

3.2 CM中存在的目录汇总

目录作用说明
/run/cloudera-scm-agentAgent服务运行的目录
/run/cloudera-scm-agent/processAgent维护程序目录
/run/cloudera-scm-serverServer运行维护目录
/etc/cloudera-scm-agentAgent 配置目录
/etc/cloudera-scm-serverServer配置目录
/var/lib/cloudera-scm-serverAgent 运行文件目录
/var/lib/cloudera-scm-agentServer 运行文件目录
/var/log/cloudera-scm-serverAgent日志文件目录
/var/log/cloudera-scm-agentServer日志文件目录
/opt/cloudera安装文件目录

3.3 配置本地parcel包

注意:必须要在数据库初始化后,将parcels文件放置到/opt/cloudera/parcel-repo目录中
#上传cdh6的parcel等文件到opt/cloudera/parcel-repo 操作参考2.8.9
mv /var/www/html/cm6/6.2.1/parcels/* /opt/cloudera/parcel-repo
#重命名密钥文件名
cd /opt/cloudera/parcel-repo/
mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

四、CM部署CDH集群

4.1 访问CM的web系统:

在浏览器中访问地址:http://CM主节点IP:7180,
默认账号和密码都为admin

img

设置中文Cloudera Manager》管理》语言》简体中文
设置Parcel 更新频率为1分钟Parcel》配置》Parcel 更新频率》1分钟
集群》添加集群》欢迎使用 Cloudera Manager【继续】》欢迎使用 Cloudera Manager【接受】》欢迎使用 Cloudera Manager【免费】》
群集安装》 欢迎【继续】》Cluster Basics【Cluster 1】》 Specify Hosts【cdh1】》
选择存储库【自定义存储库:http://cdh1/cm6/6.2.1|CDH 版本:CDH-6.2.1-1.cdh6.2.1.p0.1425774】》
JDK 安装选项【安装】》提供 SSH 登录凭据【root|密码】》安装完成
ls /opt/cloudera/parcel-repo
再添加主机》Add Hosts》Add hosts to cluster【Cluster 1】》 Specify Hosts【hadoop02】》
选择存储库【自定义存储库:http://hadoop01/cm6/6.2.1】》JDK 安装选项【安装】》提供 SSH 登录凭据【root|密码】》安装完成》选择主机模板

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.2 修改CM系统端口号:

操作见网址:https://www.freesion.com/article/2773236140/

个人建议修改下,只是修改http端口号,即修改后端口号:

img

修改端口号完毕后,需要重新启动CM server才会生效的。

4.3 管理CM系统用户:

通过CM的web管理界面:设置—>Users & Roles进行用户、角色的管理。

img

4.4 操作CM安装CDH集群

操作见网址:

https://www.cnblogs.com/yinzhengjie/p/10887356.html

需要注意的是在下图中,配置的本地存储库就是上述生成createrepo后移动的CM文件夹,在浏览器中可以访问到的CM的相关rpm文件的地址。并且CDH软件版本就配置自己上传到的CDH的Pacel文件的版本,这样就不用重新从官网下载了,因为自己之前已经下载好上传了,这样安装方便。

img

**安装CDH出现file /opt/cloudera/parcels/.flood/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel…does not exist可能磁盘空间不足 **

【https://blog.csdn.net/huangzhilin2015/article/details/90441467】
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
systemctl stop cloudera-scm-agent
rm -rfv /opt/cloudera/parcel*
systemctl start cloudera-scm-agent
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
systemctl status cloudera-scm-agent
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 第一步: 输入cm 地址,可以看到登陆界面

img

CM初始用户和密码为:admin/admin,登陆

  1. 第二步: 许可界面,点击同意条款,点击继续,进行下一步

img

  1. 第三步:选择cdh的版本

img

cdh提供三个版本:免费版和收费版,此次选择免费版,点击继续

img

img

  1. 第四步:起个名字 Cluster1

img

  1. 第五步: 为 CDH 群集安装指定的Agent主机

img

  1. 也可以查看当前的主机列表

img

选择主机列表后,点击继续

  1. 第六步: 集群安装界面

img

  • 选择方式:使用parcel方式
  • 选择CDH的版本: CHD-6.1.0.p0.1
  • 其他parcel:都选”无”
  • 选择后,点击继续
  1. 第七步:集群安装界面,安装时间比较长

img

img

  1. 第八步:集群设置

img

选择自定义服务,先安装个zookeeper

img

9) 第九步:到自定义角色分配 中,

Activity Monitor 我选择的是cdh1节点,zookeeper 我选择的是1-3 节点

img数据库是在cdh3 上部署,然后主机名称为cdh3 数据库选择amon 用户名为root 密码 123456 然后点击测试连接

img

img

入到这页之后,先查看自己集群节点的容量大小,输入 df -HT 我的cdh1的节点容量如下:

/dev/mapper/centos-root 系统盘的容量最大,占19个G 但使用15个G 所以 在选择上不选择系统盘

可以选择 /run盘 和 /boot 盘 作为存放的路径

img

4.5 启动关闭CDH集群:

(1)启动CDH集群:
A、启动CDH服务端:
在CM主节点上操作:
执行命令:service cloudera-scm-server start;

B、启动CDH客户端:
在CM的agent节点上操作:
执行命令:service cloudera-scm-agent start;
1234567
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
(2)关闭CDH集群:
A、关闭CDH客户端:
在CM的agent节点上操作:
执行命令:service cloudera-scm-agent stop;

B、关闭CDH服务端:
在CM的主节点上操作:
执行命令:service cloudera-scm-server stop;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

五、Linux配置优化

5.1swappiness和透明化

swappiness是Linux的一个内核参数,控制系统在使用swap虚拟内存时,内存使用的相对权重。

swappiness参数值可设置范围在0到100之间。 此参数值越低,就会让Linux系统尽量少用swap虚拟内存分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。推荐设置为10,过多的交换空间会引起GC耗时的激增。根据服务器硬件配置会有变化。

自CentOS6版本开始引入了Transparent Huge Pages(THP透明的巨大的页面),从CentOS7版本开始,该特性默认就会启用。

Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变。

因为Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。

因此,尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP(比如说Cloudera、ORACLE、MariaDB、MongoDB等),否则可能会导致性能出现下降。

# 设置swappiness
(1)查看swappiness
永久设置查看指令:cat /etc/sysctl.conf

(2)永久设置swappiness
临时生效:
sysctl -w vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf

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


# 关闭透明大页面
(1)查看透明大页面
查看指令1:cat /sys/kernel/mm/transparent_hugepage/enabled
查看指令2:cat /sys/kernel/mm/transparent_hugepage/defrag

(2)永久关闭透明大页面
查看指令:cat /etc/rc.d/rc.local
编辑指令:vi /etc/rc.d/rc.local
修改内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled;
then echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;
then echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

(3)配置rc.local脚本为可执行
赋权指令:chmod +x /etc/rc.d/rc.local

(4)配置其它节点永久关闭透明大页
使用scp把rc.local脚本分发到其它节点
分发到hadoop1指令:
scp /etc/rc.d/rc.local root@hadoop1:/etc/rc.d/rc.local
其它节点,按照此格式分发,只需修改目标主机的主机名。

ss -ntlp | grep -E '9000|9001|7190|7191|19001'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

5.2 最大文件

所有机器更改CentOS7.9的文件句柄数

(1)查看最大文件句柄数
查看最大文件句柄数指令:ulimit -n
查看最大文件句柄数指令:cat /etc/security/limits.conf

(2)修改最大文件句柄数
修改指令:vim /etc/security/limits.conf
---

*               soft    nofile          102400
*               hard    nofile          102400
*               soft    nproc           unlimited
*               hard    nproc           unlimited
*               soft    memlock         unlimited
*               hard    memlock         unlimited

其中,*代表匹配所有。
(3)使用scp把limits.conf脚本分发到其它节点
分发到hadoop1指令:
scp /etc/security/limits.conf root@hadoop1:/etc/security/limits.conf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

5.3 TCP Socket*端口数

增加可用的TCP套接字端口数(Increase the number of TCP socket ports available),如果你的流程会在很短的时间内创建并拆除大量socket,这一点尤为重要。

sudo sysctl -w net.ipv4.ip_local_port_range ="10000 65000"
  • 1

5.4 缩减Socket闲置*时间

socket连接闲置太长时间会影响并发量,设置socket在保持TIMED_WAIT状态的时间,能够快速创建和销毁新socket。

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait =“1”
  • 1

六、CDH 6.X完全卸载步骤

6.1 关闭集群中的所有服务

这个可以通过clouder manger 主页关闭集群

6.2 卸载

[root@master ~]# /usr/share/cmf/uninstall-cloudera-manager.sh 
[root@slave1 ~]# service cloudera-scm-agent stop
[root@slave1 ~]# service cloudera-scm-agent stop
  • 1
  • 2
  • 3

一下都是所有要卸载的集群均要执行清除工作:

[root@master ~]# umount /var/run/cloudera-scm-agent/process
[root@slave1 ~]# umount /var/run/cloudera-scm-agent/process
[root@slave2 ~]# umount /var/run/cloudera-scm-agent/process

[root@master ~]# rm -rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/x86_64/6/cloudera* /var/log/cloudera* /var/run/cloudera*  /etc/cloudera* 
  • 1
  • 2
  • 3
  • 4
  • 5

6.3 卸载安装包:

[root@slave1 ~]# rpm -qa | grep cloudera
[root@slave2 ~]# for f in `rpm -qa | grep cloudera `  ; do rpm -e ${f} ; done     (如果有保存,在执行一遍)
  • 1
  • 2

6.4 清除安装文件

 rm -rf /var/lib/hadoop-* /var/lib/impala /var/lib/solr /var/lib/zookeeper /var/lib/hue /var/lib/oozie  /var/lib/pgsql  /var/lib/sqoop2  /data/dfs/  /data/impala/ /data/yarn/  /dfs/ /impala/ /yarn/  /var/run/hadoop-*/ /var/run/hdfs-*/ /usr/bin/hadoop* /usr/bin/zookeeper* /usr/bin/hbase* /usr/bin/hive* /usr/bin/hdfs /usr/bin/mapred /usr/bin/yarn /usr/bin/sqoop* /usr/bin/oozie /etc/hadoop* /etc/zookeeper* /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase* /etc/hcatalog 

rm -rfv /var/lib/hadoop-* /var/lib/impala \
/var/lib/solr \
/var/lib/zookeeper \
/var/lib/hue \
/var/lib/oozie  \
/var/lib/pgsql  \
/var/lib/sqoop2  \
/data/dfs/  \
/data/impala/ \
/data/yarn/  \
/dfs/ \
/impala/ \
/yarn/  \
/var/run/hadoop-*/ \
/var/run/hdfs-*/ \
/usr/bin/hadoop* \
/usr/bin/zookeeper* \
/usr/bin/hbase* \
/usr/bin/hive* \
/usr/bin/hdfs \
/usr/bin/mapred \
/usr/bin/yarn \
/usr/bin/sqoop* \
/usr/bin/oozie \
/etc/hadoop* \
/etc/zookeeper* \
/etc/hive* \
/etc/hue \
/etc/impala \
/etc/sqoop* \
/etc/oozie \
/etc/hbase* \
/etc/hcatalog 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

//只删除hadoop系列的,不要删除其他软件的,否则其他软件的版本控制会被破坏

[root@master alternatives]# rm -rf ` find /var/lib/alternatives/* ! -name "mta" ! -name "print" ! -name "zlibrary-ui"  -mtime -3` 
[root@master alternatives]# rm -rf /etc/alternatives/* 
  • 1
  • 2

6.5. 杀死相关进程:

for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do sudo kill $(ps -u $u -o pid=); done
  • 1

6.6. 删除parcel包分发文件和解压文件

 rm -rf /opt/cloudera
  • 1

到此卸载完毕。

离线安装CDH 6.3.2大数据平台(基于CentOS 7.9操作系统)_cdh6.3.2离线安装-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/195448
推荐阅读
相关标签
  

闽ICP备14008679号