CDH 5.13.1 安装文档
目录
17. 初始化 CM 的配置数据库(只在 CM Server 上执行)
19. 移动 Parcel 文件到指标目录(只在 CM Server 上执行)
1. 安装介绍
本文介绍 CDH 安装,安装版本以当前最新版 CDH 5.13.1 为例。
CDH 提供了自动在线安装,手动离线安装的方式,本文介绍的安装方式为完全离线
安装。是同时适用于测试环境、生产环境的安装方式,对应官方安装文档章节为:
Installation Path C - Manual Installation Using Cloudera Manager Tarballs
2. 下载所需安装文件
CDH 的离线安装需要下需以下文件:
CDH 依赖的 Python: https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
JDK: http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm
Mysql5.6:
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.29-1.el6.x86_64.rp
CM:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.5.0_x86_64.tar.gz
Parcel:
https://archive.cloudera.com/cdh5/parcels/5.5.0/CDH-5.5.0-1.cdh5.5.0.p0.8-el6.parcel
https://archive.cloudera.com/cdh5/parcels/5.5.0/CDH-5.5.0-1.cdh5.5.0.p0.8-el6.parcel.
https://archive.cloudera.com/cdh5/parcels/5.13.1/manifest.json
Mysql JDBC:
http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connecto
准备好安装系统的 ISO 包,用于在缺少依赖包时进行安装。
3. 确认主机安装环境
1)确认每台服务器的硬件是否满足要求:
空间要求: /var: 5GB /usr : 500MB CDH 安装目录: 2GB |
检查命令: df -h |
内存要求: 4GB |
检查命令: free -m |
2)检查系统版本:
检查命令: cat /etc/issue, 需求版本:Red Hat Enterprise Linux Server release 6.x
3)检查服务器数据存储空间:
CDH 的安装建议在每台服务器具有相同的数据存储路径, 并具可以有多个。
4. 规划集群部署
CDH 建议最少 3 台服务器进行集群部署,本次安装采用6台服务器,规划:
主机名 |
角色 |
ip |
|
Master |
Hadoop Master, CM Server, 数据节点 |
xxxxx |
|
Slave1 |
数据节点, Mysql, CMAgent |
xxxxx |
|
Slave2 |
数据节点, CM Agent |
xxxxx |
|
Slave3 |
数据节点, CM Agent |
xxxxx |
|
Slave4 |
数据节点, CM Agent |
xxxxx |
|
Slave5 |
数据节点, CM Agent |
xxxxx |
5. 修改主机名
按要求更改各主机的主机名,更改方式为:
1)使用命令动态更改主机名: hostname 新名字, 如: hostname master
2)更改系统文件,使系统重起同样有效:
更改文件:/etc/sysconfig/network
将行:HOSTNAME=***,更改为: HOSTNAME=master 并保存:
以同样方式更改其它所有主机的主机名
6. 更改主机 HOSTS 映射文件
将所有集群服务器的 IP 主机名都写到/etc/hosts 文件中,因为后面的安装服务器选
择,都是通过主机名选择。如:在每台服务器的/etc/hosts 中增加以下内容:
7. 检查主机服务
1)停掉系统防火墙服务命令:
# service iptables stop
# chkconfig iptables off
2)停掉系统 SELinux
使用以下命令查看 SELinux 是否开起:
如果输出为: Enable, 则 SELinux 为开启状态,则使用以下操作关闭:
a)更改系统配置文件: /etc/sysconfig/selinux
将行 SELINUX=enforcing更改为: SELINUX=disabled
b)重启系统: reboot
8. 检查主机 NTP 服务配置
1)分布式集群的运行,要求各服务器的时间同步, 检查 ntpd 服务是否已经启动:
a)# service ntpd status
b)# ntpq -p 使用该命令检查 NTP 是否有配置正确的时间服务器
2)如果 ntpd 服务没有启动或配置,则通过以下方式,增加时间同步服务:
a)增加行 “server 时间服务器 IP” 到 /etc/ntp.conf 如:
b)重启 ntp 服务:
# service ntpd restart
9. 检查主机参数配置:
1) 设置 vm. swappiness 核心参数:
在 /etc/sysctl.conf 文件中追加行:
vm.swappiness = 0
使参数生效,执行命令:
# sysctl -p
2)设置 hugepage 相关参数,执行以下命令 :
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
并将该命令,追加到 /etc/rc.local 文件中,使系统重启时生效。
10. 确认 Python 环境
1)通过以下命令确定 python 是否安装以及版本:
# python -V :
Python 的版本要求为: 2.6.x, 2.7.x, 如果没有安装或版本不正确,则通过以下方式安
装:
a) 创建安装目录:
# mkdir /usr/local/python27
b) 解压步骤 2 下载的 Python-2.7.11.tgz 安装文件:
# tar -xvf Python-2.7.11.tgz
c) 进到解压目录里面,然后执行下以命令进行编绎安装:
# cd Python-2.7.11
# ./configure --prefix=/usr/local/python27
更改 Modules/Setup 文件,将行
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
改为:
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
去年前面的注释,增加编绎 zlib 模块,impala-shell 命令会用到。
# make
# make install
d)修改老版本指向:
# mv /usr/bin/python /usr/bin/python_old
# ln -s /usr/local/python27/bin/python /usr/bin/python
e)再次使用上面的命令难是否安装完成
11. 安装依赖包
使用以下命令检查依赖的系统包是否安装完成:
# rpm -q chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi
fuse fuse-libs redhat-lsb
对没有安装的包,可以采用 yum 安装或采用 rpm 手动安装的方式进行安装, 如以下采用本地
yum 的方式安装:
a)挂载系统 iso 包成虚拟设备:
# mount -o loop rhel-server-6.3-x86_64-dvd.iso /iso
b)将 iso 制作为本地 YUM 源
删除 YUM 的其它源:
# rm -rf /etc/yum.repos.d/*.repo
增加源, 增加以下内容(黄行不是)到文件: /etc/yum.repos.d/rhel-source.repo:
[root@localhost Packages]# cat /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///iso
enabled=1
gpgcheck=0
安装缺失的依赖包,如:
12. 安装集群所需配置数据库并创建用户和数据库
集群的安装需要一个关系型数据库进行配置数据的存储,CDH 支持 Oracle , Mysql,
Postgrest, 以及一个内置数据库。本将安装采用 mysql 进行存储,安装过程为:
a)解压下载的 MYSQL 安装文件:
# tar -xvf MySQL-5.6.29-1.el6.x86_64.rpm-bundle.tar
b)卸载已安装的 MYSQL 软件:
c)安装 MYSQL:
d)MySQL root 用户的初始密码存在文件 /root/.mysql_secret 里面。
e)使用以下命令先启动 MYSQL:
# /usr/bin/mysqld_safe &
f)更改 root 用户初始密码:
提示输入的密码就是 /root/.mysql_secret 文件中的密码
g)在 MYSQL 中创建需要用到的数据库:
mysql> CREATE DATABASE scm;
mysql> CREATE DATABASE hive;
mysql> CREATE DATABASE rm ;
mysql> CREATE DATABASE oozie;
h)在 MYSQL 中创建集群所用的统一登陆用户授权:
mysql> CREATE USER 'cdh'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON *.* TO 'cdh'@'%';
Query OK, 0 rows affected (0.00 sec)
13. 创建所需系统用户
使用以下命令在每个服务器系统中创建所需用户:
# useradd --system --home=/opt/cloudera-manager/cm-5.13.1/run/cloudera-scm-server
--no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
* 注意红色字段的版本号,需要根据不同的版本更改
14. 创建目录
使用以下命令在每个服务器系统中创建所需目录,并授权:
# mkdir /opt/cloudera-manager
# mkdir -p /opt/cloudera/parcel-repo
# mkdir -p /opt/cloudera/parcels
# mkdir -p /var/log/cloudera-scm-headlamp
# mkdir -p /var/log/cloudera-scm-firehose
# mkdir -p /var/log/cloudera-scm-alertpublisher
# mkdir -p /var/log/cloudera-scm-eventserver
# mkdir -p /var/lib/cloudera-scm-headlamp
# mkdir -p /var/lib/cloudera-scm-firehose
# mkdir -p /var/lib/cloudera-scm-alertpublisher
# mkdir -p /var/lib/cloudera-scm-eventserver
# mkdir -p /var/lib/cloudera-scm-server
授权:
# chown cloudera-scm:cloudera-scm /opt/cloudera-manager
# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-*
# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-*
# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
15. 安装 Clouder Manger
a)直接解压下载的 Clouder Manger 文件包即可:
#tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
# chown cloudera-scm:cloudera-scm /opt/cloudera-manager
b)拷贝 MYSQL JDBC 驱动到对应目录中:
# mkdir -p /usr/share/java
# cp mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar
# mkdir -p /usr/lib/hive/lib/
# cp mysql-connector-java-5.1.38.jar /usr/lib/hive/lib/mysql-connector-java.jar
16. 安装 JDK
使用以下命令安装上面已下载的 JDK:
# rpm -ivh jdk-7u80-linux-x64.rpm
配置 JAVA 环境变量, 在 /etc/profile 中追加以下内容:
export JAVA_HOME=/usr/java/default
export CLASS_PATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
如图,如用以下命令难 JDK 是否安装成功:
17. 初始化 CM 的配置数据库(只在 CM Server 上执行)
进到上一步解压的 cm 对应的目录:
# cd /opt/cloudera-manager/cm-5.5.0/share/cmf/schema/
路径:/opt/cm-5.13.1/share/cmf/schema
#执行脚本 scm_prepare_database.sh 进行初始化,命令格式:
./scm_prepare_database.sh -h MysqlHost -P MysqlPort dbType dbName dbUser dbPasswd
如:
18. 配置 Clouder Managerp Agent
配置每台服务器的 CM Agent 配置文件:
1)进到配置文件所在目录:
# cd /opt/cloudera-manager/cm-5.5.0/etc/cloudera-scm-agent
2)更改 config.inif 文件中的行:
server_host=localhost 更改对应的 cm server 所在主机, 如:
19. 移动 Parcel 文件到指标目录(只在 CM Server 上执行)
使用以下命令移动 3 个 parcel 文件到 parcel-repo 中:
# cp CDH-5.5.0-1.cdh5.5.0.p0.8-el6.parcel /opt/cloudera/parcel-repo/
# cp manifest.json /opt/cloudera/parcel-repo/
# cp CDH-5.5.0-1.cdh5.5.0.p0.8-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.5.0-1.cdh5.5.0.p0.8-el6.parcel.sha
注意:最后一个文件将.sha1 名字改成了 .sha
20. 启动 CM Server/ Agen
启动 CM Server( 只需要在 CM Server 服务器上执行)
# /opt/cloudera-manager/cm-5.5.0/etc/init.d/cloudera-scm-server start
启动 CM Agent(需要在每台机器上执行,包括 CM Server):
# /opt/cloudera-manager/cm-5.5.0/etc/init.d/cloudera-scm-agent start
启动需要 10 分钟左右,启动完成后,可以开始下面的操作.
可以分别在:
/opt/cloudera-manager/cm-5.5.0/log/cloudera-scm-server
/opt/cloudera-manager/cm-5.5.0/log/cloudera-scm-agent
目录下找到程序启动和运行日志
21. 登陆 CM Server 完成集群安装
注:打开本地电脑的C:\Windows\System32\drivers\etc中的hosts文件中添加master对应的ip关系就可以用master访问了
登录 CM 管理界面,使用地址: http://master:7180/
默认用户密码为 admin/admin
登陆进去后,往下拉,继续:
下一页,选择安装 cm 版本,默认,继续即可:
选择继续:
选择【当前管理的主机】中可以看到所有启动了 CM Agent 的服务器,并成功连接
CM Server 的服务器, 选择需要安装的服务器,点击继续:
选择对应的 CDH parcel 版本,点击继续:
如果这里没有 Parcel 可供选择,请检查第 18 步,并重启 CM Server
在这一步,CM 会将 parcel 解压,并分发,安装到每一台选择的服务器中,如图:
检查主机正确性,如有错误,按照提示更改即可, 并点击完成:
选择需要安装的组件,可根据需要自定义选择:
选择角色分配:
按照第 4 步角色规划:HDFS DataNode 选择所有主机
ZooKeeper 按照建议(应选择大于 3 个并为单数的主机): 选择所有主机
其它根据需要更改,注意角色均衡和性能:
集群数据库设置:
根据第 12 步创建的数据库,填写正确的数据库及用户,密码,然后测试连接:
如果有数据库不存在的,则按第 12 步新建数据库即可
集群数据存储目录设置,根据需要设置各组件数据存储目录:
集群开始安装,并部署,启动服务:
完成: