CDH6.3.2 集群部署(尚硅谷)

第一章 数仓之Cloudera Manager 

1.1 CM简介

1.1.1 CM简介

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

1.1.2 CM架构

Cloudera Manager 架构
  • Cloudera Repository:软件由 Cloudera 管理分布存储库
  • Server:负责软件安装、配置,启动和停止服务,管理服务运行的集群
  • Management Service:由一组执行各种监控,警报和报告功能角色的服务
  • Database:存储配置和监视信息
  • Agent:安装在每台主机上,负责启动和停止的过程,配置,监控主机
  • Clients:是用于与服务器进行交互的接口(API 和 Admin Console)

1.2 环境准备

1.2.1 虚拟机准备

虚拟机信息
IP Hostname CPU 内存 硬盘
192.168.10.221 node01 4 25G 50G
192.168.10.222 node02 4 25G 50G
192.168.10.223 node03 4 25G 50G

情况 1:三台虚拟机(node01、node02、node03),配置好对应主机的网络IP、主机名称、关闭防火墙。

查看网络的网段的范围:192.168.10.[128-254]

情况 2:服务器 + 跨服务器中的虚拟机


# 查看网关
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
# 配置 IP 地址
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 设置所有节点(三台虚拟机)的 hosts 文件
[root@localhost ~]# vi /etc/hosts

# 配置完成后,重启网络
[root@localhost ~]# systemctl restart network

# 查看主机名
[root@localhost ~]# hostname

# ping 其他主机域名进行验证
[root@localhost ~]# ping node01

# 关闭所有节点的防火墙并清空规则
# 停止并禁用防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

# 清空规则
[root@localhost ~]# iptables -F

# 查看防火墙状态
[root@localhost ~]# systemctl status firewalld

# 关闭所有节点的 selinux
[root@localhost ~]# vi /etc/selinux/config
    SELINUX=disabled

# 设置后重启生效
[root@localhost ~]# reboot

安全增强型 Linux(SELinux)是一种采用安全架构的 Linux 系统,它能够让管理员更好地管控哪些人可以访问系统。其旨在提高 Linux 系统的安全性,主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

1.2.2 设置所有节点的时区一致及时钟同步

① 时区

# 查看节点时区
timedatectl

# 所有节点设置亚洲上海海时区
timedatectl set-timezone Asia/Shanghai

② 时间同步
主从:主节点和互联网同步时间,从节点与主节点同步

# 所有节点安装 ntp
yum install -y ntp

# 选取 node01 为 ntp 的主节点
[root@node01 ~]# vi /etc/ntp.conf
    # 当外部时间不不可用时,使用本地硬件时间
    server 127.127.1.0 iburst local clock
    # 允许哪些网段的机器来同步时间
    restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

# 开启 ntpd 及查看状态
[root@node01 ~]# systemctl start ntpd
[root@node01 ~]# systemctl status ntpd

# 验证
[root@node01 ~]# ntpq -p

# 其他从节点停止禁用 ntpd 服务,并同步时间
[root@node02 ~]# systemctl stop ntpd
[root@node02 ~]# systemctl disable ntpd
[root@node02 ~]# ntpdate node01
    11 May 11:13:04 ntpdate[9877]: adjust time server 192.168.10.221 offset 0.008564 sec

# 其他从节点每天凌晨同步 node01 节点时间
[root@node01 ~]# crontab -e
    00 00 * * * /usr/sbin/ntpdate node01 

1.2.3 所有节点安装 JDK

# 在 node01 的 /opt 目录下创建 module 和 software 文件夹
[root@node01 ~]# cd /opt/
[root@node01 opt]# mkdir moudle software
# 上传 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 并安装
[root@node01 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 
[root@node01 software]# vi /etc/profile
    JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
    export PATH=${JAVA_HOME}/bin:${PATH}
[root@node01 software]# source /etc/profile
[root@node01 software]# java -version
java version "1.8.0_262"
# 分发文件,并 source
[root@node01 software]# scp -r /usr/java/ node02:/usr/
[root@node01 software]# scp -r /usr/java/ node03:/usr/
[root@node01 software]# scp /etc/profile node02:/etc/
[root@node01 software]# scp /etc/profile node03:/etc/
[root@node02 software]# source /etc/profile
[root@node02 software]# java -version
[root@node03 software]# source /etc/profile
[root@node03 software]# java -version

1.2.4 安装MySQL

注意:一定要用 root 用户操作如下步骤;先卸载 MySQL 再安装

1)安装包准备

# 查看 MySQL 是否安装
[root@node01 ~]# rpm -qa|grep -i mysql
    mysql-libs-5.1.73-7.el6.x86_64

