因为业务需要了解大数据平台CDH的部署,找了三台虚拟机简单的安装部署一下,踩了一遍坑,留个文档记录一下。
1. 服务器规划
1 | 集群规划三台服务器,一台namenode,两台datanode,规划如下: |
2. 安装前预配置
2.1 关闭防火墙、SELINUX
关闭防火墙
1 | 因为是测试环境,为方便起见,直接关闭防火墙,生产环境中最好还是开启防火墙,开放相应端口就行了,或者直接在防火墙中配置集群内服务器白名单 |
关闭SELINUX
1 | SELINUX建议一定要关掉,配置太麻烦了,而且容易踩坑,官方也建议关掉 |
2.2 配置CM源
1 | wget -O /etc/yum.repos.d/cloudera-manager.repo http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo |
2.3 安装JDK
1 | CDH对JDK版本有要求,建议1.8以上 |
2.4 修改hosts文件
1 | vim /etc/hosts |
2.5 配置集群时钟同步
CDH服务集群一定要配置时间同步,否则集群会持续报警时钟偏移,此处我用的是chrony
以namenode做服务器,node节点做客户端
服务端
1 | yum install -y chrony |
客户端
1 | yum install -y chrony |
重启所有服务器chrony服务
1 | systemctl restart chronyd |
验证同步
1 | chronyc -n sources |
2.6 安装配置MariaDB服务
CDH集群部署需要数据库服务支持,目前支持Oracle/MySQL(MariaDB)/PostgreSQL,这里我用的MariaDB,只需要在主节点(namenode)上安装即可
1 | yum install -y mariadb-server mariadb |
启动mariadb
1 | systemctl start mariadb |
初始化mariadb
1 | /usr/bin/mysql_secure_installation |
创建各个服务需要的库
1 | create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; |
2.7 安装jdbc驱动
1 | yum install -y mysql-connector-java |
3. 安装Cloudera Manager服务
主节点服务器
1 | yum install -y cloudera-manager-server |
从节点服务器
1 | yum install -y cloudera-manager-agent |
安装oracle-j2sdk1.7
1 | yum install -y oracle-j2sdk1.7 |
初始化数据库
1 | /usr/share/cmf/schema/scm_prepare_database.sh mysql cm root 123456 |
启动ClouderaManager Server
1 | systemctl start cloudera-scm-server |
访问CM,验证安装
1 | http://192.168.3.131:7180 |
4. 安装配置CDH
安装前各服务器配置
1 | echo "vm.swappiness = 10" >> /etc/sysctl.conf |
登录web页面http://192.168.3.131:7180按需安装CDH服务,安装过程不详述,按步骤来即可。
5. 踩过的坑
首次安装完成,启动kafka是会报错OOM,原因是Java Heap Size配置小了,回到CDH主页面,点击kafka,进入配置页面,修改 Java Heap Size of Broker为1G,然后保存,重启KAFKA,OK
这里就是个坑,安装的时候也没有提示哪里设置Java Heap Size。
6. CM服务重启顺序
1 | systemctl restart cloudera-scm-server |