Cloudera Manager安装

Cloudera Manager 介绍

Cloudera Manager可以轻松管理任何生产规模的Hadoop部署。通过直观的用户界面快速部署,配置和监控群集 - 完成滚动升级,备份和灾难恢复以及可定制警报。 Cloudera Manager作为Cloudera Enterprise的集成和支持部分提供。

参考:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_intro_primer.html#concept_wfj_tny_jk



如下所示,Cloudera Manager的核心是Cloudera Manager Server。服务器托管管理控制台Web服务器和应用程序逻辑,负责安装软件,配置,启动和停止服务以及管理运行服务的集群。


Cloudera Manager安装_第1张图片

Cloudera Manager Server与其他几个组件一起工作:

  • agent - 安装在每台主机上。代理负责启动和停止进程,解包配置,触发安装和监视主机。
  • 管理服务 - 由一组执行各种监视,警报和报告功能的角色组成的服务。
  • 数据库 - 存储配置和监视信息。通常,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera Manager Server和监视角色使用不同的逻辑数据库。
  • Cloudera存储库 - 由Cloudera Manager分发的软件存储库。
  • 客户端 - 是与服务器交互的接口: 
    • 管理控制台 - 管理员用于管理集群和Cloudera Manager的基于Web的用户界面。
    • API - 与开发人员创建自定义Cloudera Manager应用程序的API。

Cloudera Manager安装和CDH

系统环境:CentOS6.5 
软件环境:Oracle JDK、Cloudera Manager Server 和 Agent 、数据库、CDH各组件

Cloudera安装步骤 

参考:https://www.cloudera.com/documentation/enterprise/latest/topics/installation_installation.html


  • 阶段1:系统前期准备阶段

# 关闭iptables、禁用selinux

/etc/init.d/iptables stop && chkconfig iptables off
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && setenforce 0#sestatus -vSELinux status: disabled表示已经关闭了

# hostname修改:分别对三台都进行更改,并且注意每台名称和ip,每台都要配上hosts[root@node1~]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=node1
# vi /etc/hosts
172.16.14.220 cdh.master.aniu.so master
172.16.14.221 cdh.node1.aniu.so node1
172.16.14.222 cdh.node2.aniu.so node2
172.16.14.223 cdh.node3.aniu.so node3
## 注:在每台服务器配置hosts,master和node1/2/3代表服务器的主机名

# 设置swap参数
echo never > /sys/kernel/mm/transparent_hugepage/defrag  #建议写到开启启动新里
sysctl -w vm.swappiness=0  # 建议写进sysctl.conf

# 设置ntp同步服务器时间
*/2 * * * * /usr/sbin/ntpdate 0.cn.pool.ntp.org >> /dev/null 2>&1
# NTP服务器设置(用于不同节点间实现时间同步)
所有节点配置NTP服务,集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:
master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
所有datanode节点以master节点为基础同步时间。

# NTP服务的安装和配置#yum -y install ntp更改master的节点## vi /etc/ntp.conf注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器(百度一下ntp服务器,我选的是上海交大的)server ntp.sjtu.edu.cn iburst在其他节点上把ntp指向master服务器地址即可(/etc/ntp.conf下)server 172.16.14.220 iburst  //所有节点
# 每台服务器之间设置免密认证打通SSH,设置ssh无密码登陆(所有节点)在主节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对。将公钥添加到认证文件中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,并设置authorized_keys的访问权限:chmod 600 ~/.ssh/authorized_keys。scp文件到所有datenode节点:
scp ~/.ssh/authorized_keys root@node2:~/.ssh/scp ~/.ssh/authorized_keys root@node3:~/.ssh/测试:在主节点上ssh node1/node2/node3,正常情况下,不需要密码就能直接登陆进去了。

  • 阶段2:安装JDK(忽略)
export JAVA_HOME=/usr/java/jdk.1.8.0_nn
# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
# 注 此处不用安装JDK,因为CM源有封装好的jdk,
  • 阶段3安装数据库 (主节点Master)
# rpm -qa | grep mysql
# rpm -e --nodeps mysql*
  • 1
  • 2
  • 3

