Cloudera Manager/CDH 5.13.0 详细离线部署流程

环境约束:
OS:CentOS 7.2-1511-x86_64
JDK:jdk1.8.0_152
Cloudera Manager: centos7-cm5.13.0_x86_64
CDH:5.13.0-1.cdh5.13.0.p0.29-el7
Namenode:192.168.6.240/node100
Datanode:
192.168.6.240/node100
192.168.6.241/node101
192.168.6.242/node102
NTP server:192.168.6.132

文中所用软件下载链接:
CentOS 7.2 1511 DVD 镜像
JDK
Cloudera Manager tarball
CDH parcel、sha1 file、manifest.json
(sha1 file下载后需要改后缀名为.sha)
Mysql Server、Mysql Client、Mysql common、Mysql libs
JDBC Driver


一、基本环境准备

1. 关闭防火墙和iptables
systemctl stop firewalld.service
systemctl stop iptables.service
systemctl disable firewalld.service
systemctl disable iptables.service
2. 关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3. 配置ntp时间同步服务端

本文配置过程中并未采用集群内的节点作为服务端,实际部署中可以使用集群内的节点作为服务端。

vim /etc/ntp.conf

打开ntp配置文件,改为以下内容

driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.6.0 mask 255.255.255.0 nomodify notrap
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 iburst
server  127.127.1.0  #local clock
fudag   127.127.1.0     stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys     

或者直接在终端执行:

cat << EOF > /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.6.0 mask 255.255.255.0 nomodify notrap
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 iburst
server  127.127.1.0  #local clock
fudag   127.127.1.0     stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys  
EOF

然后启动ntp服务并加入开机自启:

service ntpd start
chkconfig ntpd on
4. 配置ntp时间同步客户端

打开 /etc/ntp.conf 文件,改为我们自己配置好的内容(以192.68.6.132为例)

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict ::1
restrict 192.168.6.132 mask 255.255.255.0 nomodify notrap
server 192.168.6.132
server 127.127.1.0
fudge 127.127.1.0 statum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
SYNC_HWCLOCK=yes

或者直接在终端执行:

cat << EOF > /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict ::1
restrict 192.168.6.132 mask 255.255.255.0 nomodify notrap
server 192.168.6.132
server 127.127.1.0
fudge 127.127.1.0 statum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
SYNC_HWCLOCK=yes
EOF

启动ntp服务并加入开机自启:

service ntpd start
chkconfig ntpd on
5. 配置主机名
cat  << EOF >> /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= node100.myexample.com
EOF
6. 在集群所有主机名规划好之后,修改hosts
cat << EOF >> /etc/hosts 
192.168.6.240 node100.myexample.com
192.168.6.241 node101.myexample.com
192.168.6.242 node102.myexample.com
EOF
7. 配置无密码登录(仅主节点)
ssh-keygen -t rsa
ssh-copy-id [email protected]
ssh-copy-id [email protected]
ssh-copy-id [email protected]
8. 关闭THP服务

/etc/rc.local文件中设置开机自动关闭THP的语句,因为CentOS7默认开机是不执行rc.local的,所以还要给 /etc/rc.d/rc.local可执行权限:

cat << EOF >> /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
chmod +x /etc/rc.d/rc.local
9. 安装JDK1.8

建议使用 /usr/java/jdk1.8 作为 JAVA_HOME,因为YARN等组件默认使用这个目录为 JAVA_HOME,直接配置到这里可以避免很多麻烦。
假设jdk的tarball已经拷贝到服务器的 /usr/java 目录下 :

