CDH 5.12.1离线部署指南(附spark2.2.0集成指南)
由于国内的网络原因,CDH在国内几乎无法实现在线安装,本文将介绍CDH离线安装方式,所有安装包下载后传输到内网安装,由于版本较新的原因,安装过程的坑还是很多的,在此记录一下。
一、 硬件说明
一共6台节点:
master:32.31.104.159
slave1:32.31.104.161
slave2:32.31.104.162
slave3:32.31.104.163
slave4:32.31.104.164
slave5: 32.31.104.165
所有机器:
操作系统:Ubuntu16.04 LTS 对应代号为xenial
内存:128g
cpu:20个物理核心,40线程
二、 软件下载
由于mysql服务器已经预装,所以这里不再下载安装mysql。
需要的所有安装包如下:
jdk-8u121-linux-x64.tar.gz
libopts25_5.18.12-3_amd64.deb
ntp_4.2.8p4+dfsg-3ubuntu5.7_amd64.deb
以上三个包我已经打包在百度云中,下载地址:https://pan.baidu.com/s/1nvT3K05
cloudera-manager-xenial-cm5.12.1_amd64.tar.gz
下载地址:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.12.1_amd64.tar.gz
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel
下载地址:http://archive.cloudera.com/cdh5/parcels/5.12.1/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1
下载地址:http://archive.cloudera.com/cdh5/parcels/5.12/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1
manifest.json
下载地址:http://archive.cloudera.com/cdh5/parcels/5.12/manifest.json
注意:cloudera对jdk版本要求比较严格,应尽量使用上述版本,也可以去官网查看其它支持版本。第二个和第三个包用于安装ntp服务,如果集群能够联网,可以使用apt install安装。
三、 环境准备(全程root用户)
1、关闭防火墙、selinux;
2、将全部主机的主机名设置好,并将以上映射关系写到每个主机的/etc/hosts文件中;
3、在master节点,ssh-keygen–t rsa生成密钥,将公钥分发到其它节点:ssh-copy-id host;
4、在每台机器上执行:sysctl vm.swappiness=0,并将/etc/sysctl.conf中vm.swappiness的值设为0
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
5、安装jdk
tar –zxvf jdk-8u121-linux-x64.tar.gz–C /usr/java/ #jdk的安装位置应保持一致
在/etc/profile中写入JAVA_HOME并将bin目录添加到PATH
source/etc/profile
在每台机器上都配置好jdk
6、安装和配置数据库
数据库用于存储元数据信息,建议使用mysql或postgrepsql,本例中使用mysql。
处于分担风险的考虑将元数据信息存储在slave1上。
Mysql的安装方式这里不再赘述,在此提醒一点:
为了使master上的进程能够访问到slave1上的数据库,需要解除默认的ip绑定,将/etc/mysql/my.cnf 中的bind-address= 127.0.0.1注释掉,如果/etc/mysql/my.cnf中没有这一行,在/etc/mysql/mysql.conf.d/mysqld.cnf中注释该行。
在mysql中执行以下脚