CDH安装手册(自整理)


前言

Cloudera’s Distribution Including Apache Hadoop。简称CDH,解决了原生Apache hadoop版本管理混乱、部署过程繁琐、升级过程复杂、兼容性差、安全性低等缺点,能够对集群进行集中的管理和运维。其内各服务组件的安装也是非常的简单。通过的web页面也是极大的方便了人们对于集群状态的查看。
本菜鸟QQ:599903582
笨鸟先飞,熟能生巧 ~
比心心 ~


提示:以下是本篇文章正文内容,下面案例可供参考

1.组件版本

Centos7
Mysql 5.7.25
Jdk1.8.0_144
Cm6.3.1
Cdh6.3.2

2.集群规划(三台服务器为例)

3.配置linux静态IP

IPADDR=192.168.2.201
GATEWAY=192.168.2.1
DNS1=8.8.8.8

在这里插入图片描述

4.修改hosts文件,并实现免密登录

在这里插入图片描述

[xu@node1 ~]$ ssh-keygen -t rsa

[xu@node1 ~]$ ssh-copy-id node1
[xu@node1 ~]$ ssh-copy-id node2
[xu@node1 ~]$ ssh-copy-id node3

5.创建集群分发脚本

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=1; host<=3; host++)); do
        echo ------------------- node$host --------------
        rsync -av $pdir/$fname $user@node$host:$pdir
done

6.关闭防火墙和SELINUX(所有节点)

修改配置文件/etc/selinux/config
[root@node1 bin]# vim /etc/selinux/config
 将SELINUX=enforcing 改为SELINUX=disabled,然后将该文件分发;
需要重启

关闭防火墙
[root@node1 selinux]# systemctl stop firewalld.service 
[root@node1 selinux]# systemctl disable firewalld.service 

7.配置NTP时钟同步

1)NTP服务端配置
[root@node1 ~]# vi /etc/ntp.conf
注释掉所有的restrict开头的配置
修改#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
为restrict 192.168.2.201 mask 255.255.255.0 nomodify notrap
将所有server配置进行注释
添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10

2)启动NTP服务 service ntpd start
[root@node1~]# service ntpd start

3)NTP客户端配置(在agent主机上进行配置node2,node3)
[root@hadoop103 ~]# vi /etc/ntp.conf

注释所有restrict和server配置
添加server 192.168.2.201

4)手动测试
[root@hadoop103~]# ntpdate 192.168.2.201
显示如下内容为成功:
17 Jun 15:34:38 ntpdate[9247]: step time server 192.168.1.102 offset 77556618.173854 sec
如果显示如下内容需要先关闭ntpd:
17 Jun 15:25:42 ntpdate[8885]: the NTP socket is in use, exiting

5)启动ntpd并设置为开机自启(每个节点node1,node2,node3)
[root@node2 ~]#  chkconfig ntpd on
[root@node2 ~]#  service ntpd start
6)使用群发date命令查看结果

8.安装jdk和mysql

安装JDK(三台)
1)在node1创建/usr/java目录
[root@node1 opt]# mkdir /usr/java    (cloudera会到该目录下寻找JDK,即使配置java_home也不行)
2)用Xshell将jdk-8u144-linux-x64.tar.gz上传至hadoop102,并解压到/usr/java目录下。
[root@node1 ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件
[root@node1 software]$ vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(2)让修改后的文件生效
[root@node1 jdk1.8.0_144]$ source /etc/profile
4)测试JDK是否安装成功
[root@node1 jdk1.8.0_144]# java -version
java version "1.8.0_144"
5)将node1中的JDK和环境变量分发到node2、node3两台主机
[root@node1 opt]# xsync /usr/java/
[root@node1 opt]# xsync /etc/profile

分别在node2、node3上source一下
[root@node2 ~]$ source /etc/profile
[root@node3 ~]# source /etc/profile
安装MySQL及其驱动
mysql要安装在master中。
卸载原有的Maradb和Mysql

rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs
rpm -qa | grep mysql

在这里插入图片描述

解压之后 
rpm -Uvh *.rpm --nodeps --force

1.首先关闭mysql服务  service mysqld stop
2.修改配置文件  vim /etc/my.cnf  添加skip-grant-tables
3.即可实现空密码登录
4.登录后先 flush privileges 改密码  set password for root@localhost = password('123456');
5.设置远程登录
6.重启mysql并设置为开机自启

9.搭建本地yum源并安装

[root@master ~]# yum -y install httpd 
[root@master ~]# service httpd restart 
Redirecting to /bin/systemctl restart httpd.service 
[root@master ~]# chkconfig httpd on

编辑本地yum源配置文件,如果是纯没有网络的环境,需要将Centos-Base.repo改名
vim /etc/yum.repos.d/cloudera-manager.repo
文件内容如下
[cloudera-manager]
name=cloudera-manager
baseurl=http://192.168.2.201/cm6.3.1/
enabled=1
gpgcheck=0

然后使用之前编写的分发脚本分发该配置文件;

yum clean all
yum repolist
yum makecache

三个节点进行安装:
[root@node1 ~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@node2 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
[root@node3 ~]# yum install cloudera-manager-agent cloudera-manager-daemons

报错:缺少一些环境,手动下载rpm包进行安装即可。

修改配置文件:
vim /etc/cloudera-scm-agent/config.ini

在这里插入图片描述

10.在数据库中建库

1)创建各组件需要的数据库
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

2)为CM配置数据库(自带脚本)
    下载数据库连接驱动:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
    全部节点:并将jar包放在 /usr/share/java中。并改名为 mysql-connector-java.jar
    将jar包拷贝
cp mysql-connector-java.jar /opt/cloudera/cm/schema/../lib/

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456
// scm 是数据库

11.启动服务

[root@node1 ~]# systemctl start cloudera-scm-server

[root@node1 ~]# systemctl start cloudera-scm-agent

[root@node2 ~]# systemctl start cloudera-scm-agent

[root@node3 ~]# systemctl start cloudera-scm-agent

12.访问网页及集群操作

通过 https://node1:7180 进行访问 用户和密码都是admin
在这里插入图片描述
在这里插入图片描述
使用本地的Parcel;
在这里插入图片描述
在这里插入图片描述
Hive的元数据需要放在安装mysql的Node1上。

总结

CDH的使用极大的方便了人们对于集群的操作。对于硬件的要求相对来说比较高,建议使用阿里云服务器来进行安装学习。
本菜鸟QQ:599903582
笨鸟先飞,熟能生巧 ~
比心心 ~

猜你喜欢

转载自blog.csdn.net/LeiKe_/article/details/112390930