测试环境,最小规模,最少4台服务器。一台做管理节点Cloudera Manager和NameNode等,另外三台用作worker,DATANODE节点,这种最小规模一般仅用于开发和测试。
如果是生产环境,最少6台,3台管理节点包括1个Cloudera Manager,2个NameNode做高可用,3个工作节点。
常见的较小规模的生产系统一般为10-20台。
###1.2.操作系统
CDH支持大部分主流的64位操作系统,我这里会以centos 6.9部署CDH 5.14版本为例子。其他CDH版本及其对应的操作系统版本可参考:CDH版本及其支持的操作系统版本
可以用root,或具有免密sudo权限的用户
###1.4.硬件要求
要评估群集的硬件和资源分配,其实需要分析要在群集上运行业务的负载情况,以及将要部署的CDH组件。
还应该考虑存储和处理的数据大小,工作负载的频率,需要运行的作业并发数量以及应用程序所需的资源。
所以硬件配置需要视具体情况而定。
测试集群最低要求:
这里我使用的服务器配置是:
所有节点服务器系统盘可以使用raid1或raid10,数据盘不要使用raid,应该用JBOD模式。hdfs存储系统本身就是分布式高可用的,使用raid就失去使用hdfs的初衷,且会有性能损失。
如果集群的规模不大,有多个应用服务复用的话,NN,ZK,JN等管理服务存放的数据目录也可以放在使用raid的磁盘上。
DataNode数据盘建议选择ext4或xfs,并配置noatime:
|
|
目前常见的SATA读写速度大概在150MB/S-200MB/S,SAS或者SSD会更快,如果磁盘读写速度小于80MB/S,最好检查下磁盘,或者更换更好的磁盘,不然后期IO隐患很大。
由于大数据应用,集群内部网络吞吐一般较大,稳健的高性能网络支撑十分重要。前期最好规划好,等到后期业务吞吐上去,网络撑不住再去升级底层网络设施是非常痛苦的。
最起码千兆网卡,根据实际情况,必要时需要考虑万兆网卡,以及配套的光纤交换机,并留有网卡绑定,交换机堆叠的扩展余地。
如果是使用云上的虚拟机,最好确认下网卡的多队列支持,笔者就被XX云网卡多队列支持数过少而坑过,导致集群性能利用率上不去,且CPU负载偏移,网络丢包等现象。
|
|
|
|
CDH发行版中自带JDK为1.7.0_67的版本,CDH5.3以后开始支持JDK1.8。可以实现自己安装好,或者后续安装CDH时,勾选CDH自带的JDK安装。
CM自动部署安装时会自带数据库进行系统配置、schema等并进行相应管理。
也可是自行部署,不用自带的,具体支持的数据库包括:
MySQL:5.1、5.5、5.6、5.7
PostgreSQL:8.1、8.3、8.4、9.1、9.2、9.3、9.4
Oracle:11gR2、12c
这里我是自己部署的mysql,方便管理。 确保以下配置:
自己部署的话,就需要自己预先创建好CDH各项服务对应的元数据库。
|
|
以下常用服务端口,根据实际情况,需要在防火墙上放行。
Service | Port | Hosts |
---|---|---|
Cloudera Manager | 7180 | CM所在主机 |
Cloudera Navigator Metadata | 7187 | Navigator所在主机 |
HDFS | 50070,8020 | Namenode所在主机 |
ResourceManager | 8088,19888 | RM, JobHistory所在主机 |
HBase | 60010, 60030 | HMaster, RegionServer所在主机 |
Hive | 10002 | HiveServer2所在主机 |
Hue | 8888 | Hue所在主机 |
Impala | 25010, 25020, 25000 | |
spark | 18088 | Spark HistoryServer所在机器 |
ssh | 22 | |
http | 80 | httpd服务所在机器,一般是CM那台主机 |
安装httpd服务主要是提供CDH和cm的本地源,进行离线安装。由于总所周知的原因,在线安装一般不会太顺利,最好是离线安装。
|
|
1
[root@bigdata02~]# mkdir -p /var/www/html/cm5.14
createrepo
:
|
|
|
|
将集群所有服务器的IP和HOSTNAME配置到hosts文件,并同步至集群的所有服务器。
swap相关设置
swappiness表示如何使用swap分区。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,这里我是设为1:
|
|
关闭透明大页面
|
|
如果公司有自己的NTP Server则可以集群中所有节点可配置企业NTP Server,如果没有则在集群中选用一台服务器作为NTP Server,其它服务器与其保持同步,配置如下:
所有节点安装NTP
|
|
选一台做ntp server
|
|
集群其它节点与其同步,配置如下:
|
|
所有节点启动ntp
:
|
|
集群中CM节点安装MySQL服务
|
|
初始化脚本
|
|
创建CDH所需要的库
|
|
4.安装MySQL驱动,将mysql-connector-java-5.1.34.jar拷贝至/usr/share/java目录,并创建软链接。
CDH的安装前置要求大致就这些,后续会讲下CDH部署的具体步骤。以及由浅入深的讲下CDH的一些基本组件。