# 如果安装了 MySQL,就先卸载,并删除原有 MySql 依赖
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
yum remove mysql-libs(要做)
# 下载 MySql 依赖并安装
[root@node01 ~]# yum install libaio
[root@node01 ~]# yum -y install autoconf
[root@node01 ~]# cd /opt/software/
[root@node01 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
[root@node01 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-5.6.24-1.el6.x86_64.rpm
# 上传 mysql-libs.zip 到 node01 的 /opt/software 目录,并解压文件到当前目录
[root@node01 software]# yum install unzip
[root@node01 software]# unzip mysql-libs.zip
[root@node01 software]# ls
    mysql-libs.zip
    mysql-libs

# 可进入到 mysql-libs 文件夹下查看文件
[root@node01 software]# ll mysql-libs/
总用量 76048
-rw-r--r-- 1 root root 18509960 3月  26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
-rw-r--r-- 1 root root  3575135 12月  1 2013 mysql-connector-java-5.1.27.tar.gz
-rw-r--r-- 1 root root 55782196 3月  26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm

2)安装MySQL服务器

# 安装 MySQL 服务端
[root@node01 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm

# 查看产生的随机密码
[root@node01 mysql-libs]# cat /root/.mysql_secret
    PUhuZJJt9rTRGWrX

# 查看MySQL状态
[root@node01 mysql-libs]# service mysql status

# 启动MySQL
[root@node01 mysql-libs]# service mysql start

3)安装MySQL客户端

# 安装MySQL客户端
[root@node01 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

# 链接MySQL(密码替换成产生的随机密码)
[root@node01 mysql-libs]# mysql -uroot -pPUhuZJJt9rTRGWrX

# 修改密码
mysql>SET PASSWORD=PASSWORD('000000');

# 退出MySQL
mysql>exit

4)MySQL中user表中主机配置

# 配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
# 进入MySQL
[root@node01 mysql-libs]# mysql -uroot -p123456

# 显示数据库                  mysql>show databases;

# 使用MySQL数据库             mysql>use mysql;

# 展示MySQL数据库中的所有表    mysql>show tables;

# 展示user表的结构            mysql>desc user;

# 查询user表                   
mysql>select User, Host, Password from user;

# 修改user表,把Host表内容修改为%
mysql>update user set host='%' where host='localhost';

# 删除root用户的其他host
mysql> delete from user where host!='%';

刷新    mysql>flush privileges;

退出    mysql>quit;

1.3 CM安装部署

1.3.1 MySQL中建库

# 创建各组件需要的数据库
mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

1.3.2 CM安装

# 将 mysql-connector-java-5.1.27-bin.jar 拷贝到 /usr/share/java 路径下,并重命名
[root@node01 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz
[root@node01 mysql-libs]# cd mysql-connector-java-5.1.27
[root@node01 mysql-connector-java-5.1.27]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
[root@node01 mysql-connector-java-5.1.27]# scp mysql-connector-java.jar /usr/share/java/
[root@node01 mysql-connector-java-5.1.27]# scp -r /usr/share/java/ node02:/usr/share/
[root@node01 mysql-connector-java-5.1.27]# scp -r /usr/share/java/ node03:/usr/share/
集群规划
节点 node01 node02 node03
服务

cloudera-scm-server

cloudera-scm-agent

cloudera-scm-agent cloudera-scm-agent
# 创建 cloudera-manager 目录,存放 cdh 安装文件
[root@node01 mysql-connector-java-5.1.27]# mkdir /opt/cloudera-manager
[root@node01 mysql-connector-java-5.1.27]# cd /opt/software/
[root@node01 software]# tar -zxvf cm6.3.1-redhat7.tar.gz
[root@node01 software]# cd cm6.3.1/RPMS/x86_64/
[root@node01 x86_64]# mv cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm /opt/cloudera-manager/
[root@node01 x86_64]# mv cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm /opt/cloudera-manager/
[root@node01 x86_64]# mv cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm /opt/cloudera-manager/
[root@node01 x86_64]# cd /opt/cloudera-manager/
[root@node01 cloudera-manager]# ll
总用量 1185872
-rw-r--r--. 1 2001 2001   10483568 9月  25 2019 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001 1203832464 9月  25 2019 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001      11488 9月  25 2019 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
# 安装cloudera-manager-daemons,安装完毕后多出 /opt/cloudera 目录
[root@node01 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@node01 cloudera-manager]# cd /opt
[root@node01 opt]# scp -r /opt/cloudera-manager/ node02:/opt/
[root@node01 opt]# scp -r /opt/cloudera-manager/ node03:/opt/
[root@node02 ~]# cd /opt/cloudera-manager/
[root@node02 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@node03 ~]# cd /opt/cloudera-manager/
[root@node03 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
# 安装 cloudera-manager-agent
[root@node01 cloudera-manager]# yum install bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
[root@node01 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@node02 cloudera-manager]# yum install bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
[root@node02 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@node03 cloudera-manager]# yum install bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
[root@node03 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
# 安装 agent 的 server 节点
[root@node01 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
    server_host=node01 
[root@node02 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
    server_host=node01 
[root@node02 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
    server_host=node01 

# 安装 cloudera-manager-server
[root@node01 cloudera-manager]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

# 上传 CDH 包导 parcel-repo
[root@node01 cloudera-manager]# cd /opt/cloudera/parcel-repo
[root@node01 parcel-repo]# ll
total 2033432
-rw-r--r-- 1 root root 2082186246 May 21 11:10 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root         40 May 21 10:56 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
-rw-r--r-- 1 root root      33887 May 21 10:56 manifest.json
[root@hadoop101 parcel-repo]# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
# 修改server的db.properties
[root@node01 parcel-repo]# vim /etc/cloudera-scm-server/db.properties
    com.cloudera.cmf.db.type=mysql
    com.cloudera.cmf.db.host=node01:3306
    com.cloudera.cmf.db.name=scm
    com.cloudera.cmf.db.user=scm
    com.cloudera.cmf.db.password=scm
    com.cloudera.cmf.db.setupType=EXTERNAL
# 启动server服务
[root@node01 log]# cd /var/log/
[root@node01 log]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
[root@node01 software]# systemctl start cloudera-scm-server
    scm
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

# 启动agent节点
[root@node01 software]# systemctl start cloudera-scm-agent
[root@node02 software]# systemctl start cloudera-scm-agent
[root@node03 software]# systemctl start cloudera-scm-agent

1.4 CM的集群部署

接受条款和协议 :

 后续未展示的操作,点击继续即可。

集群安装 :

集群名称自行更改,可默认。

指定主机:

选择 CDH 版本 6.3.2:

等待下载安装:

检查网络性能,检查主机:

 Inspect Network Performance,可能会出现警告,网络延迟较高。

# 问题 1
# 临时解决:
[root@node01 ~]# echo "10">/proc/sys/vm/swappiness
[root@node02 ~]# echo "10">/proc/sys/vm/swappiness
[root@node03 ~]# echo "10">/proc/sys/vm/swappiness
# 永久解决
[root@node01 ~]# sysctl -w vm.swappiness=10
[root@node01 ~]# echo vm.swappiness = 10 >> /etc/sysctl.conf
[root@node02 ~]# sysctl -w vm.swappiness=10
[root@node02 ~]# echo vm.swappiness = 10 >> /etc/sysctl.conf
[root@node03 ~]# sysctl -w vm.swappiness=10
[root@node03 ~]# echo vm.swappiness = 10 >> /etc/sysctl.conf

# 问题 2 
[root@node01 software]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@node01 software]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@node02 software]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@node02 software]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@node02 software]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@node02 software]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 问题 3
可以忽略

群集设置:

第2章 数仓

2.1 HDFS、YARN、Zookeeper安装

2.1.1 分配节点

2.1.2 集群设置全部选默认即可

2.1.3 修改HDFS的权限检查配置

关闭HDFS中的权限检查:dfs.permissions。

类似问题,配置相应的内存大小,内存若不够,则忽略。

  版本验证问题,可以忽略。 

2.1.4 配置NameNode HA

进入HDFS页面点击启用High Availability

HA(High Available),高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。

审核更改

2.1.5 配置Yarn HA

2.2 Spark安装

安装spark

2.3 Kafka安装

2.3.1 Kafka安装

Kafka 的 Broker 选择三台机器

2.3.2查看Kafka Topic

[root@node01 parcel-repo]# /opt/cloudera/parcels/CDH/bin/kafka-topics --zookeeper hadoop102:2181 --list

2.3.3 创建 Kafka Topic

进入到 /opt/cloudera/parcels/KAFKA 目录下分别创建:启动日志主题、事件日志主题。

创建topic test

[root@node01 parcel-repo]# /opt/cloudera/parcels/CDH/bin/kafka-topics --bootstrap-server node01:9092,node02:9092,node03:9092  --create --replication-factor 1 --partitions 1 --topic test

2.3.4 删除 Kafka Topic

删除启动日志主题

[root@node01 parcel-repo]# /opt/cloudera/parcels/CDH/bin/kafka-topics --delete --bootstrap-server node01:9092,node02:9092,node03:9092--topic test

2.4 Hive安装

将 Hive 服务添加到 Cluster 1

2.5 配置Impala

猜你喜欢

转载自blog.csdn.net/weixin_44227733/article/details/124703805