CDH集群搭建

声明:本篇文章除部分引用外,均为原创内容,如有雷同纯属巧合,引用转载请附上原文链接与声明。
阅读条件:阅读本文建议对Linux,CDH等有基本认识,不了解亦可阅读本文。
注:本文若包含部分下载内容,本着一站式阅读的想法,本站提供其对应软件的直接下载方式,但是由于带宽原因下载缓慢是必然的,建议读者去相关官网进行下载,若某些软件禁止三方传播,请在主页上通过联系作者的方式将相关项目进行取消。

文章大纲

  • 节点分配
  • 节点配置
  • 软件安装/配置
  • CDH安装配置
1.节点分配

本次的测试环境以及配置如下,这里采取1个主节点,1个从节点来配置,在CDH安装中要求至少两个节点才能安装相关组件,本次安装使用公司所提供的服务器硬件资源,且已在相关虚拟机上重装了系统(ubuntu 18.04),所以接下来将略过虚拟机安装步骤,虚拟机的配置读者可按照自己机器的情况灵活调配。

IP hostname role CPU cores memory(GB) disk(GB)
172.16.4.92 master 主节点 32 80 1024
172.16.4.93 salve1 从节点 16 80 1024
2.节点配置

2.1 修改主机名称
在master节点上执行已下命令

vim /etc/sysconfig/network

然后在打开的文件中添加如下内容

hostname=master

同理,在salve1节点上的文件中添加如下内容

hostname=slave1

2.2 修改hosts文件
在master和slave1节点上均进行以下操作

vim /etc/hosts

添加以下内容

172.16.4.92 master
172.16.4.93 slave1

2.3 配置防火墙
在master和slave1节点上均进行执行以下命令,关闭防火墙,以及selinux

systemctl stop firewalld.serivce
systemctl mask firewalld.service

2.4 配置本地yum源
在每一个节点上,基于带有yum源的系统镜像创建本地yum源,笔者使用的是中标麒麟镜像(点此下载,建议官网获取),读者可以采用其他带有yum源的镜像,也可以采用自定义的yum源,这个看情况灵活调整。此处以master节点作为示例,以下步骤对于其他配置本次yum源的时候不做参考。

  1. 上传带有yum源的镜像到/home 目录下
  2. 禁用操作系统自带的yum源,将各项中的enabled设置为0,我的配置文件为/etc/yum.repos.d/ns7-adv.repo
[ns7-adv-os]
name=NeoKylin Linux Advanced Server 7 - Os
baseurl=http://update.cs2c.com.cn:8080/NS/V7/V7Update4/os/adv/lic/base/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0

[ns7-adv-updates]
name=NeoKylin Linux Advanced Server 7 - Updates
baseurl=http://update.cs2c.com.cn:8080/NS/V7/V7Update4/os/adv/lic/updates/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0

[ns7-adv-addons]
name=NeoKylin Linux Advanced Server 7 - Addons
baseurl=http://update.cs2c.com.cn:8080/NS/V7/V7Update4/os/adv/lic/addons/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0

2.5 自定义yum的repo文件
创建文件 /etc/yum.repos.d/ns7-iso.repo
输入以下内容,以下内容表示采用本地挂载文件作为yum源,配置完成后,保存退出

[ns7-iso]
name=iso
baseurl=file:///media
enabled=1
gpgcheck=0

2.6 设置本地yum源的开机挂载
编辑挂载文件,执行如下命令

vim /etc/fstab

将以下命令添加到内容中的最后一行(需要替换镜像名称)

/home/example.iso /media iso9660 defaults 0 0

2.7 挂载镜像

mount -a

2.8 更新yum源

yum clean all
yum update

2.9 NTP 配置
每个节点上安装NTP服务

yum -y install ntp

每个节点上编辑ntp配置文件

vim /etc/ntp.conf

各个节点添加以下内容,配置文件中已有的也不需要再添加

