EsgynDB安装系列之配置MySQL作为CDH元数据库

版权声明:本文为博主原创文章,如需转载,请注明出处。 https://blog.csdn.net/Post_Yuan/article/details/81235436

之前在安装CDH时,一般都使用CM自带的cloudera-manager-server-db-xxxx.rpm包来作为CDH后台的元数据库,用于存储相关的元数据信息,这个rpm对应PostgreSQL数据库。不过安装完后,CDH会显示一个警告信息,即不建议生产环境用自带的PostgeSQL作为元数据库,建议使用外部的数据库如MySQL、Oracle,我想主要可能是考虑可管理性和稳定性因素。

那么如何使用MySQL作为元数据库来存储和管理CDH相关的服务呢?主要配置步骤如下,

1 首先选择集群的一台机器用于安装MySQL数据库,一般选择NameNode节点,可以使用YUM的方式安装MySQL,如果是离线的环境,操作系统中可能没有相关的包,建议先上传一个操作系统版本对应的ISO文件并作为本地YUM源。
另外,CentOS6和CentOS7上安装MySQL使用的包是不同的,CentOS6是安装mysql-server,而CentOS7是安装mariadb-server。

--CentOS6
yum -y install mysql-server 
service mysqld start 
chkconfig mysqld on 

--CentOS7
yum -y install mariadb-server 
service mariadb start 
chkconfig mariadb on 

2 设置MySQL中root用户的密码

mysqladmin -uroot password 'root123'

3 准备MySQL JDBC包,需要准备一个和当前MySQL版本相同的JDBC包,上传到MySQL所在节点,并放到/usr/share/java/目录。

cp mysql-connector-java-5.1.34.jar /usr/share/java/mysql-connector-java.jar

4 在MySQL创建相应的数据库和用户并授予权限

mysql -u root --password='root123' -e 'create database hive default character set utf8;' 
mysql -u root --password='root123' -e "CREATE USER 'hive'@'%' IDENTIFIED BY 'root123'" 
mysql -u root --password='root123' -e "GRANT ALL PRIVILEGES ON hive. * TO 'hive'@'%'" 
mysql -u root --password='root123' -e "create user 'amon'@'%' identified by 'root123'"
mysql -u root --password='root123' -e 'create database amon default character set utf8'
mysql -u root --password='root123' -e "grant all privileges on amon.* to 'amon'@'%'"
mysql -u root --password='root123' -e "create user 'rman'@'%' identified by 'root123'"
mysql -u root --password='root123' -e 'create database rman default character set utf8' 
mysql -u root --password='root123' -e "grant all privileges on rman.* to 'rman'@'%'"
mysql -u root --password='root123' -e "create user 'cm'@'%' identified by 'root123'"
mysql -u root --password='root123' -e 'create database cm default character set utf8' 
mysql -u root --password='root123' -e "grant all privileges on cm.* to 'cm'@'%'" 

5 开始安装Cloudera Manager Server服务,如果是离线环境,需先准备好相关的rpm包并创建本地YUM源

yum -y install cloudera-manager-daemons cloudera-manager-server

6 为Cloudera管理器配置外部数据库

/usr/share/cmf/schema/scm_prepare_database.sh -h <db_host_ip> mysql cm cm root123

7 启动Cloudera Manager Server服务

service cloudera-scm-server start

注:
安装遇到的问题1

[root@master01 ~]# /usr/share/cmf/schema/scm_prepare_database.sh -h xxx.xxx.xxx.xxx mysql cm cm root123
JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_171-amd64/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/usr/share/cmf/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)

原因:
错误显示”ERROR JDBC Driver com.mysql.jdbc.Driver not found.”,这是因为上述步骤的第3步没有做,导到配置外部数据库无法找到对应的MySQL JDBC驱动包。

猜你喜欢

转载自blog.csdn.net/Post_Yuan/article/details/81235436