CentOS7的Cloudera Manager5.8安装

系统要求

http://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_cm_requirements.html
内存(最低要求): 主机 4G 节点 2G

相关包下载:

  1. Cloudera Manager下载地址: http://archive.cloudera.com/cm5/cm/5/ 选择cloudera-manager-centos7-cm5.8.0_x86_64.tar.gz
  2. CDH5 下载地址: http://archive.cloudera.com/cdh5/parcels/5/ 选择以下三个文件: CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha1(下载后重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el7.parcel.sha) manifest.json
  3. JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads 选择最新的JDK rpm包
  4. cm agent与cm daemons下载地址: http://archive-primary.cloudera.com/cm5/redhat/7/x86_64/cm/5.8/RPMS/x86_64/ 选择以下两个文件: cloudera-manager-agent-5.8.1-1.cm581.p0.7.el7.x86_64.rpm cloudera-manager-daemons-5.8.1-1.cm581.p0.7.el7.x86_64.rpm
  5. Mysql JDBC驱动下载地址: http://dev.mysql.com/downloads/connector/j/ 选择mysql-connector-java-5.1.45.tar.gz

准备工作:系统环境搭建

++以下操作均用root用户操作++

1. 网络配置(所有节点)

vi /etc/sysconfig/network修改hostname:

NETWORKING=yes
HOSTNAME=master

通过service network restart重启网络服务生效。

vi /etc/hosts
修改ip与主机名的对应关系
192.168.1.101 master
192.168.1.102 slave1
192.168.1.103 slave2
192.168.1.104 slave3

注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要 写进去,否则启动Agent的时候会提示hostname解析错误。

2. 打通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@slave1:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2:~/.ssh/
scp ~/.ssh/authorized_keys root@slave3:~/.ssh/
在主节点上ssh slave1,正常情况下,不需要密码就能直接登陆进去了。

3. 安装Oracle的Java(所有节点)

CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。

卸载自带的OpenJdk,使用rpm -qa | grep java查询java相关的包,使用rpm -e --nodeps 包名卸载之。

去Oracle的官网下载jdk的rpm安装包,并使用rpm -ivh 包名安装之。

由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment

4. 安装配置MySql(主节点)

通过yum install mysql-server安装mysql服务器。
chkconfig mysqld on设置开机启动,并service mysqld start启动mysql服务,并根据提示设置root的初试密码:
mysqladmin -u root password '123456'

mysql -uroot -p123456
进入mysql命令行,创建以下数据库:
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

设置root授权访问以上所有的数据库:
#授权root用户在主节点拥有所有数据库的访问权限
grant all privileges on *.* to 'root'@'master' identified by '123456' with grant option;
flush privileges;

5. 关闭防火墙和SELinux

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

关闭防火墙:
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)

关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):
setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

CentOS 7.0
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

6. 所有节点配置NTP服务

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:

master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
所有datanode节点以master节点为基础同步时间。

所有节点安装相关组件:yum install ntp。完成后,配置开机启动:chkconfig ntpd on,检查是否设置成功:chkconfig --list ntpd其中2-5为on状态就代表成功。
centos 7:
systemctl enable ntpd
systemctl is-enabled ntpd

1. 主节点配置

位置/etc/ntp.conf

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用65.55.56.206作为对时中心,ntpdate -u 65.55.56.206。

ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server cn.ntp.org.cn prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置文件完成,保存退出,启动服务,执行如下命令:
1 service ntpd start
2 ntpstat
检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:

synchronised to NTP server () at stratum 2
time correct to within 74 ms
polling server every 128 s

如果出现异常请等待几分钟,一般等待5-10分钟才能同步。

配置ntp客户端(所有datanode节点)

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#这里是主节点的主机名或者ip
server master
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:
ntpdate -u master(主节点ntp服务器)

这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。启动服务:
service ntpd start

因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿

正式开工

安装CM agent 和CM Daemons安装

先用scp将cm agent与cm daemons复制到所有节点
用yum进行安装:
yum --nogpgcheck localinstall cloudera-manager-agent-*.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-daemons-*.x86_64.rpm

安装Cloudera Manager Server 和Agent
主节点解压安装

cloudera manager的目录默认位置在/opt下,解压:
tar xzvf cloudera-manager*.tar.gz
将解压后的cm-5.8.0和cloudera目录放到/opt目录下。

为Cloudera Manager 5建立数据库:

首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.45-bin.jar,放到/opt/cm-5.8.0/share/cmf/lib/中。

在主节点初始化CM5的数据库:

/opt/cm-5.8.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pxxxx --scm-host localhost scm scm scm
Agent配置

修改/opt/cm-5.8.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

同步Agent到其他节点

scp -r /opt/cm-5.8.0 root@slave1:/opt/

在所有节点创建cloudera-scm用户

useradd --system --home=/opt/cm-5.8.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
准备Parcels,用以安装CDH5

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo如果没有需要手动创建,)。

相关的文件如下:

CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel
CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.sha
manifest.json

最后将CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.sha1,重命名为CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.8.0-1.cdh5.8.0.p0.12-el7.parcel文件。

相关启动脚本
通过/opt/cm-5.8.0/etc/init.d/cloudera-scm-server start启动服务端。

通过/opt/cm-5.8.0/etc/init.d/cloudera-scm-agent start启动Agent服务。

注意:如果AGent启动失败,则手动创建一个cloudera-scm-agent文件夹:
mkdir -p /opt/cm-5.8.0/run/cloudera-scm-agent/
然后再使用命令启动agent

我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。

CDH5的安装配置

Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。

这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:
2321.png
选择免费版本:
2322.png
指定集群主机:
在搜索框中填写所有的集群的Hostname或者IP,搜索
2323.png
如果所有的主机的agent都启动成功则会有下图显示,没有则重新启动Agent,或者检查日志报错:
2324.png
如果parcel文件事先放在指定文件夹中,则会找到相应的版本:

注:如果CDH的安装目录不在/opt下,则需要点击更多选项,修改parcel目录及本地parcel存储路径为正确的目录,然后重启agent和server即可

cdh.png

点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。

211.png

注意:在安装过程中如果一直卡在“正在激活”过程中,检查相应节点的/opt/cm-5.8.0/log/cloudera-scm-agent下的日志,如果出现connection refuse的错误信息。
则可以通过将已完成激活的主机上的parcels文件夹用scp命令复制到出问题的agent相应位置上,再在parcels文件夹下创建一个快捷方式:
ln -s CDH CDH-5.8.0-1.cdh5.8.0.p0.42/
然后分配就完成了。

212.png

  1. Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响 通过echo 10 > /proc/sys/vm/swappiness即可解决。
  1. 已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置。 通过 echo never > /sys/kernel/mm/transparent_hugepage/defrag解决

213.png

检查全部通过,点击继续,进入集群设置,选择自定义服务,可以根据自己需要配置安装相应的服务:

214.png

215.png

根据自己的需要进行修改配置:

216.png

数据库配置:

111.png

开始安装启动相应组件:
112.png

等待集群配置安装完成!

注意:倘若过程中图形化安装过程中失误导致安装失败,需要重新图形化安装:
231.png