安装CDH6集群之前的环境准备

Author Avatar
山小杰 12月 01, 2018
  • 在其它设备中阅读本文章

这篇文章是安装CDH6集群之前的环境准备部分。
基于CentOS 7.x,其他类型Linux请参考CDH官方文档进行配置。

环境要求

操作系统

软件依赖

  • Python 2.7+,不支持Python 3(安装HUE需要)
  • perl
  • python-psycopg2 2.5.4+(安装HUE需要)
  • iproute package
    • RHEL7:iproute-3.10
    • RHEL6:iproute-2.6

说明:通常这部分依赖环境操作系统已经自带,不需要手动安装。

系统版本

  • RHEL系列:6.10,6.9,6.8,7.2,7.3,7.4,7.5
  • SELS:12 SP3,12 SP2
  • Ubuntu系列:16.04 LTS

文件系统

  • ext3
  • ext4
  • XFS
  • S3

Kudu仅支持ext4和XFS文件系统。

不支持NFS和NAS存储。

文件访问记录

Cloudera建议禁用该项功能,可以提升磁盘性能。
配置/etc/fstab文件:
/dev/sdb1 /data1 ext4 defaults,noatime 0 0
不重启即生效命令:
mount -o remount /data1

nproc配置

配置文件位置/etc/security/limits.conf,Cloudera Manager通常会自动配置该文件,但是该项配置可能会被/etc/security/limits.d/目录下的文件覆盖掉。确保nproc限制设置的足够高,比如65536或者262144。

数据库要求

Cloudera Manager和CDH内置嵌入式PostgreSQL数据库,用于非生产环境。生产环境不支持PostgreSQL数据库,必须为集群配置专用外部数据库。

注意:

  • 数据库需要使用UTF8编码。对于MySQLMariaDB,必须使用UTF8编码,而不是utf8mb4
  • 对于MySQL5.7,必须要额外安装MySQL-shared-compat或者MySQL-shared

版本要求:

  • MySQL:5.7
  • MariaDB:5.5,10.0
  • PostgreSQL:8.4,9.2,9.4
  • Oracle:12C

Java要求

仅支持Oracle 64位JDK8,不支持JDK7,JDK9。

版本要求:最低要求1.8u31,推荐1.8u74,1.8u91,1.8u102,1.8u111,1.8u121,1.8u131,1.8u162

网络以及安全要求

  • CDH不支持IPv6,操作系统必须要禁用IPv6
  • 集群主机必须正确配置/etc/hosts文件
    • 应该包含集群中所有主机的主机名和对应IP地址
    • 不能含有大写主机名
    • 不能有重复的IP地址
  • SELinux不得阻止Cloudera Manager或者CDH的操作
  • 防火墙必须被禁用或者放开CDH集群所使用的端口
  • 对于RHEL或者CENTOS,/etc/sysconfig/network文件中必须包含正确的主机名

浏览器要求

  • Chrome:63+
  • Firefox:59+
  • Safari
  • IE:11+
  • Edge:41+

所使用的端口

这个直接看官方文档吧:CDH集群端口占用列表

组件版本

组件名称 组件版本
Apache Avro 1.8.2
Apache Flume 1.8.0
Apache Hadoop 3.0.0
Apache HBase 2.0.0
HBase Indexer 1.5
Apache Hive 2.1.1
Hue 4.2.0
Apache Impala 3.0.0
Apache Kafka 1.0.1
Kite SDK 1.0.0
Apache Kudu 1.6.0
Apache Solr 7.0.0
Apache Oozie 5.0.0
Apache Parquet 1.9.0
Parquet-format 2.3.1
Apache Pig 0.17.0
Apache Sentry 2.0.0
Apache Spark 2.2.0
Apache Sqoop 1.4.7
Apache ZooKeeper 3.4.5

安装之前

网络相关配置

  • 设置唯一主机名:hostnamectl set-hostname new-hostname
  • 配置/etc/hosts
  • 检测主机名与IP是否正确对应

禁用防火墙

  • 停止防火墙:systemctl stop firewalld
  • 关闭防火墙开机自启动:systemctl disable firewalld

设置SELinux执行模式

  1. 检查SELinux模式:getenforce,如果输出permissive或者disabled,你可以跳过该步骤,如果输出enforcing,则需要继续下面的操作步骤。
  2. 编辑/etc/selinux/config(在某些操作系统可能是/etc/sysconfig/selinux)文件,将SELINUX=enforcing修改为SELINUX=permissive,保存该文件。
  3. 重启操作系统生效或者执行:setenforce 0临时禁用SELinux。
  4. 当CDH安装部署完成之后,可以重新启用SELinux,修改SELinux配置文件,然后执行:setenforce 1命令。

配置局域网内yum源

安装Cloudera Manager需要很多依赖包,强烈建议搭建一个局域网内yum源,在集群中某一个节点上部署即可。
可参考我之前的文章:CentOS7下使用FTP搭建局域网内Yum源

配置NTP服务

集群中所有节点的时间必须要保持同步,可以选择集群中其中一个节点作为ntp服务端,其余节点作为客户端。

  • 安装ntp软件:yum -y install ntp
  • 配置ntp服务端/etc/ntp.conf
  • 配置ntp客户端/etc/ntp.conf
  • 启动ntp服务:systemctl start ntpd
  • 配置开机自启动:systemctl enable ntpd
  • 同步客户端时间与服务端时间相同:ntpdate -u <ntp-server>

具体配置说明可参考我之前的文章:环境准备-配置ntp时间同步

安装jdk8

集群所有节点都要安装。
可参考我之前的文章:环境准备-JDK1.8安装

安装mysql5.7

只需要在集群中某一个节点上安装即可。
可参考我之前的文章:CentOS7下使用RPM安装MySQL5.7

集群性能优化相关配置

集群所有节点都需要进行这些配置。
可参考我之前的文章:CDH6集群性能调优(操作系统层面)

环境准备部分完毕