CDH集群安装笔记

CDH 集群安装笔记

由于项目的需要,我在实验室的一台安装了 VMware ESXi 的物理机上新建了 Centos 6.10 的虚拟机来安装 CDH 集群。

新建的虚拟机如下:

  • server: 10.1.18.140
    • 2 cpu
    • 24 G 内存
    • 400 G 硬盘
  • agent: 10.1.18.14*
    • 12 G 内存
    • 300 G 硬盘

安装参考原文

一、关于 CDH 和 Cloudera Manager

CDH (Cloudera’s Distribution, including Apache Hadoop),是 Hadoop 众多分支中的一种,由 Cloudera 维护,基于稳定版本的 Apache Hadoop 构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager 则是为了便于在集群中进行 Hadoop 等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark 等服务的安装配置管理做了极大简化。

二、系统环境

1
2
3
4
操作系统:CentOS 6.8 x64
Cloudera Manager:5.10.0
CDH: 5.10.0
KUDU: 1.2.0

三、安装包准备

注意: 通过 Cloudera Manager 安装 parcel 时 sha1 格式的文件需要提前修改为 sha。

四、准备工作

1. 更新系统(所有节点)

1
yum -y update

2. 网络配置(所有节点)

修改 hostname:

1
vi /etc/sysconfig/network

编辑

1
2
NETWORKING=yes
HOSTNAME= hadoop00

通过 service network restart 重启网络服务生效。

修改 ip 与主机名的对应关系

vi /etc/hosts

编辑

1
2
3
10.1.18.24* hadoop0*
...
# 将 * 换成正确的IP

注意:这里需要将每台机器的 ip 及主机名对应关系都写进去,本机的也要写进去,否则启动 Agent 的时候会提示 hostname 解析错误。

3. 配置公钥认证 (用于免密登录)

在管理节点(hadoop00)上执行

1
ssh-keygen -t rsa -P '' -f /.ssh/id_rsa

使用ssh-copy-id IP将公钥添加到认证文件中

4. 关闭防火墙和 SELinux(所有节点)

注意:需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

关闭防火墙:

1
2
service iptables stop (临时关闭)  
chkconfig iptables off (重启后生效)

关闭 SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):

1
2
setenforce 0 (临时生效)  
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

5. 配置 NTP 服务

yum 安装 ntp(所有节点):

1
yum -y install ntp

在配置之前,先使用 ntpdate 手动同步一下时间,免得本机与对时中心时间差距太大,使得 ntpd 不能正常同步。这里选用 us.pool.ntp.org 作为对时中心,ntpdate us.pool.ntp.org。

按照 Cloudera 的官方建议,所有的 CDH 节点和 Cloudea Manager 节点都需要启动 ntpd 服务。要不然会报如下错误:
此角色的主机的运行状况为不良。 以下运行状况测试不良: 时钟偏差.

解决方法如下: 先配置一台 NTP 服务,然后所有的 CDH 节点都作为此 NTP 服务的客户端。

8. 安装 Oracle 的 Java(主节点安装,其他节点卸载)

CentOS,自带 OpenJdk,不过运行 CDH5 需要使用 Oracle 的 Jdk,需要 Java 7 的支持。

卸载自带的 OpenJdk,使用 rpm -qa | grep java 查询 java 相关的包,使用 rpm -e --nodeps 包名 卸载。或者使用 yum remove java 卸载

在这里使用了 cloudera 仓库中的 jdk 的 rpm 安装包,使用rpm -ivh 包名进行安装。 配置环境变量:

修改 profile vi /etc/profile

1
2
3
4
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

立即生效 source /etc/profile

10. 安装 mysql JDBC 驱动(管理节点)

下载 mysql JDBC 驱动放到目录 /usr/share/java/ 并修改名为 mysql-connector-java.jar 下载地址 http://www.mysql.com/downloads/connector/j/5.1.html.

五、安装配置 Cloudera Manager(管理节点)

1. 建立 Cloudera Manager 安装文件自定义存储库

2. 通过 rpm 安装包本地安装 Cloudera Manager

1
2
# /path/to/RPMS/x86_64
yum --nogpgcheck localinstall cloudera-manager-daemons-5.10.*.rpm cloudera-manager-server-5.10.*.rpm enterprise-debuginfo-5.10.*.rpm

3.Parcel 和 csd 格式文件上传

1
2
3
CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel
CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha
manifest.json

4. 配置 Cloudera Manager Server 数据库

使用命令 scm_prepare_database.sh 创建 Cloudera Manager Server 数据库配置文件

命令格式如下

1
/usr/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password

如:

1
/usr/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

执行完成后生成数据库配置文件/etc/cloudera-scm-server/db.properties

1
2
3
4
5
6
7
8
9
10
11
# Auto-generated by scm_prepare_database.sh on Tue Feb 28 18:23:16 CST 2017
#
# For information describing how to configure the Cloudera Manager Server
# to connect to databases, see the "Cloudera Manager Installation Guide."
#
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm
com.cloudera.cmf.db.setupType=EXTERNAL

5. 启动 Cloudera Manager Server

1
service cloudera-scm-server start

等待大概两分钟,访问 http://10.1.18.240:7180/ 进入管理端 (登陆名: admin 密码: admin)

6. 配置

自行配置

Author: Vallzey
Link: https://vallzey.github.io/2018/07/20/CDH集群安装笔记/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.