tar zxvf jdk-8u152-linux-x64.tar.gz
mkdir jdk1.8
mv jdk1.8.0_152/* jdk1.8/

配置环境变量:

cat << EOF >> /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile
echo "JAVA_HOME=/usr/java/jdk1.8" >> /etc/environment

完成基本配置后需要重新启动

二、配置Cloudera Manager Server和Agent

1. 部署文件

cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz复制到所有节点/opt目录下解压缩。自动生成 cloudera、cm-5.13.0两个文件夹:

tar zxvf cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz

把JDBC驱动复制到以下目录:

cp mysql-connector-java-5.1.44.jar /opt/cm-5.1.3/share/cmf/lib/
cp mysql-connector-java-5.1.44.jar /usr/share/java/
2. 安装和配置mysql数据库

首先删除自带的MariaDB:

yum erase -y mariadb mariadb-libs

安装Mysql,因为依赖关系,这里必须按照这个顺序安装:

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm

设置Mysql:

systemctl enable mysqld.service
service mysqld start
grep 'temporary password' /var/log/mysqld.log

执行完毕之后会有类似如下显示(临时生成的密码会有区别):

2017-12-17T11:26:18.937718Z 1 [Note] A temporary password is generated 
for root@localhost: LgEu(D(

根据上面查找到的密码登录mysql

mysql -uroot -p

以下是mysql命令行:

修改密码,必须包含大小写字母、数字和符号

alter user root@localhost identified by 'Thisis1password!';
#授权用户root使用密码passwd从任意主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Thisis1password!' WITH GRANT OPTION;
flush privileges;

为ActiveMonitor和Hive创建数据库:

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
quit;

创建用户(所有节点):

useradd --system --home=/opt/cm-5.13.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3.安装Cloudera Manager Server

为scm建立数据库:

/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p scm scm

如成功则会出现提示:

[main] DbCommandExecutor INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
4. 部署CDH的parcel:

CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel
CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha
manifest.json

三个文件复制到 /opt/cloudera/parcel-repo/ 目录下。

5. 启动Cloudera Manager Server

执行启动脚本:

/opt/cm-5.13.0/etc/init.d/cloudera-scm-server start

过程非常慢,需要耐心等待5分钟左右,此间可以执行:

watch netstat -lntp

来观察启动情况,如出现7180端口的服务启动,则说明启动完成。
执行启动脚本的时候可能会提示:

/opt/cm-5.13.0/etc/init.d/cloudera-scm-server:行109: pstree: 未找到命令

需要安装psmisc:

yum install -y psmisc
6. 配置和启动Cloudera Manager Agent

在每个Agent节点上修改config.ini文件:

sed -i 's/server_host=localhost/server_host=node100.myexample.com/g' /opt/cm-5.13.0/etc/cloudera-scm-agent/config.ini

主机名"node100.myexample.com"根据实际需求更换成对应的Server's hostname。

启动agent:

/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
7. 把Cloudera Manager Server/Agent添加到系统服务进行管理

/lib/systemd/system新建 cmserver.service文件,添加系统服务配置(仅server节点)

cat << EOF >> /lib/systemd/system/cmserver.service
[Unit]
Description=Cloudera Manager Server
After=network.target

[Service]
Type=forking
ExecStart=/opt/cm-5.13.0/etc/init.d/cloudera-scm-server start
ExecReload=/opt/cm-5.13.0/etc/init.d/cloudera-scm-server restart
ExecStop=/opt/cm-5.13.0/etc/init.d/cloudera-scm-server stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

新建 cmagent.service文件,添加系统服务配置(所有节点)

cat << EOF >> /lib/systemd/system/cmagent.service
[Unit]
Description=Cloudera Manager Agent
After=network.target

[Service]
Type=forking
ExecStart=/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
ExecReload=/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent restart
ExecStop=/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

更改配置文件的权限为745:

chmod 745 /lib/systemd/system/cmserver.service
chmod 745 /lib/systemd/system/cmagent.service

添加到开机自启动:

systemctl enable cmserver.service
systemctl enable cmagent.service

然后启动、重启、停止服务就和其它系统服务一样了。

三、部署安装CDH 5.13.0.29

1. 建立集群

用浏览器访问server:7180

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第1张图片

TOC打钩

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第2张图片

实验环境就选个免费版

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第3张图片

继续下一步

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第4张图片

如果之前配置都正确的话,就直接选择当前管理的主机。

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第5张图片

继续下一步

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第6张图片

然后就开始较为漫长的安装了

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第7张图片

集群安装好之后还要验证一下

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第8张图片

这里会将一些检查发现的问题汇总起来,不严重的问题可以先不管,图中提示THP没有关闭是因为我截图的时候忘记把主机的THP关闭了,如果按照基础环境准备的步骤做,是不会提示这个警告的。swapness我也没有管,不过建议搭建的时候如果物理内存足够的话,还是把swapness调小一些,否则真的很卡顿。

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第9张图片

然后就可以开始选择安装服务了。

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第10张图片
2. 安装服务

首先点击“群集”,选择我们装好的cluster(这里我预先装好了HDFS和Zookeeper)

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第11张图片

进入cluster控制台,选择添加服务

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第12张图片

在这里可以选择安装需要的服务

Cloudera Manager/CDH 5.13.0 详细离线部署流程_第13张图片
3. 安装Hive时的注意事项

安装Hive时,除了预先要建立Hive的数据库之外,在安装过程中还会遇到无法连接数据库的错误,此时需要把JDBC的jar包拷贝到 $HIVE_HOME/lib/ 下面。
在此版本约束下,$HIVE_HOME/lib/一般为:

/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hive/lib/
4. 安装失败后,全新重装之前的清理
  • 先停止server和agent的服务
/opt/cm-5.13.0/etc/init.d/cloudera-scm-server stop
/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent stop
  • 删除scm等相关的数据库
drop database scm;
drop database amon;
drop database hive;
……
  • 删除agent的部署文件
rm -rf /opt/cm-5.13.0/lib/cloudera-scm-agent/*
  • 删除临时文件
rm -rf /tmp/*
  • 如果之前部署了HDFS服务,还要在每个节点删除dfs的文件
rm -rf /dfs/*
  • 最后重启服务器

四、Trouble shooting

1. 各种状态图不显示,状态图表为灰色小问号,但服务运行状态正常:
Cloudera Manager/CDH 5.13.0 详细离线部署流程_第14张图片

solution:
一般这种情况的原因就是运行Host Monitor、Activity Monitor、Service Monitor的主机内存不足,或者这三个服务没有启动,到Cloudera Manager Service控制台进行调整即可。

2. “无法找到主机的 NTP 服务,或该服务未响应时钟偏差请求。”:
Cloudera Manager/CDH 5.13.0 详细离线部署流程_第15张图片

solution:
这种情况的原因是NTP服务没有启动或者配置好,需要手动启动NTP服务,然后手动与服务器进行对时:

ntpdate -u ntp.server.com

然后重新启动一下agent服务。

/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent restart

欢迎转载,转载请联系我并注明文章来源。

你可能感兴趣的:(Cloudera Manager/CDH 5.13.0 详细离线部署流程)