#1 通过yum install mysql-server安装mysql服务器。chkconfig mysqld on设置开机启动。

# rpm方式安装mysql 

将下载好的mysql rpm包拷贝到服务器上然后解压

# tar -xvf  MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar 
  • 1

然后安装释出的全部rpm:rpm -ivh MySQL-*.rpm 
修改配置文件路径:cp /usr/share/mysql/my-default.cnf /etc/my.cnf 
在配置文件中增加以下配置并保存

#vim /etc/my.cnf
[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

以上就是安装好了。然后就初始化mysql 
然后初始化数据库执行

#/usr/bin/mysql_install_db
  • 1

注意这个时候我遇到以下问题:

"FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper "
  • 1
  • 2

经过查询需要安装perl-Module

[root@hadoop1 ~]# yum install -y perl-Module-Install.noarch
  • 1

等待安装完了然后就可以执行上面的初始化语句了

- 启动mysql
# service mysql restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL... SUCCESS! 
- 查看mysql root初始化密码
# cat /root/.mysql_secret
# The random password set for the root user at Fri Sep 16 11:13:25 2016 (local time): 9mp7uYFmgt6drdq3
- 登录进行去更改密码
# mysql -u root -p
mysql> SET PASSWORD=PASSWORD('123456');
- 允许mysql远程访问
mysql> update user set host='%' where user='root' and host='localhost';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 配置开机启动
# chkconfig mysql on
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

拷贝mysql-connector-java到各个节点指定目录下(所有的节点) 

首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.33-bin.jar,放到目录中。

# cp mysql-connector-java-5.1.36-bin.jar /usr/share/java/mysql-connector-java.jar
  • 1

创建数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
 create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
grant all on *.* to root@"%" Identified by "123456";
  • 阶段3:安装Cloudera Manager服务器

  • 解压cm tar包到指定目录所有服务器都要(或者在主节点解压好,然后通过scp到各个节点同一目录下)
[root@hadoop1 ~]#mkdir /opt/cloudera-manager
[root@hadoop1 ~]# tar -axvf cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz -C /opt/cloudera-manager
  • 1
  • 2
  • 创建cloudera-scm用户(所有节点)
[root@hadoop1 ~]# useradd --system --home=/opt/cloudera-manager/cm-5.7.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 1
  • 在主节点创建cloudera-manager-server的本地元数据保存目录
[root@hadoop1 ~]# mkdir /var/cloudera-scm-server
[root@hadoop1 ~]# chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
[root@hadoop1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera-manager
  • 1
  • 2
  • 3
  • 配置从节点cloudera-manger-agent指向主节点服务器
vim /opt/cloudera-manager/cm-5.7.2/etc/cloudera-scm-agent/config.ini
将server_host改为CMS所在的主机名即hadoop1
  • 1
  • 2
  • 主节点中创建parcel-repo仓库目录
[root@hadoop1 ~]# mkdir -p /opt/cloudera/parcel-repo
[root@hadoop1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
[root@hadoop1 ~]# cp CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo
注意:其中CDH-5.7.2-1.cdh5.7.2.p0.18-el5.parcel.sha1 后缀要把1去掉
  • 1
  • 2
  • 3
  • 4
  • 所有节点创建parcels目录
[root@hadoop1 ~]# mkdir -p /opt/cloudera/parcels
[root@hadoop1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
解释:Clouder-ManagerCDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中】
  • 1
  • 2
  • 3
  • 初始脚本配置数据库scm_prepare_database.sh(在主节点上)
[root@hadoop1 ~]# /opt/cloudera-manager/cm-5.7.2/share/cmf/schema/scm_prepare_database.sh mysql -hhadoop1 -uroot -p123456 --scm-host hadoop1 scmdbn scmdbu scmdbp
说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-hhadoop1:数据库建立在hadoop1主机上面。也就是主节点上面。
-uroot:root身份运行mysql。-123456:mysql的root密码是***。
--scm-host hadoop1:CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注意:如果执行的时候报一下错误,可能是配置host的有问题,127.0.0.1 localhost.hadoop1 这个localhost不能少

ERROR com.cloudera.enterprise.dbutil.DbProvisioner  - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8'
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
  • 1
  • 2

这里我也遇到以下另一个问题

ERROR com.cloudera.enterprise.dbutil.DbProvisioner  - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8'
java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
这里可以重新设置mysql的数据,然后刷新,或者直接将过期设置不检测
mysql> update user set password_expired='N' where user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 5  Changed: 2  Warnings: 0

mysql> flush privileges;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 启动主节点cloudera-scm-server
[root@hadoop1 ~]# cp /opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
[root@hadoop1 ~]#chkconfig cloudera-scm-server on
  • 1
  • 2

此时service cloudera-scm-serverstart的话会报错:“File not found: /usr/sbin/cmf-server”,因为cloudera-scm-server里面的变量路径配置不正确!

[root@hadoop1 ~]# vim /etc/init.d/cloudera-scm-server
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改为=/opt/cloudera-manager/cm-5.7.2/etc/default
此时service cloudera-scm-server start就不会报错了
同时为了保证在每次服务器重启的时候都能启动cloudera-scm-server,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-server restart
  • 1
  • 2
  • 3
  • 4
  • 启动cloudera-scm-agent所有节点
[root@hadoopX ~]# mkdir /opt/cloudera-manager/cm-5.7.2/run/cloudera-scm-agent
[root@hadoopX ~]# cp /opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
[root@hadoopX ~]# chkconfig cloudera-scm-agent on
同样此时service cloudera-scm-agent start的话会报错:File not found: /usr/sbin/cmf-agent,因为cloudera-scm-agent里面的变量路径配置不正确!参照cms的配置
同时为了保证在每次服务器重启的时候都能启动cloudera-scm-agent,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-agent restart
  • 1
  • 2
  • 3
  • 4
  • 5

在浏览器安装CDHs

等待主节点安装并且启动就在浏览器中进行操作了 
进入192168.160.130:7180 默认使用admin admin登录 
以下在浏览器中使用操作安装

选择express版本 
Cloudera Manager安装_第2张图片

组件提示 
Cloudera Manager安装_第3张图片 
配置主机!由于我们在各个节点都安装启动了agent,并且在中各个节点都在配置文件中指向hadoop1是server节点,所以各个节点的agent就会给agent发消息报告,所以这里我们可以在“当前管理的主机”中看到三个主机,全部勾选并继续,注意如果cloudera-scm-agent没有设为开机启动,如果以上有重启这里可能会检测不到其他服务器。 
Cloudera Manager安装_第4张图片

选择cdh 
Cloudera Manager安装_第5张图片

分发parcels到各个节点 
Cloudera Manager安装_第6张图片

之间正确性的检测 
Cloudera Manager安装_第7张图片 
Cloudera Manager安装_第8张图片 
Cloudera Manager安装_第9张图片

选择要安装的服务,这里选择所有服务 
Cloudera Manager安装_第10张图片

角色分配 
Cloudera Manager安装_第11张图片

数据库设置选择 
Cloudera Manager安装_第12张图片

集群审核,这里都默认的 
Cloudera Manager安装_第13张图片

开始安装Cloudera Manager安装_第14张图片

安装完成Cloudera Manager安装_第15张图片 
Cloudera Manager安装_第16张图片

这个时候安装完成了,可以在浏览器中进入192.168.160.130:7180地址,查看集群情况,我这里有挺多报警,大概查看下基本都是内存或者存储空间使用阈值的报警,由于我们是本地虚拟机的,所以这些条件都有限,这里暂时不care这些报警了 
Cloudera Manager安装_第17张图片 

安装完成!!!



  • 阶段3:安装Cloudera Manager服务器
# 配置cloudera-cdh源和cloudera-manager源
# cloudera-manager
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/cloudera-manager.repo

# cloudera-cdh
wget https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo

# 安装jdk和cloudera-manager
sudo yum install oracle-j2sdk1.7 -y
sudo yum install cloudera-manager-daemons cloudera-manager-server -y
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 阶段4:启动CM服务并通过浏览器访问
# /etc/init.d/cloudera-scm-server restart
Stopping cloudera-scm-server:                              [  OK  ]
Starting cloudera-scm-server:                              [  OK  ]

# 查看日志是否有报错,根据报错修改,然后再重新启动
tailf /var/log/cloudera-scm-server/cloudera-scm-server.log 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

浏览器访问:http://192.168.1.137:7180,用户名密码:admin admin

Cloudera Manager安装_第18张图片

Cloudera Manager安装_第19张图片

Cloudera Manager安装_第20张图片

  • 点击搜索 
    Cloudera Manager安装_第21张图片
    Cloudera Manager安装_第22张图片
    Cloudera Manager安装_第23张图片
    Cloudera Manager安装_第24张图片
    Cloudera Manager安装_第25张图片
    Cloudera Manager安装_第26张图片
    Cloudera Manager安装_第27张图片

Cloudera Manager安装_第28张图片
Cloudera Manager安装_第29张图片
Cloudera Manager安装_第30张图片

  • 创建必需的数据库
# 参考:https://www.cloudera.com/documentation/enterprise/latest/topics/install_cm_mariadb.html
# hive hue amon man nas navms oos 

create database metastore DEFAULT CHARACTER SET utf8;
grant all on metastore.* TO 'hive'@'%' IDENTIFIED BY 'Aniuhive123.';

create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'Aniuamon123.';

create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'Aniuhue123.';

create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY 'Aniurman123.';

create database navms DEFAULT CHARACTER SET utf8;
grant all on navms.* TO 'navms'@'%' IDENTIFIED BY 'Aniunavms123.';

create database nas DEFAULT CHARACTER SET utf8;
grant all on nas.* TO 'nas'@'%' IDENTIFIED BY 'Aniunas123.';

create database oos DEFAULT CHARACTER SET utf8;
grant all on oos.* TO 'oos'@'%' IDENTIFIED BY 'Aniuoos123.';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

Cloudera Manager安装_第31张图片

  • 集群更改设置 
    Cloudera Manager安装_第32张图片
    Cloudera Manager安装_第33张图片
    Cloudera Manager安装_第34张图片

Cloudera Manager安装_第35张图片

Cloudera Manager安装_第36张图片

系统自带的python不能升级,升级会导致安装CM agent出问题 
Cloudera Manager安装_第37张图片

Cloudera Manager安装_第38张图片

Cloudera Manager安装_第39张图片

Cloudera Manager安装_第40张图片

  • 看到下面的安装成功是很开心。

Cloudera Manager安装_第41张图片

注意事项

  • 建议使用全新的服务器或者虚拟机安装CM服务,避免其他环境(服务)对安装过程造成影响
  • 系统初始化操作一定要一致,python版本注意用系统自带即可
异常4:执行/opt/cm-5.1.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pxxxx --scm-host localhost scm scm scm
出现异常:

butil.DbCommandExecutor /opt/cm-5.4.7/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

log4j:ERROR Could not find value for key log4j.appender.A

log4j:ERROR Could not instantiate appender named "A".

错误原因:授权失败:

#授权root用户在主节点拥有所有数据库的访问权限

grant all privileges on *.* to 'root'@'yunwei' identified by 'Aniuops123.' with grant option;

flush privileges;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

重要

  • 卸载重装CM服务
# 笔者前期系统初始化部分很多操作都不完善,卸载重装CM步骤

# 安装CDH manager的服务器上面执行
yum remove cloudera-manager-server -y

# 在所有的服务器执行下面操作
/etc/init.d/cloudera-scm-agent stop
yum remove cloudera-manager-agennt-y
ps -ef | grep cmf | grep -v grep | awk '{print $2}' | xargs kill -9
find / -name clouder* | xargs rm -rf 
find / -name cmf* | xargs rm -rf 
# 把使用yum下载的相关包卸载干净。然后通过CDH manager 管理界面安装
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

参考链接:

  • http://gepeiyu.com/2017/01/20/cloudera-chi-xian-an-zhuang/
  • http://blog.csdn.net/ymh198816/article/details/52423200



你可能感兴趣的:(Cloudera Manager安装)