CentOS7.3下安装Cloudera Manager5.11.1

来源:互联网 发布:知乎 陈廖宇 编辑:程序博客网 时间:2024/06/06 09:43

概述

最近公司需要研究大数据方向的内容,经初步讨论,决定使用CDH版本
的Hadoop,使用Cloudera生态下的Cloudera Manager平台。CDH(Cloudera’s Distribution,
including Apache Hadoop),是hadoop分支中的一种,由Cloudera
维护,基于稳定版本的Apache hadoop构建,并继承了许多补丁,可以直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关
的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大
简化。

准备条件

本文环境是在虚拟机上搭建的分布式环境。
- 硬件
- 主节点 Intel Core i5-4200H,12G,80G 从节点Intel Core i5-5200u,12G,40G*2
- 软件:
- 操作系统 : CentOS7.3 GNOME DESTOP + development tools组包
- Java : 这里使用的是jdk-8u121-Linux-x64.rpm
- MySQL : 这里使用的是mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar以及mysql-connector-java-5.1.43-bin.jar
- Cloudera Manager
- 下载地址 : https://archive.cloudera.com/cm5/cm/5/
- 这里下载的是 : https://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz
- CDH安装包
- 下载地址 : http://archive.cloudera.com/cdh5/parcels
- 这里用的是 :CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel和CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1

注意对应的版本号,CentOS7对应的是el7
系统环境配置

首先修改各台机器上的主机名,如本人设置为centos96,centos74,centos72。

# hostnamectl set-hostname centos96

修改主机名与IP的对应关系,向所有服务器配置/etc/hosts文件,向其中添加行

# vim /etc/hosts分别修改:127.0.0.1 localhost.centos74所有服务器都要修改:192.168.2.74 centos74192.168.2.96 centos96192.168.2.72 centos72#vi /etc/hostname分别修改:centos74

配置SSH无秘钥登录服务,注意每台机器上都要配置

# ssh-keygen -t rsa# ssh-copy-id centos74# ssh-copy-id centos96# ssh-copy-id centos72

如果出现:Warning: the ECDSA host key for 'centos74' differs from the key for the IP address '192.168.2.74'
解决如下:ssh-keygen -R 192.168.1.123

所有服务器均创建安装用户:cloudera

# groupadd cloudera# useradd -g cloudera cloudera# echo "*********" | passwd --stdin cloudera

所有服务器为cloudera用户配置sudo权限

# chmod u+w /etc/sudoers# echo "cloudera ALL=(root)NOPASSWD:ALL" >> /etc/sudoers# chmod u-w /etc/sudoers

所有服务器关闭防火墙和Selinux服务

关闭防火墙# systemctl stop firewalld# systemctl disable firewalld关闭Selinux# vim /etc/sysconfig/selinuxSELINUX=disabled重启才能生效重启后检查#sestatus -vSELinux status: disabled表示已经关闭了

重启后生效。

所有服务器设置文件打开数量及最大进程数

cp /etc/security/limits.conf /etc/security/limits.conf.bak# echo "* soft nproc 32000" >>/etc/security/limits.conf# echo "* hard nproc 32000" >>/etc/security/limits.conf# echo "* soft nofile 65535" >>/etc/security/limits.conf# echo "* hard nofile 65535" >>/etc/security/limits.conf

配置集群时间同步服务:通过ntp服务配置
ntp主节点配置:
所有节点

# yum -y install ntp

更改配置文件/etc/ntp.conf
在master节点namenode节点
注释掉原有的server指向把时间服务器的域名地址指向一个靠谱可连的时间服务器,我选择的是ntp.api.bz.

# vi /etc/ntp.conf#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburstserver ntp.api.gz iburst

在其余的节点上,把时间服务器的server指向master namenode节点

# vi /etc/ntp.conf#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburstserver 192.168.2.74 iburst

所有节点

# systemctl start ntpd# systemctl enable ntpdCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

安装Java

每台服务器需要安装相同版本的Java。这里采用的是RPM方式安装Java.

CentOS7自带了OpenJDK,但并不适用Cloudera Manager,所以首先检查安装的Java,卸载自带的OpenJDK。

[root@localhost ~]# rpm -qa | grep javatzdata-java-2014i-1.el7.noarchjava-1.7.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64java-1.7.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64java-1.8.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64java-1.8.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64

删除上面的java包

# rpm -e --nodeps $PACKGENAME

安装Oracle JDK

# rpm -ivh jdk-8u131-linux-x64.rpm

Java默认安装在/usr/java/目录下

配置Java环境变量,在/etc/profile后添加:

# vim /etc/profileJAVA_HOME=/usr/java/jdk1.8.0_131JRE_HOME=/usr/java/jdk1.8.0_131/jrePATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libexport JAVA_HOME JRE_HOME PATH CLASSPATH

使环境变量生效

# source /etc/profile

建议手动指定一下java的使用版本,避免在安装Spark组件时报错

alternatives –config java 

安装MySQL

这里使用的是mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar安装,解压缩后会有Mysql相应的rpm文件,
我们只需要依次安装一下几个rpm即可。

mysql-community-common-5.7.18-1.el7.x86_64.rpm mysql-community-libs-5.7.18-1.el7.x86_64.rpm mysql-community-client-5.7.18-1.el7.x86_64.rpm mysql-community-server-5.7.18-1.el7.x86_64.rpm

1、和安装Java一样,首先需要检查是否已经安装了MySQL。

# rpm -qa|grep mysql 如果有的话请先卸载

然后再依次安装上述的rpm文件,因为它们存在相互依赖。
2、安装完毕后启用mysql服务。

# systemctl start mysqld# systemctl status mysqld

3、这种方式完成安装MySQL后,会自动随机生成一个原始密码。登录并修改密码,否则报密码过期错误。

