集群规划:
ip
hostname
用途
10.101.6.11
tctrl.test.hdp.cn
yum源机器
10.101.6.6
tcmmaster.test.hdp.cn
cm server, mysql
10.101.6.10
tcmslave1.test.hdp.cn
cm agent, namenode, resourcemanager
10.101.6.5
tcmslave2.test.hdp.cn
cm agent, namenode, resourcemanager
10.101.6.7
tcmslave3.test.hdp.cn
cm agent, datanode, nodemanager
注:cm agent, datanode, nodemanager可以根据实际情况增加多台,本次测试只搭建了一台
一.mysql相关(tcmmaster.test.hdp.cn)
注意:mysql可以单独安装在一台机器上,也可以和cm server安装在同一台机器,此次我们选择mysql和cm server安装在同一台机器,即tcmmaster.test.hdp.cn
1.ssh tcmmaster.test.hdp.cn
2.vim /etc/yum.repos.d/MariaDB.repo
3.yum install MariaDB-server MariaDB-client -y
4.启动mysql
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
5.初始化MySql账号
①进入mysql客户端:mysql
②创建一个临时用户(cm装完后可以删掉该用户):grant all on . to 'temp'@'tcmmaster.test.hdp.cn' identified by 'temp' with grant option;
注:'temp'@'tcmmatser.test.cn'是由于mysql客户端和mysql服务端安装在一个机器上,所以@后面需要指定hostname(tcmmatser.test.cn);
若mysql客户端和mysql服务端不在同一个机器上,则应该是:grant all on . to 'temp'@'%' identified by 'temp' with grant option;
二.创建repo( tctrl.test.hdp.cn)
1.下载相关软件
image.png
②下载cm二进制安装包(红框内软件)
http://archive.cloudera.com/cm5/installer/5.14.4/
image.png
③下载parcel(红框内软件,el7表示centos7版本)
http://archive.cloudera.com/cdh5/parcels/5.14.4/
image.png
④下载jdk的rpm包
jdk-8u131-linux-x64.rpm
2.创建相关目录
①mkdir -p /software/cm5/redhat/7/cm/5144/RPMS
将所有rpm包放入路径: /software/cm5/redhat/7/cm/5144/RPMS
image.png
其他软件放到/software下,并将sha1改为sha
image.png
②mkdir -p /var/www/html
建立软链:ln -s /software/cm5 /var/www/html/cm5
3.创建repo
①先安装createrepo: yum install -y createrepo
②cd /software/cm5/redhat/7/cm/5144/RPMS
③createrepo .
4.安装httpd服务
yum install -y httpd
启动httpd:systemctl start httpd
注意:如果没有这步,yum安装的时候会报错
报不能访问:tctrl.test.hdp.cn:80的错误
此时tctrl.test.hdp.cn这台机器的repo就制作好了,在其他机器上配置相应的repo文件就可以进行yum安装软件。
三.安装并操作cm server
1.进入tcmmaster.test.hdp.cn
2.编辑repo文件
vim /etc/yum.repos.d/cm5.repo
增加如下内容:
[cm5]
name=cm5.14.4
baseurl=http://tctrl.test.hdp.cn/cm5/redhat/7/cm/5144/RPMS/
failovermethod=priority
enabled=1
gpgcheck=0
3.安装cm server
yum install -y cloudera-manager-server
yum install -y cloudera-manager-server-db-2
yum install -y enterprise-debuginfo
yum install -y jdk
yum install -y oracle-j2sdk1.7 #CM安装需要这个,否则会在40%重新联网下载,造成安装速度非常缓慢
4.执行数据库初始化脚本
/usr/share/cmf/schema/scm_prepare_database.sh mysql -h tcmmaster.test.hdp.cn -utemp -ptemp --scm-host tcmmaster.test.hdp.cn scm scm scm
这3个scm分别表示数据库名,用户名,密码
此时执行初始化会报错如下:
image.png
原因是缺少mysql-connecter的jar包:需要mysql-connector-java-5.1.44-bin.jar将放到目录:/usr/share/cmf/lib (该Jar包请自行下载)
再次执行数据库初始化脚本:/usr/share/cmf/schema/scm_prepare_database.sh mysql -h tcmmaster.test.hdp.cn -utemp -ptemp --scm-host tcmmaster.test.hdp.cn scm scm scm
成功:
image.png
此时数据库里面能看到新增加了一个库:scm
image.png
5.将parcel文件放到/opt/cloudera/parcel-repo/目录下(所有CDH-5.14.4-1.cdh5.14.4.p0.3-el7* 文件)
chown -R cloudera-scm:cloudera-scm /opt/cloudera
chmod 755 /opt/cloudera/parcel-repo/*
6.安装cloduera manager二进制安装包
①将之前下载的 cloudera-manager-installer.bin放到cm server这台机器的/software目录下,没有则先创建/software目录
mkdir /software
②chmod u+x /software/cloudera-manager-installer.bin
③执行:/software/cloudera-manager-installer.bin --skip_repo_package=1 - 一定要带上该参数,不然会更新为最新版本,需要等待在线下载。
如果提示需要删除配置文件,则删除该文件:
image.png
rm -rf /etc/cloudera-scm-server/db.properties
然后一直next即可。
查看cm-server:service cloudera-scm-server status(若没有启动的话则需要启动)
四.安装cm agent(需要在每台agent机器执行)
1.增加cm5.repo文件
vim /etc/yum.repos.d/cm5.repo
增加如下内容:
[cm5]
name=cm5.14.4
baseurl=http://tctrl.test.hdp.cn/cm5/redhat/7/cm/5144/RPMS/
failovermethod=priority
enabled=1
gpgcheck=0
2.安装agent相关软件
yum install -y cloudera-manager-agent
yum install -y jdk
3.修改配置文件
将 /etc/cloudera-scm-agent/config.ini中的server_host改为cm server所在机器(tcmmaster.test.hdp.cn),如:
image.png
4.启动所有agent机器的 cloudera-scm-agent服务
/etc/init.d/cloudera-scm-agent start
cm agent安装成功!
五.页面操作cm
1.登录页面 tcmmaster.test.hdp.cn:7180 - 用户名:admin,密码:admin
2.agent启动后会自动出现启动agent的主机
image.png
image.png
3.集群机器角色分配:
image.png
4.数据库设置:
这一步使用之前安装在tcmmaster.test.hdp.cn上的数据库,测试数据库连接有以下两种报错:
image.png
先解决错误①:
原因:tcmslave1.test.hdp.cn和tcmslave2.test.hdp.cn缺少jar包:mysql-connector-java-5.1.44-bin.jar
解决办法:
分别进入到tcmslave1.test.hdp.cn和tcmslave2.test.hdp.cn,步骤如下:
mkdir /usr/share/java
然后将之前准备好的mysql-connector-java-5.1.44-bin.jar放入/usr/share/java目录
mv /usr/share/java/mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar (需要改名,否则仍然报错)
再点击“测试连接”则发现错误①已经解决,只剩下错误②
image.png
再解决错误②:
原因:应该要设置tcmmaster.test.hdp.cn上的数据库使得tcmslave1.test.hdp.cn和tcmslave2.test.hdp.cn能够连接
解决办法:
ssh tcmmaster.test.hdp.cn
执行命令:mysql
===解决Hive===
create database hive;
grant all on hive.* to 'hive'@'tcmslave2.test.hdp.cn' identified by '123456' with grant option;
===解决hue===
create database hue;
grant all on hue.* to 'hue'@'tcmslave2.test.hdp.cn' identified by '123456' with grant option;
===解决Activity Monitor#===
create database amon;
grant all on amon.* to 'amon'@'tcmslave1.test.hdp.cn' identified by '123456' with grant option;
===解决Oozie Server===
create database oozie_oozie_server;
grant all on oozie_oozie_server.* to 'oozie_oozie_server'@'tcmslave2.test.hdp.cn' identified by '123456' with grant option;
注意:系部分内容一定要与页面上的主机名,数据库名,用户,密码对应,不然会有问题!!!!
然后再点击“测试连接”则显示success
5.集群设置
image.png
注:目前搭建的Hadoop和Yarn集群是非HA集群,有兴趣的同学可以在cm页面研究下怎么转为HA集群