VMware 搭建大数据测试平台

所有的安装包都上传到了网盘:百度网盘链接 提取码:x8ek

软件版本

VMware:1.6

Linux:CentOS 7.9

CDH:6.2.1

1.安装虚拟机

CentOS 7.9 下载地址

1.1 创建一台虚拟机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 开机安装CentOS
  • 设置密码
  • 按步骤安装
1.3 配置NAT网络

在这里插入图片描述
在这里插入图片描述

# 修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens32 # "ens32"是网卡名称,每台机器可能会有差异

# 配置文件修改为
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 原为"DHCP"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="9447b076-fc4b-4484-9ad8-8729ea434a5e"
DEVICE="ens32"
ONBOOT="yes"
# 新增如下配置
IPADDR=192.168.100.100 # 静态地址
GATEWAY=192.168.100.2 # 网关
NETMASK=255.255.255.0 # 子网掩码
DNS1=192.168.100.2 #DNS1
DNS2=8.8.8.8 #DNS2

# 重启网络
service network restart
1.4 配置CentOS系统
1.4.1 修改映射关系
vim /etc/hosts
# 添加如下内容
192.168.100.10 cdh01
192.168.100.20 cdh02
192.168.100.30 cdh03
1.4.2 关闭防火墙
# 查看防火墙状态
firewall-cmd --state
# 关闭放火墙
systemctl stop firewalld.service
# 禁止开机启动
systemctl disable firewalld.service 
1.4.3 关闭 SELINUX
vi /etc/selinux/config 
# ELINUX=enforcing 改为 
SELINUX=disabled

# 设置后需要重启才能生效

# 查看SELINUX状态
getenforce
1.4.4 安装jdk
# 解压
tar zxvf jdk-8u281-linux-x64.tar.gz
mv jdk1.8.0_281/ /lib
# 配置环境变量
vi /etc/profile
# 添加环境变量

	#JAVA_HOME
	export JAVA_HOME=/lib/jdk1.8.0_281
	export PATH=${JAVA_HOME}/bin:$PATH

# 生效配置
source /etc/profile
1.4.5 同步时间
# 检查服务器的系统是否安装了ntp服务:
rpm -qa|grep ntp
# 如果没有安装,那么安装ntp服务:
yum install -y ntp
# 修改npt配置
vim /etc/ntp.conf

	#注释掉下面的行
	#server 0.centos.pool.ntp.org iburst
	#server 1.centos.pool.ntp.org iburst
	#server 2.centos.pool.ntp.org iburst
	#server 3.centos.pool.ntp.org iburst

	# 阿里云公网时间服务器
	server ntp.aliyun.com

	# 当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10	
	
# 修系统配置	
vim /etc/sysconfig/ntpd

	# 添加
	SYNC_HWCLOCK=yes
	
# 开启时间同步
ntpdate ntp.aliyun.com

# 重启ntpd
service ntpd restart

# 设置ntpd服务为开机启动
chkconfig ntpd on
1.4.6 安装配置Mysql
# 1.查看是否已经安装mysql
rpm -qa|grep mysql
# 若有,使用下面命令移除mysql
rpm -e --nodeps [相对应的包]
1.4.6.1 在官网下载安装包

MySQL下载地址

在这里插入图片描述

1.4.6.2 解压
tar -xvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
1.4.6.3 移动到 /usr/local/mysql
mv mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql
1.4.6.3 创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
1.4.6.4 创建数据目录并赋予权限
mkdir -p  /data/mysql              #创建目录
chown mysql:mysql -R /data/mysql   #赋予权限
1.4.6.5 配置my.cnf
vim /etc/my.cnf

#配置文件如下
 
[mysql] 
# 设置mysql客户端默认字符集 
default-character-set=utf8  
socket=/var/lib/mysql/mysql.sock 
[mysqld] 
#skip-name-resolve 
#设置3306端口 
port = 3306  
socket=/var/lib/mysql/mysql.sock 
# 设置mysql的安装目录 
basedir=/usr/local/mysql 
# 设置mysql数据库的数据的存放目录 
datadir=/usr/local/mysql/data 
# 允许最大连接数 
max_connections=200 
# 服务端使用的字符集默认为8比特编码的latin1字符集 
character-set-server=utf8 
# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB 
#lower_case_table_name=1 
max_allowed_packet=16M
1.4.6.7 创建data目录
cd /usr/local/mysql/
mkdir -p data
# 修改data目录的用户/用户组和权限
chown -R mysql:mysql ./
chmod -R 755 ./
1.4.6.8 初始化mysqld
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

2021-03-18T08:25:09.275081Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-03-18T08:25:09.374389Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-03-18T08:25:09.393267Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-03-18T08:25:09.396729Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 73ac2965-87c3-11eb-92ce-000c29b310b6.
2021-03-18T08:25:09.397136Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-03-18T08:25:09.816662Z 0 [Warning] CA certificate ca.pem is self signed.
2021-03-18T08:25:09.888417Z 1 [Note] A temporary password is generated for root@localhost: Pmk&ZYMSj1qt