# cat /var/log/mysqld.log | grep password2017-05-13T05:39:44.497086Z 1 [Note] A temporary password is generated for root@linuxvnode0: sjsO:Pin<5c_

使用上述密码登录MySQL

# mysql -uroot -pEnter password:

登录成功后:

mysql> SET PASSWORD = PASSWORD('**********');Query OK, 0 rows affected, 1 warning (0.00 sec)

注意此处密码设置必须用强密码,否则安装CM时报密码过期错误。

4、设置root授权访问以上所有的数据库,因为CM安装时会创建数据库,这里设置后安装CM时可以设置数据库的host为linuxvnode0

mysql>grant all privileges on *.* to 'root'@'pwd' identified by '****' with grant option;mysql>flush privileges;

5、由于本人需要安装hive做为数据仓库,同时使用了Mysql作为Hive的存储方式,所以这里单独为hive建立一个库。

#为hive建库hivemysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

个人感觉此处必须得新建一个库与CM安装时建立的库分开,否则启动Hive时会报角色无法启动的错误。

安装Cloudera Manager
1、来到了重头戏了,首先主节点上解压相应的文件cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz 到/opt/目录下。

# tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/

3、将mysql-connector-java-5.1.43-bin.jar放到/opt/cm-5.11.1/share/cmf/lib/usr/share/java

# mkdir -p /usr/share/java# mv mysql-connector-java-5.1.43-bin.jar mysql-connector-java.jar# cp mysql-connector-java.jar /opt/cm-5.11.1/share/cmf/lib/# cp mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar

注意:最好将名字命名为mysql-connector-java.jar,不然后面安装HIVE等可能会报找不到connector的错误。

4、初始化数据库

/opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh [-数据库类型] [-创建的数据库名] [-h主机名] [-u用户名] [-p密码]# /opt/cm-5.11.1//share/cmf/schema/scm_prepare_database.sh mysql cm -h127.0.0.1 -uroot -p123456 -P3306 --scm-host 127.0.0.1 scm scm scm

说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-h127.0.0.1:数据库建立在127.0.0.1主机上面。也就是主节点上面。
-uroot:root身份运行mysql。-123456:mysql的root密码是*
--scm-host 127.0.0.1:CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。

5、配置agent:修改/opt/cm-5.11.1/etc/cloudera-scm-agent/config.ini文件修改server_host为主节点主机名。

6、每台服务器上执行命令创建scm用户

# useradd --system --home=/opt/cm-5.11.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

7、将Agent同步到其他节点

# scp -r /opt/cm-5.11.1 centos72:/opt# scp -r /opt/cm-5.11.1 centos96:/opt

8、主节点中创建parcel-repo仓库目录

# mkdir -p /opt/cloudera/parcel-repo# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo# cp CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo注意:其中CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1 后缀要把1去掉

Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中

9、执行相应的脚本,设置自启动,并启动服务。

主节点启动 :

# cp /opt/cm-5.11.1/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server# /opt/cm-5.11.1/etc/init.d/cloudera-scm-server start# chkconfig cloudera-scm-server on

同时为了保证在每次服务器重启的时候都能启动cloudera-scm-server,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-server restart

所有节点(包括主节点)启动 :

# cp /opt/cm-5.11.1/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent# chkconfig cloudera-scm-agent on# /opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start

同上,开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-agent restart
注意:
A、pstree: command not found:解决方法

# yum -y install psmisc

10、启动成功后输入 centos74:7180即可进入Cloudera Manager运维平台界面,初始密码为 admin/admin.
(可能CM启动较久,需要一点时间才能进入) 进入后按照提示即可安装集群以及相应组件。

如若安装hive组件且使用Mysql类型的数据仓库,那么需要为hive增加MySQL connector

cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar

CM配置

由于机器集群已经安装好,下面借用了参考地址中的图片说明CM的配置。
1、一开始是进入登录界面,输入admin/admin即可登录。
初始化界面
2、选择部署的版本。
这里写图片描述
可以看到,现在的免费版本没有节点个数的限制了。

3、继续下一步,选择安装的CM的版本。

这里写图片描述

4、当各个Agent节点正常启动后,会展示每个节点的安装情况。耐心等待安装完即可。

这里写图片描述

5、安装检查中可能提示以下问题

这里写图片描述

按照上面的提示、解决方法如下:

# sysctl -w vm.swappiness=10 # echo "vm.swappiness=10" >>/etc/sysctl.conf # echo never > /sys/kernel/mm/transparent_hugepage/defrag # echo never > /sys/kernel/mm/transparent_hugepage/enabled

6、选择需要安装服务的主机

这里写图片描述

7、选择要安装的服务,这里选择所有服务 。
这里写图片描述

角色分配

这里写代码片

8、数据库设置选择

这里写图片描述

注意:
A、数据库不能打开GITD模式,CDH貌似不支持
B、如果出现了数据库连接不上,或者无法识别数据库连接,检查安装下面两个

rpm -ivh bigtop-utils-0.7.0+cdh5.11.1+0-1.cdh5.11.1.p0.6.src.rpmyum install -y python-lxml mw_ssl_code

参考地址:http://blog.csdn.net/shushugood/article/details/76686062
下载的地址:http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.11.1/SRPMS/

9、集群审核,这里都默认的

这里写图片描述

10、开始安装

这里写图片描述

注意:
A、找不到JAVA_HOME:可进入:http://192.168.2.74:7180/cmf/hardware/hosts
在主机->所有主机->配置->高级,中设置java的路径的
参考:官方文档地址
B:Hive version information not found.
界面内hive->配置中
hive.metastore.schema.verification 设置为false 去掉勾选。

11、下一步,配置完成

这里写图片描述