restrict default nomodify notrap nopeer noquery
restrict 172.16.4.92 nomodify notrap nopeer noquery # 替换ip和网关
restrict 172.16.4.254 mask 255.255.255.0 nomodify notrap # 替换ip和网关
restrict 127.0.0.1
restrict ::1
server 172.16.4.92 # 指向master的ip
Fudge 172.16.4.92 stratum 10 # 指向master的ip
3. 软件安装/配置

3.1 安装JDK 1.8(已配置的可跳过此步)
1.下载jdk安装包,点此下载,建议官网获取
2.下载完成后,将其上传到各个节点上
3.解压至/usr/java/ 文件夹下
4.执行以下操作配置JAVA_HOME
执行命令,编辑环境变量配置文件

vim ~/.bash_profile

添加内容,配置JAVA_HOME

export JAVA_HOME=/usr/java
PATH=$PATH:$JAVA_HOME/bin
export PATH

执行命令,使配置生效

source ~/.bash_profile

3.2 配置SSH
在每一个节点上执行以下过程
生成ssh需要的公钥和私钥,生成的公钥和私钥默认会存放在 ~/.ssh目录下

ssh-keygen -t rsa

执行以下命令将本机的公钥放在已授权的公钥中,并修改权限

cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

接下来在每一台机器上,将其他机器的公钥拷贝到authorized_keys中
3.3 在master节点上安装mysql组件
如果机器上已经安装过旧版mysql,需要将其卸载,卸载命令如下,如果未安装跳过此步

yum remove mysql-libs

下载mysql包(5.7.x),并解压到/usr/mysql/。点此下载,建议官网获取
在解压文件中找到以下命令需要的文件,并依次执行以下命令

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

启动mysql

systemctl start mysqld.service

获取mysql的登录密码

more /var/log/mysqld.log | grep password

使用获取的密码登录mysql

mysql -uroot -pexample

修改初始密码

set password=password('example');

授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'example' WITH GRANT OPTION;
flush privileges;

修改数据库时区

vim /etc/my.conf

设置相关值

default-time_zone = '+8:00'

3.4 安装Cloudera Manager
下载安装包至本地(CDH6.3.2),并将下载的包上传到所有节点上并解压至 /usr/cdh/ 文件夹下。点此下载,建议官网下载
在master节点上安装server 和 agent服务,进入/usr/cdh/ 下,在解压包中找到以下命令所需要的文件。

yum -y install cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum -y install cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
yum -y install cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

在slave节点上安装agent服务,进入/usr/cdh/下,在解压包中找到以下命令所需要的文件。

yum -y install cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum -y install cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

在master节点上,执行命令创建manager数据库,若创建成功会得到successful等类似的提示

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm

在每个节点上编辑agent配置文件

vim /etc/cloudera-scm-agent/config.ini

在配置文件中修改这些条目为如下所示

server_host=master
server_port=7182

准备启动cloudera manager,进入到/usr/cdh目录下,可以看到如下几个文件,这几个文件即为CDH启动所需文件

-rw-r--r--. 1 root root 2082186246 7月  17 15:00 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r--. 1 root root         40 7月  17 14:59 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
drwxr-xr-x. 3 root root         56 7月  17 14:59 cm6.3.1-redhat7
-rw-r--r--. 1 root root 1411444147 7月  17 14:59 cm6.3.1-redhat7.tar.gz
-rw-r--r--. 1 root root      33887 7月  17 14:58 manifest.json

在master节点上

systemctl start cloudera-scm-server.service
systemctl start cloudera-scm-agent.service

在agent节点上

systemctl start cloudera-scm-agent.service
4.安装CDH

4.1 初始化
访问master节点的7180端口。会进入登录界面,以admin/admin的默认账号密码登录
4.2 安装zookeepker,Hadoop,HBase
在首次进入网站时,需要在网站右上角选中添加服务,然后即可对相关组件进行安装,安装过程按照引导过程安装即可。