#Pmk&ZYMSj1qt为初始密码
1.4.6.9 设置开机自启动
#复制启动脚本到资源目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld
#将mysqld服务加入到系统服务
chkconfig --add mysqld
#检查mysqld服务是否已经生效
chkconfig --list mysqld
#输出如下信息
	原生 systemd 服务。SysV 配置数据
	可能被原生 systemd 配置覆盖。 
	
	      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
	      查看在具体 target 启用的服务请执行
	      'systemctl list-dependencies [target]'。
	
	mysqld          0:关    1:关    2:开    3:开    4:开    5:开    6:关
1.4.6.10 配置环境变量
#修改配置文件
vim /etc/profile

#在行末添加如下内容

#MYSQL_HOME
export MYSQl_HOME=/usr/local/mysql/
export PATH=${MYSQl_HOME}/bin:$PATH

#生效系统配置
source /etc/profile
1.4.6.11 启动Mysql并修改相关配值
#启动服务
service mysqld start

# 登陆mysql 初试密码在刚刚初始化时输出的信息中:Pmk&ZYMSj1qt
mysql -uroot -p 

#使用mysql库
use mysql;

#修改密码
update user set authentication_string=password('root')where user='root'; #password()中设置你的密码

#允许远程连接
update user set host = '%' where user ='root';

#刷新权限
flush privileges;
1.4.6.12 创建CDH所需要的库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
1.4.7 配置mysql JDBC连接驱动

JDBC下载地址
在这里插入图片描述

# 解压后将jar包放到 /usr/share/java 目录 并修改包名
mv mysql-connector-java-5.1.27-bin.jar ./mysql-connector-java.jar
1.4.8 下载依赖包
yum -y install chkconfig && yum -y install bind-utils && yum -y install psmisc && yum -y install libxslt && yum -y install zlib && yum -y install sqlite && yum -y install cyrus-sasl-plain && yum -y install cyrus-sasl-gssapi && yum -y install fuse && yum -y install portmap && yum -y install fuse-libs && yum -y install redhat-lsb

2.克隆虚拟机&配置集群

  • 将安装好的虚拟机关闭,克隆三份,分别命名为 cdh01、cdh2、cdh03
  • 集群命名最好使用小写字母,不然CM会有告警,Kerberos安全认证可能会出现问题,不开启Kerberos安全认证虽然影响不大,我在安装的时候并不知情,所以在给出的截图主机名仍然是大写的命名。
    大,但是看着难受
  • 本节操作,在三台虚拟机上都需完成
2.1 更新服务器名称
vim /etc/hostname 
# 
cdh01(cdh02,cdh03)
# 重启
reboot
2.2 修改网络配置
vim /etc/sysconfig/network-scripts/ifcfg-ens32

# 修改ip地址,分别修改为一下ip
IPADDR=192.168.100.10
(
IPADDR=192.168.100.20
IPADDR=192.168.100.30
)

# 重启网络
service network restart
2.3 配置SSH 免密码登录
2.3.1 修改认证配置
vim /etc/ssh/sshd_config
# 开启私钥认证
RSAAuthentication yes
# 开启公钥认证
PubkeyAuthentication yes
2.3.2 配置私钥免密登陆
# 生成私钥 
ssh-keygen -t rsa -P ''
# 将每个节点的私钥提交到authorized_keys
for a in {1..3}; do ssh root@cdh0$a cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; done
# 将authorized_keys复制到其余节点
for a in {2..3}; do scp /root/.ssh/authorized_keys root@cdh0$a:/root/.ssh/authorized_keys ; done
# 重启ssh服务
service sshd restart

# 测试是否设置成功
ssh root@cdh01
ssh root@cdh02
ssh root@cdh03

3.cloudera manager Server & Agent 安装

Cloudera Manager 下载地址
在这里插入图片描述
CDH parcels下载目录
在这里插入图片描述

3.1 安装 CM Server & Agent

在所有节点,创建/opt/cloudera目录

mkdir /opt/cloudera

把下载好的cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpmcloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm

cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm安装包上传至 cdh01 节点/opt/目录

#cdh01作为主节点 安装daemons、server、agent
cd /opt
yum install cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm -y
yum install cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm -y
yum install cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm -y

将 cdh01 节点的cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpmcloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm 分发到cdh02、cdh03

for a in {2..3}; do scp /opt/cloudera/cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm  root@cdh0$a:/opt/; done
for a in {2..3}; do scp /opt/cloudera/cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm  root@cdh0$a:/opt/; done

在cdh02和cdh03安装daemons和agent

cd /opt
yum install cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm -y
yum install cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm -y
3.3 配置Server节点(所有节点)
vim /etc/cloudera-scm-agent/config.ini
# 大概在15行
# Hostname of the CM server.
server_host=cdh01
3.4 配置数据库(所有节点)
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root root

