手把手搭建Cloudera Manager(CM) hadoop集群

集群规划:

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

增加如下内容:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1

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.下载相关软件

①下载cm相关rpm包(红框内的软件)
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.4/RPMS/x86_64/

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集群

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于Tensorflow-gpu的mnist手写数字识别(卷积神经网络CNN)-学习笔记(一) 一、构建模型 fr...
    雨_随风阅读 98评论 0 0
  • 起床:8点半 就寝:预计11点 天气:晴天☀️ 心情:平静 纪念日:学习吉他🎸 每日早安语录: 同一件事,有人把它...
    追忆v淡忘阅读 328评论 0 0
  • 第三章 内董会小组体验的架构体系:私董六脉 私董论道 一般在小组会议上午,提升参与感,排除拘谨隔阂,为下午会议打好...
    真言臻宇阅读 517评论 0 6
  • 我看着一条条鲜活的生命融入泥土 我看着狼烟烽火遥寄,欲却我心绝望 那时,我孤身引领兵士深陷敌阵 沉沉浮浮,入眼皆是...
    伶姑娘阅读 191评论 0 0
  • 提到“梦想”,大家也许一点都不陌生。梦想,一个熟悉而又美好的词语,它是心灵上的一种寄托,是使人前进的目标。...
    钟情此生阅读 168评论 0 1