目录
一、CDH 为什么离不开 MySQL
二、步骤 1:清理 MariaDB 冲突
三、步骤 2:二进制方式安装 MySQL 5.7.22
四、步骤 3:三库三账号授权
五、常见报错与排错
六、结语与系列预告
一、CDH 为什么离不开 MySQL
CM 体系里有三类元数据都要落库:
元数据 存储库 访问账号
CM Server 自身配置、主机清单、监控历史 cm 库 scm
Hive 元数据(表结构、分区、列) hive 库 cdh
Oozie 工作流定义与调度状态 oozie 库 cdh
元数据库相当于整个平台的名册和账本,它挂了,所有服务都找不到自己的数据。所以这一步虽简单,却是后续一切的地基。本篇仅在 cdhmaster 节点操作。
二、步骤 1:清理 MariaDB 冲突
CentOS 7 默认自带 MariaDB,与 MySQL 二进制版文件冲突,必须先卸载:
bash
查询已安装的 MariaDB 包
rpm -qa | grep mariadb
输出示例:mariadb-libs-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
验证:再次执行 rpm -qa | grep mariadb,无任何输出即为卸载干净。
同时确认 libaio 已安装(MySQL 运行时依赖):
bash
yum install -y libaio
三、步骤 2:二进制方式安装 MySQL 5.7.22
2.1 解压并初始化
bash
tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
移动到统一目录(重命名为 mysql)
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
创建运行用户
useradd -s /sbin/nologin mysql
初始化数据目录
/usr/local/mysql/bin/mysqld --initialize
–user=mysql --datadir=/usr/local/mysql/data
关键动作:–initialize 的输出末尾会打印一行临时 root 密码(形如 A temporary password is generated for root@localhost: xxxxx),务必立刻复制保存,首次登录全靠它。
2.2 配置并启动
bash
拷贝启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
启动
service mysqld start
验证:service mysqld status 显示 running;netstat -anpt | grep 3306 有监听。
2.3 首次登录与改密
bash
mysql -u root -p # 输入刚才记录的临时密码
登录后 MySQL 5.7 强制先改密码才能执行任何语句:
sql
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
验证:退出后 mysql -u root -p123456 能登录。
四、步骤 3:三库三账号授权
3.1 建库
sql
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
字符集统一用 utf8,避免中文注释在 Hive/Oozie 中变成乱码问号。
3.2 授权
sql
grant all privileges on.to ‘cdh’@‘localhost’ identified by ‘123456’ with grant option;
grant all privileges on.to ‘cdh’@‘%’ identified by ‘123456’ with grant option;
grant all privileges on.to ‘scm’@‘127.0.0.1’ identified by ‘123456’ with grant option;
flush privileges;
三个账号的分工一定要分清:
账号 允许来源 用途
scm 127.0.0.1 CM Server 初始化时连接 cm 库
cdh %(任意主机) Hive / Oozie 服务连接各自元数据库
root localhost 数据库本地管理
cdh 账号必须带 ‘%’ 来源授权:Hive 服务跑在别的节点上,只有 localhost 授权的话,Web 向导里"测试连接"必挂。
五、常见报错与排错
报错/现象 原因 处理
error while loading shared libraries: libaio.so.1 缺 libaio yum install -y libaio
登录后执行任何语句报 ERROR 1820 未修改临时密码 先执行 ALTER USER
Web 向导"测试连接"失败 cdh 账号缺 ‘%’ 授权 补 grant 语句并 flush privileges
中文注释乱码 建库未指定 utf8 重建库或修改默认字符集
服务启动失败无日志 data 目录属主不对 chown -R mysql:mysql /usr/local/mysql
六、结语与系列预告
本篇记住三件事:MariaDB 必须先卸载、–initialize 的临时密码必须保存、cdh 账号要授权 ‘%’ 来源。
元数据库就位后,下一篇进入重头戏:Cloudera Manager 5.14 的离线安装——解压、放驱动、初始化 scm 库、配 Agent、搭 Parcel 仓库,外加那个著名的 .sha1 改 .sha 的坑。