简介
Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
架构
(1)Cloudera Repository: 软件由Cloudera管理分布存储库(类似Maven)
(2)Server : 负责软件安装,配置,启动,停止服务,管理服务运行的群集
(3)Management Service : 由一组各种监控,警报和报告功能角色的服务
(4)Database : 存储配置和监视信息
(5) Agent : 安装在每台主机上,负责启动和停止的过程,配置监控主机
(6)Clients : 用于与服务器进行交互的接口(API和Admin Console)
搭建
免密登陆
配置三台虚拟机,并且设置ssh免密登陆
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)将公钥拷贝到要免密登录的目标机器上
[root@hadoop102 .ssh]$ ssh-copy-id hadoop102
[root@hadoop102 .ssh]$ ssh-copy-id hadoop103
[root@hadoop102 .ssh]$ ssh-copy-id hadoop104
重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。
配置集群同步脚本
1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下
[root@hadoop102 ~]$ mkdir bin
[root@hadoop102 ~]$ cd bin/
[root@hadoop102 bin]$ vi xsync
编写xsync脚本
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=1; host<4; host++)); do
echo ------------------- testnote0$host --------------
rsync -av $pdir/$fname $user@testnote0$host:$pdir
done
安装JDK(三台)
/opt目录下创建module和software文件夹,将jdk-8u144-linux-x64.tar.gz导入到hadoop102的/opt/software目录,tar
-zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/ ,配置环境变量
[root@hadoop102 software]$ vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
修改后的文件生效
source /etc/profile
测试JDK是否安装成功
[root@testnote01 module]# java -version
java version “1.8.0_181”
同步到其他机器
集群整体操作脚本
在/root/bin目录下创建脚本xcall.sh
[root@testnote01 bin]# vim xcall.sh
#! /bin/bash
for i in testnote01 testnote02 testnote03
do
echo --------- $i ----------
ssh $i "$*"
done
chmod 777 xcall.sh
如果xcall.sh jps 发现找不到命令
将/etc/profile文件追加到~/.bashrc后面
[root@hadoop102 module]# cat /etc/profile >> ~/.bashrc
[root@hadoop103 module]# cat /etc/profile >> ~/.bashrc
[root@hadoop104 module]# cat /etc/profile >> ~/.bashrc
因为jps不是系统命令
安装mysql,存储元数数据
查看mysql是否安装
[root@testnote01 bin]# rpm -qa|grep mysql
mysql-5.1.73-8.el6_8.x86_64
mysql-libs-5.1.73-8.el6_8.x86_64
mysql-server-5.1.73-8.el6_8.x86_64
如果安装MYSQL,先卸载,卸载后再查看
[root@testnote01 bin]# rpm -e --nodeps mysql-5.1.73-8.el6_8.x86_64
[root@testnote01 bin]# rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
[root@testnote01 bin]# rpm -e --nodeps mysql-server-5.1.73-8.el6_8.x86_64
上传mysql包,并解压
[root@testnote01 module]# unzip mysql-libs.zip
Archive: mysql-libs.zip
creating: mysql-libs/
inflating: mysql-libs/MySQL-client-5.6.24-1.el6.x86_64.rpm
inflating: mysql-libs/mysql-connector-java-5.1.27.tar.gz
inflating: mysql-libs/MySQL-server-5.6.24-1.el6.x86_64.rpm
进入mysql-lib目录下,安装mysql服务端
rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
出现bug,mysql未卸载干净,参考https://www.cnblogs.com/javahr/p/9245443.html
然后重新安装服务端,查看产生的随机密码
[root@testnote01 mysql-libs]# cat /root/.mysql_secret
The random password set for the root user at Wed Apr 17 13:37:12 2019 (local time): 5JdUYDAhJUFXf444
启动mysql并查看状态
[root@testnote01 mysql-libs]# service mysql start
Starting MySQL. SUCCESS!
[root@testnote01 mysql-libs]# service mysql status
SUCCESS! MySQL running (1477)
安装mysql客户端
[root@testnote01 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
链接MySQL(密码替换成产生的随机密码)
[root@testnote01 mysql-libs]# mysql -uroot -p5JdUYDAhJUFXf444
修改密码
mysql> SET PASSWORD=PASSWORD(‘000000’);
Query OK, 0 rows affected (0.00 sec)mysql> exit
Bye
mysql中user表中主机配置.配置只要是root用户和密码,在任何主机上都能登陆mysql数据库
进入mysql
[root@testnote01 mysql-libs]# mysql -uroot -p000000
显示数据库
mysql> show databases;
使用MYSQL
mysql> use mysql;
显示数据库中表
show tables;
展示user表的结构
mysql> desc user;
查询User表
select User, Host, Password from user;
修改user表,把Host表内容修改为%
mysql>update user set host=’%’ where host=‘localhost’;
删除root用户下的其他host
mysql> delete from user where Host=‘testnote01’;
mysql> delete from user where Host=‘127.0.0.1’;
mysql> delete from user where Host=’::1’;
刷新
mysql> flush privileges;
退出
mysql>quit;
创建CM用的数据库
在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
1)启动数据库
[root@hadoop102 ~]# mysql -uroot -p000000
2)集群监控数据库
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3)Hive数据库
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4)Oozie数据库
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5)Hue数据库
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6)关闭数据库
mysql> quit;
下载第三方依赖
保证所有节点都有依赖环境
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite
cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
永久关闭SELINUX
修改配置文件/etc/selinux/config
[root@testnote01 mysql-libs]# vim /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
同步/etc/selinux/config配置文件到所有机器
xsync /etc/selinux/config
所有机器全部重启
xcall.sh reboot