安装Server和Agent
方式一(path A installer-采用嵌入式PostgreSQL数据库)
前置条件:(CM集群每个节点都要实现)
1)修改系统文件句柄数;
2)修改swap交换区空间;
3)禁用hugepage透明大页;
4)关闭防火墙和selinux;
5)修改主机名和映射文件;
6)实现免秘钥登录;
7)搭建共享源;
8)配置好ntp时间同步服务;
9)安装JDK;
1. 安装CM Agent(所有Agent节点)
方法一(推荐)
安装Agent客户端
yum install cloudera-manager-agent
修改Agent的配置文件
vim /etc/cloudera-scm-agent/config.ini
,修改内容如下:
server_host=server节点主机名称或IP
启动cloudera-manager-agent
/etc/init.d/cloudera-scm-agent start
方法二
先安装好Cloudera Manager Server,然后再CM的WEB引导界面安装Agent
注意: 以上两种方式任选其一,推荐方式一
2. 安装Cloudera Manager Server
下载安装脚本到指定目录
下载地址:http://archive.cloudera.com/cm5/installer/5.15.0/
添加可执行权限
chmod u+x cloudera-manager-installer.bin
执行安装
./cloudera-manager-installer.bin --skip_repo_package=1
然后在弹出的界面,一直选择next,yes,ok即可。
注意: 如果Cloudera Manager Server上没有手动安装rpm包此时就会联网下载,下载速度一般都较慢,太费时间。
检验是否安装成功
通过查看7180端口号,是否启动,来验证Cloudera Manager Server是否安装成功
netstat -anp|grep 7180
注意: 如果没有netstat命令,则安装netstat服务
yum -y install net-tools
登录到http://clouderaManagerServer:7180/cmf/login界面,初始用户名和密码都是admin
注意: clouderaManagerServer为Cloudera Manager Server的ip地址
方式二(path B package-采用外置数据库)
前置条件:(CM集群每个节点都要实现)
1)修改系统文件句柄数;
2)修改swap交换区空间;
3)禁用hugepage透明大页;
4)关闭防火墙和selinux;
5)修改主机名和映射文件;
6)实现免秘钥登录;
7)搭建共享源;
8)配置好ntp时间同步服务;
9)安装JDK;
1. 安装mysql(server节点或者单独数据库服务器)
1)查看系统是否已经安装mysql和mariadb,如果已经安装,卸载
################## rpm方式安装
# 查看系统是否安装了mysql和mariadb
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
# 卸载相应的软件包
rpm -e 软件包名称
################## yum方式安装
# 查看系统是否安装了mysql和mariadb
yum list installed | grep mysql
yum list installed | grep mariadb
# 卸载相应的软件包
yum remove 软件包名称
注意: 推荐采用yum方式安装与卸载rpm包,yum能够自动处理依赖
2)卸载组件后,删除原有配置(如果存在)
rm -rf /var/lib/mysql
rm -rf /var/log/mysqld.log
注意: yum方式卸载后,不会自动删除/var/lib/mysql目录和/var/log/mysqld.log文件,需要手动删除
3)解压mysql软件包到指定位置
tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
4)安装mysql组件
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
5)移动旧的InnoDB日志文件到备份文件夹(卸载的时候,已经手动删除/var/lib/mysql目录,重新安装后该目录为空,可以无需进行此步骤)
mkdir /var/lib/mysql-backup
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql-backup/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql-backup/ib_logfile1
6)先备份mysql配置文件/etc/my.cnf
,然后修改mysql配置(cloudera 推荐)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
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
#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
binlog_format = mixed
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
注意: 如果配置为MyISAM引擎时,Cloudera Manager将不会启动,在InnoDB配置出现错误时,表引擎会转换为MyISAM,所以需要正确配置InnoDB,检查表使用的引擎类型,使用命令show table status
7)启动mysql
systemctl start mysqld.service
8)设置开机自启动
systemctl enable mysqld.service
9)查看初始密码
grep "password" /var/log/mysqld.log
10)登录数据库设置root用户密码
# mysql5.7默认密码规则不允许设置过于简单的密码,如果要设置,先修改密码规则和密码长度,再设置新密码
set global validate_password_policy=0;
set global validate_password_length=11;
alter user 'root'@'localhost' identified by 'root@123456';
11)创建数据库并授权
# Cloudera Manager Server数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'root@123456';
# Activity Monitor数据库
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'root@123456';
# Reports Manager数据库
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'root@123456';
# Hue数据库
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'root@123456';
# Hive MetaStore Server数据库
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'root@123456';
# Sentry Server数据库
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'root@123456';
# Cloudera Navigator Audit Server
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'root@123456';
# Cloudera Navigator Metadata Server 数据库
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'root@123456';
# Oozie数据库
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'root@123456';
flush privileges;
查看创建的数据库
show databases;
确认用户的权限
SHOW GRANTS FOR '<user>'@'%';
注意: 创建数据库时指定数据库编码utf8; GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
12)拷贝mysql的数据库驱动到/usr/share/java目录下,并重命名
mv mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar
注意: 在Cloudera Manager服务器和其它服务器(比如:Activity Monitor、Reports Manager、Hive Metastore、Sentry角色、Cloudera Navigator Audit 角色)上安装JDBC connector;
Cloudera 建议需要使用数据库角色分配到同一个服务器上,然后在该服务器上安装JDBC connector,这只是建议,不是必须,当然你也可以将角色,例如:Activity Monitor安装到其它单独的服务器上,然后在这些需要使用数据库的角色所在服务器上安装JDBC connector
2. 安装Agent(所有Agent节点)
方法一(推荐)
1)安装客户端Agent
yum -y install cloudera-manager-agent
2)修改cloudera-manager-agent的配置文件
vim /etc/cloudera-scm-agent/config.ini
3)修改内容如下
server_host={server节点主机名或IP}
4)启动Agent
/etc/init.d/cloudera-scm-agent start
注意: server_host为内部网络和外部网络都可以,一定要保证server能检测到agent的心跳
方法二
先安装好Server,然后再CM的WEB引导界面安装Agent
注意: 以上两种方式任选其一,推荐方式一
3. 安装Server(Server节点)
1)安装Server端
yum -y install cloudera-manager-server
2)拷贝CDH的parcel包到/opt/cloudera/parcel-repo目录下
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel manifest.json
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.torrent KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.torrent
注意: 将下载的CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1的后缀.sha1文件改为.sha文件
3)初始化Cloudera Manager Server数据库命令格式
/usr/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password
注意: database-type:数据库类型,Cloudera Manager Server支持的一种数据库,包括:MariaDB、MySQL、Oracle、PostgreSQL
database-name:Cloudera Manager Server使用的数据库名称
username:Cloudera Manager Server使用的数据库的用户名称
password:Cloudera Manager Server使用的数据库的密码
options选项如下
-?或–help:展示帮助
–config-path:Cloudera Manager Server的数据库配置文件路径,默认是:/etc/cloudera-scm-server
-f:初始化过程中,出错依然继续运行,不终止
–scm-host:Cloudera Manager Server安装的主机名称,如果Cloudera Manager Server和数据库安装在同一台主机上,则可以省略此选项
-h或–host:为MYSQL所在主机的主机名或者IP地址,默认为localhost;
-P或–port:连接数据库的端口号,默认MariaDB、MySQL端口号为3306,PostgreSQL为5432,Oracle为1521,此选项用于连接远程数据库时使用。
-u或–user:数据库管理员名称,如果提供了此选项,就会为Cloudera Manager Server新创建用户<scm-user>
和数据库<scm-dbname>
(之前安装MySQL时已经创建过Cloudera Manager Server的用户和密码),如果没有提供此选项会用之前创建的用户名和数据库来初始化此数据库,该选项经常在数据库和Cloudera Manager Server不在同一台机器上时使用;
-p或–password:数据库管理员密码,默认是无密码的,此选项核上面-u经常一起搭配使用;
–schema-path:Cloudera Manager Schema配置文件位置,默认为/usr/share/cmf/schema
初始化Cloudera Manager Server数据库,init_cmf.sh内容如下:
#! /bin/sh
/usr/share/cmf/schema/scm_prepare_database.sh mysql scm scm 'root@123456'
注意: scm_prepare_database.sh此脚本为安装server服务时自动生成,密码为创建数据库和用户时设定的密码;
初始化Cloudera Manager Server数据库有三种情况
######################## 情况1,数据库和Cloudera Manager Server不在同一台机器
# 在myhost1创建一个临时用户,可以连接到myhost2
> grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
# 在myhost2上,运行如下脚本
> sudo /usr/share/cmf/schema/scm_prepare_database.sh mysql -h myhost1.sf.cloudera.com -utemp -ptemp --scm-host myhost2.sf.cloudera.com scm scm scm
# 在myhost1上删除临时用户temp
> drop user 'temp'@'%';
######################## 情况2,指定Oracle为Cloudera Manager Server数据库
/usr/share/cmf/schema/scm_prepare_database.sh -h cm-oracle.example.com oracle orcl sample_user sample_pass
######################## 情况3,数据库和Cloudera Manager Server在同一台机器
本安装方法中采用这种形式,命令上面已经给出
4)移除嵌入的PostgreSQL配置文件(如果存在)
# Installer or package install
rm /etc/cloudera-scm-server/db.mgmt.properties
# Tarball install
rm <tarball root>/etc/cloudera-scm-server/db.mgmt.properties
5)启动server服务
/etc/init.d/cloudera-scm-server start
6)查看7180端口号的程序是否启动
lsof -i:7180 或者 netstat -anp|grep 7180
方式三(path C tarball install-包安装版-外置数据库)
前置条件:(CM集群每个节点都要实现)
1)修改系统文件句柄数;
2)修改swap交换区空间;
3)禁用hugepage透明大页;
4)关闭防火墙和selinux;
5)修改主机名和映射文件;
6)实现免秘钥登录;
7)搭建共享源;
8)配置好ntp时间同步服务;
9)安装JDK;
1. 安装mysql(server节点或者单独数据库服务器)
方法同path B中安装mysql步骤一致;
2. 安装Server(Server节点)
1)下载地址http://archive.cloudera.com/cm5/cm/5/
2)解压cloudera-manager的tar包cloudera-manager*.tar.gz;
3)将解压后的cm-5.14.0 和cloudera目录放到/opt目录下;
4)初始化Cloudera Manager Server数据库
<tarball root>/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password
5) 移除嵌入的PostgreSQL配置文件(如果存在)
# Installer or package install
rm /etc/cloudera-scm-server/db.mgmt.properties
# Tarball install
rm <tarball root>/etc/cloudera-scm-server/db.mgmt.properties
3. 安装Agent(所有Agent节点)
1)修改/opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名;
2)拷贝/opt/cm-5.14.0到其它Agent节点;
4. 准备parcel包
拷贝CDH的parcel包到主节点的/opt/cloudera/parcel-repo/目录中
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel manifest.json
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.torrent KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.torrent
注意: 将下载的CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1的后缀.sha1文件改为.sha文件
5. 启动Agent和Server
1)通过/opt/cm-5.14.0/etc/init.d/cloudera-scm-agent start启动Agent服务(所有Agent节点都要启动Agent服务);
2)通过/opt/cm-5.14.0/etc/init.d/cloudera-scm-server start启动服务端;
注意: 安装Hive,或oozie的时候可能会报错,因为使用了MySQL作为hive的元数据存储,hive默认没有带mysql的驱动,令拷贝mysql驱动到Hive和Oozie的lib目录下即可
# cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-*.jar /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib/
# cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-*.jar /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/oozie/lib/
# cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-*.jar /var/lib/oozie/
hue的连接会有Unexpected error. Unable to verify database connection的报错,在hue安装的机器上安装一下python-lxml,即yum install -y python-lxml
即可。
3)登录web界面安装CM服务和CDH服务
http://clouderaManagerServer:7180/cmf/login