CDH5.14使用MySQL存储元数据
CDH使用cloudera-manager-installer.bin安装时默认安装了postgresql用来存储cloudera manager运行所需要的状态,但是一般生产环境使用外部数据库,这里介绍以下如何在cdh中使用MySQL
配置Mysql数据库
为Cloudera Manager配置外部的数据库需要对此外部数据库进行一些配置
1) 需要配置Mysql的搜索引擎为InnoDB
2) Mysql安装好以后默认分配的缓冲区和内存比较小,ClouderaManager会非常频繁地连接Mysql需要配置一下,具体根据你集群的大小配置最大连接数
3) 二进制日志对于ClouderaManager不是必须的,但是对Mysql有好处,这个你随意
然后官网在下面给了一个my.cnf配置的例子,然后说只要你的大数据集群在50个节点以内都可以使用下面的这个配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
validate_password = off
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_ALL_TABLES
安装MySQL,将原来的/etc/my.cnf备份,新建/etc/my.cnf并将上面的内容进行复制。
下载MySQL驱动包,上传到主节点的/usr/share/java目录,该目录需要手动进行创建,下载的驱动包的版本不要太高,以免出现连接错误,我下载的版本是5.1.35,下载完成之后,重命名,上传到创建的/usr/share/java目录
mv mysql-connector-java-5.1.35.jar mysql-connector-java.jar
安装CDH过程中,执行cloudera-manager-installer.bin可执行文件后,先不要进入浏览器端,等待cloudera-scm-server启动完成之后,按照下面的命令依次停止cloudera-scm-server-db和cloudera-scm-server进程
service cloudera-scm-server-db stop
service cloudera-scm-server stop
配置 CM Server 的数据库(主节点)
cd /usr/share/cmf/schema
./scm_prepare_database.sh mysql -hmaster -ucyclone -p123456 --scm-host master scm scm scm
这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-hmaster:数据库建立在master主机上面
-ucyclone:数据库用户名为cyclone
-p123456:数据库的密码为123456
--scm-host:CM server的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
初始化完成之后,启动cloudera-scm-server服务即可
service cloudera-scm-server start
另外一个是内置的数据库服务,就不需要启动了,启动完成就可以在网页端进行登陆,进行节点分配和服务安装,如果网页上没有警告说使用了内置的数据库,就说明配置成功。