继本系列前两篇文章讲到的离线安装YUM源搭建及规划与环境准备,本文开始讲述CDH集群的搭建步骤及注意要点。本文基于CentOS7进行部署,Cloudera Manager版本选择5.8.1,CDH版本5.8.0。
free -g
vim /etc/fstab
for i in 1 2 3 4 5;do mount -o remount /opt$i
mount
可以用dd或者hdparm命令进行测试,具体步骤可以参考网上的一些做法。
ethtool [interface]
route -n
若路由缺失,使用以下命令添加路由并添加到/etc/rc.local以使重启生效
route add -net [网段] netmask [掩码] gw [网关] dev [网口]
检查系统版本是否为CDH推荐的版本,版本不兼容可能会产生稳定性问题
cat /etc/issue
uname -a
若在没有dns服务的内部网络,配置hosts就很有必要了,集群间所有节点均需配置以相互通信。
命令行执行:
hostname [name]
设置HOSTNAME以使重启生效
vim /etc/sysconfig/network
将集群所有节点的信息添加到该文件中
vim /etc/hosts
可以选择CM server到agent通过用户名密码登录或者是公钥的方式。若使用用户名的方式,需保证所有服务器root用户名和密码一致。
CentOS自带Openjdk,不过运行CDH5需要使用Oracle的jdk。至于安装,可通过web安装界面指定使用CM Server来进行安装(安装yum repo中的配置的Java版本)。
清除iptables
iptables -L
iptables -F
关闭SELinux
/etc/selinux/config 的SELINUX=disabled
命令行执行:
sysctl -w vm.swappiness=0
/etc/sysctl.conf添加以下内容:
vm.swappiness = 0
命令行执行:
ulimit -n 65535
/etc/security/limits.conf添加以下内容:
soft nofile 65535
hard nofile 65535
使用ntpdate命令与ntp服务器对时
date
ntpdate [ntpserver]
/etc/ntp.conf添加以下内容:
server [ntpserver]
启动ntpd
systemctl restart ntpd
查看是否同步成功
ntpstat
若集群域名解析仅依赖/etc/hosts文件,建议注释掉/etc/resolv.conf,以避免不良影响。
CDH 5 所支持的大多数 Linux 平台包含名为透明大页面压缩的功能,该功能与 Hadoop 工作负载交互较差,可能会严重影响性能,因此建议关闭。命令行执行以下命令,并写到/etc/rc.local文件中。
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
CM支持多种类型数据库作为配置及监控数据的存储方式,这里以mysql为例。CM数据库、Hue/Oozie配置数据库、Hive Metastore元数据库等最好能够根据实际应用及负载分开部署,并且部署高可用方案(主从或主主互备,后续会有专题讲解)。
表配置为Innodb引擎,否则CM启动可能会遇到问题。
yum install mysql-server
service mysqld start
用于存放CM的配置与监控数据。
mysqladmin -u root password 'xxxx'
mysql -uroot -p 进入mysql命令行,创建以下数据库:
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'xxxx';
create database smon DEFAULT CHARACTER SET utf8;
grant all on smon.* TO 'smon'@'%' IDENTIFIED BY 'xxxx';
create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY 'xxxx';
create database hmon DEFAULT CHARACTER SET utf8;
grant all on hmon.* TO 'hmon'@'%' IDENTIFIED BY 'xxxx';
create database nav DEFAULT CHARACTER SET utf8;
grant all on nav.* TO 'nav'@'%' IDENTIFIED BY 'xxxx';
flush privileges;
用于存放Hive的元数据信息。
create database metastore DEFAULT CHARACTER SET utf8;
grant all on metastore.* TO 'hive'@'%' IDENTIFIED BY 'xxxx';
flush privileges;
注意,安装Hive的时候可能会报错,由于使用了MySql作为Hive的元数据存储,因此需要安装MySql的驱动:
yum install mysql-connector-java
用于存放Hue/Oozie配置信息。
create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'xxxx';
create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'xxxx';
flush privileges;
根据所需版本进行下载,本文使用https://www.cloudera.com/downloads/manager/5-8-1.html
该执行程序会指引安装CM Server,前提是YUM源提前要配置好。在需要安装CM Server的linux服务器上,使用root用户执行以下命令。
chmod u+x cloudera-manager-installer.bin
./cloudera-manager-installer.bin --skip_repo_package=1
根据提示,点击下一步,最后完成安装后会提示CM的web登陆url及初始用户名密码,默认是adimin、admin。安装过程中可能会遇到一些异常,根据提示的日志文件信息解决即可。
登陆CM界面后,根据安装向导执行初始化安装和配置。
选择免费版、试用版or商业版。
指定需要通过CM管理的服务器范围。
可以提前将CM Server的公钥放置与其他服务器上,或者输入统一的用户名密码进程操作。
“选择方法”选项,选择“使用Parcel(建议)”,并点击右边按钮的“更多选项”,设置“远程Parcel存储库URL"为“http://[my-yum-server]/cloudera-parcel/”,若没有指定本地YUM源,会从网络进行下载,速度就会慢很多;
“选择CDH的版本”,如果之前已经配好了YUM源,这里会显示出相应的CDH parcel安装包,选择即可。
点击下一步就会进行parcel包的分发与安装。这一步主要会进行CM Agent的安装以及将parcel包分发到各个服务器。
这一步,主要根据自己的实际需求启动相关服务,如HDFS/YARN/HBASE/HIVE/ZOOKEEPER等,可以选择核心套件,或者自定义,不过,一般以上提到的服务都是生产中常用到的,可根据实际调整。