#若报找不到JDBC
Enter SCM password: 
JAVA_HOME=/lib/jdk1.8.0_281
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /lib/jdk1.8.0_281/bin/java -cp :/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Unable to find JDBC driver for database type: MySQL
[                          main] DbCommandExecutor              ERROR JDBC Driver com.mysql.jdbc.Driver not found.
[                          main] DbCommandExecutor              ERROR Exiting with exit code 3
--> Error 3, giving up (use --force if you wish to ignore the error)

#将之前的JDBC包复制到 /opt/cloudera/cm/lib
cp /usr/share/java/mysql-connector-java.jar /opt/cloudera/cm/lib

# 再次执行
JAVA_HOME=/lib/jdk1.8.0_281
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /lib/jdk1.8.0_281/bin/java -cp :/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

#执行成功
3.5 上传 Parcels

将下载好的CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcelCDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha(需要手动改后缀)和manifest.json上传到 /opt/cloudera/parcel-repo目录

3.6 启动CM
# 所有节点
systemctl start cloudera-scm-agent

# cdh01主节点
systemctl start cloudera-scm-server

# 查看服务状态
systemctl status cloudera-scm-agent
systemctl status cloudera-scm-server

# 停止服务
systemctl stop cloudera-scm-agent
systemctl stop cloudera-scm-server

不出意外的话,通过http://192.168.100.10:7180/cmf/ 初始账号:admin,密码:admin

3.7 集群安装

没有给出截图都按 “继续”

勾选节点所需节点
在这里插入图片描述

选择所要安装的服务

在这里插入图片描述

角色分配
在这里插入图片描述
在这里插入图片描述

配置数据库
在这里插入图片描述

安装
在这里插入图片描述

3.8 异常处理
3.8.1 心跳异常

查看cm-server日志

tail -10 /var/log/cloudera-scm-server/cloudera-scm-server.log

tail -10 /var/log/cloudera-scm-agent/cloudera-scm-agent.log

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

2021-03-22 14:12:31,239 ERROR avro-servlet-hb-processor-0:com.cloudera.server.cmf.AgentProtocolImpl: Dropped heartbeat from a known host CDH01 with bad incoming host name CDH03 since 2021-03-22T06:12:31.239Z.
2021-03-22 14:12:31,545 ERROR avro-servlet-hb-processor-1:com.cloudera.server.cmf.AgentProtocolImpl: Dropped heartbeat from a known host CDH01 with bad incoming host name CDH02 since 2021-03-22T06:12:31.545Z.
3.8.2 某个或多个节点 “主机运行状态不良” 或’'无法发出查询:Host Monitor 未运行 "
3.8.3 统一解决方案:卸载后重新安装服务!!
# 查看CDH所有安装的包
rpm -qa | grep -i cloudera
	
    cloudera-manager-daemons-6.2.1-1426065.el7.x86_64
    cloudera-manager-server-6.2.1-1426065.el7.x86_64
    cloudera-manager-agent-6.2.1-1426065.el7.x86_64

# 卸载
rpm -e cloudera-manager-daemons-6.2.1-1426065.el7.x86_64
rpm -e cloudera-manager-server-6.2.1-1426065.el7.x86_64
rpm -e cloudera-manager-agent-6.2.1-1426065.el7.x86_64
# 删除cloudera-scm-agent残留文件 
rm -rf /etc/cloudera-scm-agent/*
rm -rf /var/lib/cloudera-scm-agent/*
rm -rf /var/log/cloudera-scm-agent/*
# 删除cloudera-scm-agent残留文件
rm -rf /etc/cloudera-scm-server/*
rm -rf /var/lib/cloudera-scm-server/*
rm -rf /var/log/cloudera-scm-server/*
# 删除 /opt/clcloudera目录下的文件
rm -rf /opt/clcloudera/*
# 删除MySQL中的scm数据库
mysql -uroot -proot
mysql >drop database scm;

# 卸载干净后,重新执行安装

4.告警解决

刚刚搭起来的平台会有一堆告警

在这里插入图片描述

这里给出一些告警的解决方案

4.1 CDH 主机上未检测到 Java JDK

在主机配置中搜索java,将jdk主目录配置到java目录
在这里插入图片描述

4.2 必须在 HBase 服务中配置 Thrift Server 角色以使用 Hue HBase Browser 应用程序。

警告信息
在这里插入图片描述
解决方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成后,重启服务

4.3 主机名大写问题

在这里插入图片描述
由于安装前不知道可能会存在这种问题,服务器命名用了大写字母,后续可能在使用kerberos安全认证时会有一些不必要的问题。本次搭建的集群用于测试学习,后续也不打算使用安全认证功能,所有影响不大,并未对其进行修改。

解决方法:

修改主机名

4.4 内存配置

剩余的告警都是一些内存配置不合理的问题,可以自行按硬件配置进行修改后者抑制告警。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