准备
- 建议最少4台物理机或者虚拟机(一个控制节点,3个数据节点),4核16G,硬盘500G,挂载根目录
- 如果用于学习,可以4核8G,如果是生产部署,推荐8核32G以上
- 系统为CentOS7.6,使用root用户登录
- CDH版本为6.2.0
基础配置
配置hosts(所有节点)
假设4个节点IP为:
10.88.36.200
10.88.36.201
10.88.36.202
10.88.36.203
其中:
- 10.88.36.200作为控制节点
- 10.88.36.201-10.88.36.203作为数据节点
在所有节点的/etc/hosts中添加:
10.88.36.200 cdh1
10.88.36.201 cdh2
10.88.36.202 cdh3
10.88.36.203 cdh4
修改hostname(所有节点)
分别登录各节点,修改hostname为cdh1,cdh2,cdh3,cdh4:
hostnamectl set-hostname YOUR_HOST_NAME
开启ssh免登录(cdh1)
在cdh1节点上,执行:
ssh-keygen -t rsa -b 2048
一路回车,并拷贝至所有节点:
ssh-copy-id cdh1
ssh-copy-id cdh2
ssh-copy-id cdh3
ssh-copy-id cdh4
配置防火墙(所有节点)
在所有节点上,执行:
systemctl start firewalld && systemctl enable firewalld
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.88.36.200/32" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.88.36.201/32" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.88.36.202/32" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.88.36.203/32" accept'
firewall-cmd --reload
firewall-cmd --zone=public --list-rich-rules
firewall-cmd --zone=public --list-all
并开放cdh1的7180端口用于安装集群,在cdh1节点执行:
firewall-cmd --permanent --zone=public --add-port=7180/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
安装jdk8(所有节点)
在所有节点上,执行:
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
配置ntp(所有节点)
假设内网时间服务器为:10.88.36.100
在所有节点上,执行:
yum install -y ntp ntpdate
systemctl start ntpd && systemctl enable ntpd
在所有节点上,编辑ntp配置 /etc/ntp.conf,注释默认ntp服务器,并添加10.88.36.100:
#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 10.88.36.100 iburst
重启ntp服务,在所有节点执行命令:
systemctl restart ntpd
注意:请确保ntp服务器10.88.36.100的123端口udp可访问
安装配置完ntp后,执行ntpq -np命令可以查看ntp状态
[root@cdh1 ~]# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
+172.16.7.240 182.92.12.11 3 u 55 64 1 0.355 -11.431 6.542
*172.16.9.241 182.92.12.11 3 u 54 64 1 0.368 -0.595 7.552
185.209.85.222 195.91.239.8 2 u 53 64 1 213.728 -46.082 0.526
+78.46.102.180 56.1.129.236 3 u 52 64 1 230.374 -22.608 0.488
有*号表示ntp服务正常
安装mysql(cdh1)
在cdh1节点上,安装mysql5.7,建议从官网下载rpm包安装
配置mysql(cdh1)
在cdh1节点上,修改/etc/my.cnf,在末尾添加:
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
然后重启mysql:
systemctl restart mysqld
修改mysql密码及权限(cdh1)
在cdh1节点上,获取mysql临时密码:
cat /var/log/mysqld.log | grep -i password
登录mysql,卸载validate_password插件:
SET PASSWORD = PASSWORD('C@p19U#qfo');
UNINSTALL PLUGIN validate_password;
修改密码及权限:
grant all privileges on *.* to 'root'@'%' identified by 'C@p19U#qfo';
安装mysql驱动(所有节点)
在官网上下载mysql-connector-java-5.1.47.tar.gz,解压出 mysql-connector-java-5.1.47.jar
在所有节点上,执行:
mkdir -p /usr/share/java
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
下载cloudera 6.2.0 rpm
https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/
下载下列安装包:
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
下载cloudera 6.2.0 parcels
https://archive.cloudera.com/cdh6/6.2.0/parcels/
下载下列文件:
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
manifest.json
安装cloudera-manager-server(cdh1)
rpm安装
在cdh1节点上,执行:
yum install cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
parcel初始化
在cdh1节点上,新建parcel目录:
mkdir -p /opt/cloudera/parcel-repo
并复制parcel到该目录:
mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel /opt/cloudera/parcel-repo
mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
mv manifest.json /opt/cloudera/parcel-repo
配置cloudera-scm-server数据库连接
在cdh1节点上,编辑/etc/cloudera-scm-server/db.properties,配置数据库,示例如下:
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=YOUR_DB_USER_NAME
com.cloudera.cmf.db.password=YOUR_DB_USER_PASSWORD
com.cloudera.cmf.db.setupType=EXTERNAL
注意:请保证mysql中有一个名为cmf的空数据库
启动server
在cdh1节点上,执行:
service cloudera-scm-server start
安装cloudera-manager-agent(所有数据节点)
rpm安装
在cdh2、cdh3、cdh4节点上,执行:
yum install cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
config配置
在cdh2、cdh3、cdh4节点上,编辑/etc/cloudera-scm-agent/config.ini文件,将server_host修改为cdh1
...
[General]
# Hostname of the CM server.
server_host=cdh1
...
启动angent
在cdh2、cdh3、cdh4节点上,执行:
service cloudera-scm-agent start
安装cloudera
打开浏览器,访问10.88.36.200:7180(启动比较慢,需要1-2分钟)
默认用户名/密码: admin/admin
按照步骤安装即可(建议选择社区版
安装)
离线安装
以上介绍的是在线安装步骤,如果在离线环境,请先在局域网内配置好CentOS源,详见CentOS搭建YUM源,然后再执行以上步骤