一.安装介绍
本文介绍CDH 安装,安装版本以当前最新版CDH 6.2为例。
本文介绍的安装方式为自建YUM源的离线安装方式
二.下载所需安装文件
CDH的离线安装需要下需以下文件:
- CDH依赖的Python:https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
- JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Mysql5.7:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
- CM:百度云文件:cloudera-repos.zip,也可参照安装步骤在线下载
- Parcel:https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel - Mysql JDBC:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar
- 准备好安装系统的ISO包,用于在缺少依赖包时进行安装
三.确认主机安装环境
1.确认每台服务器的硬件是否满足要求:
空间要求: /var: 5GB /usr : 500MB CDH安装目录: 2GB
检查命令: df -h
内存要求: 4GB(min)
检查命令: free -m
2.检查系统版本:
检查命令:cat /etc/issue
需求版本:CentOS Linux release 7.3.1611 (Core), 支持7.X
3.检查服务器数据存储空间:
CDH的安装建议在每台服务器具有相同的数据存储路径, 并具可以有多个
四.规划集群部署
CDH建议最少3台服务器进行集群部署,本次安装采用三台服务器,规划:
主机名 | IP | 角色 |
---|---|---|
master01 | 192.168.1.205 | Hadoop Master,CM Server,数据节点,Mysql |
slave01 | 192.168.1.206 | 数据节点,CMAgent |
slave02 | 192.168.1.207 | 数据节点,CM Agent |
五.修改主机名
使用命令
hostnamectl set-hostname xxx
分别修改三台主机的主机名,如:
hostnamectl set-hostname master01
hostnamectl set-hostname slave01
hostnamectl set-hostname slave02
六.更改主机HOSTS映射文件
将所有集群服务器的IP 主机名都写到/etc/hosts文件中,因为后面的安装服务器选择,都是通过主机名选择。如:在每台服务器的/etc/hosts中增加以下内容:
七.更改主机HOSTS映射文件
1.停掉系统防火墙服务命令:
systemctl disable firewalld
systemctl stop firewalld
2.停掉系统SELinux
使用以下命令查看SELinux是否开起:
如果输出为: Enable, 则SELinux为开启状态,则使用以下操作关闭:
- 更改系统配置文件: /etc/sysconfig/selinux
将行 SELINUX=enforcing 更改为: SELINUX=disabled - 重启系统: reboot
八.检查主机时间同步
-
CentOS 7默认以chronycd服务作时间同步,而不以ntpd作为同步服务
1.所有服务器都以master01作为同步服务器,在所有服务器更改文件:
a) 文件为: /etc/chrony.conf
b) 以#注释其它所有默认时间服务器
c) 增加行server master01 iburst
2.在master01上同时更改如下配置:
3.启动服务:
systemctl restart chronyd
systemctl enable chronyd
4.检查服务状态:
chronyc sources
九.检查主机参数配置
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文件中,使系统重启时生效。
十.确认Python环境
1.通过以下命令确定python是否安装以及版本:
python -V
2.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) 再次使用上面的命令确认是否安装完成
十一.安装依赖包
CDH 6.2安装需要以下依赖包:
- Python: 2.6 或 2.7版本
- perl
- python-psycopg2 : 用于连接postgresql, 如果用Mysql数据库,就不用安装
- iproute
以上软件在安装系统时软件选择“Compute Node”时,已全部安装. 一般不用操作!如果出现差包的情况,可参考<十五.制作本地YUM源>, 先制作好YUM源后,使用YUM命令安装。
十二.安装数据库并创建用户和数据库
只需要在master01主机上安装即可
集群的安装需要一个关系型数据库进行配置数据的存储,CDH支持 Oracle , Mysql, Postgrest, 以及一个内置数据库。本将安装采用mysql进行存储,安装过程为:
1.检测和卸载已安装的MYSQL软件:
- 注意:CentOS7默认安装了mariadb库,所以mysql及mariadb都要检测
2.解压下载的MYSQL安装文件:
# tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
3.安装MYSQL(注意:命令在一行, 全部复制执行):
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm mysql-community-common-5.7.26-1.el7.x86_64.rpm mysql-community-devel-5.7.2ommunity-devel-5.7.26-1.el7.x86_64.rpm mysql-community-libs-*.rpm mysql-community-embedded-*.rpm
4.启动MYSQL
# systemctl start mysqld
# systemctl enable mysqld
5.获取MYSQL的root初始临时密码,在日志文件 /var/log/mysqld.log
# grep 'temporary password' /var/log/mysqld.log
6.更改root用户初始密码:
# mysql -uroot -p
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
7.在MYSQL中创建需要用到的数据库:
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE rmon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
8.在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)
十三.拷贝JDBC驱动包到每台服务器
将Mysql驱动包mysql-connector-java-8.0.16.jar拷贝到每台服务器下的目录: /usr/share/java/
# cp mysql-connector-java-8.0.16.jar /usr/share/java/mysql-connector-java.jar
十四.安装JDK
上传JDK安装文件: jdk-8u211-linux-x64.rpm 使用以下命令安装上面已下载的JDK:
# rpm -ivh jdk-8u211-linux-x64.rpm
配置JAVA环境变量, 在 /etc/profile中追加以下内容:
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
如图,如用以下命令难JDK是否安装成功:
十五.制作本地YUM安装源
安装ClouderaManager需要同时制作本地系统ISO源以及CM安装文件源。
以下第 2), 3) 步除红字增加YUM源文件操作需要在每台服务器上增加,其它准备步骤只在Master01上执行即可
1.删除其它文件, 每台服务器上执行
# rm -rf /etc/yum.repos.d/*.repo
2.制作本地系统ISO源
a) 上传ISO文件并挂载系统iso包成虚拟设备:
# mkdir /iso
# mount -o loop ./CentOS-7-x86_64-DVD-1611.iso /iso
b) 启动HTTP服务
# cd /iso
#python -m SimpleHTTPServer 7900
注意:该命令会一直卡住,后面的操作需另开SHELL窗口
c) 每台服务器上增加以下内容(黄行不是)到文件: /etc/yum.repos.d/centos.repo
[root@master01 ~]# cat /etc/yum.repos.d/centos.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl= http://192.168.1.205:7900
gpgcheck=1
enabled=1
gpgkey= http://192.168.1.205:7900/RPM-GPG-KEY-CentOS-7
注意地址是否正确,可以手动在浏览器中打开地址测试
3.制作CM YUM源
a) 准备文件
# mkdir -p /var/www/html/
# unzip ./cloudera-repos.zip -d /var/www/html/
# chmod -R ugo+rX /var/www/html/cloudera-repos/cm6
如果Linux能联网也可使用以下命令直接在线下载文件:
# wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cm6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos
# wget https://archive.cloudera.com/cm6/6.2.0/allkeys.asc -P /var/www/html/cloudera-repos/cm6/6.2.0/
# chmod -R ugo+rX /var/www/html/cloudera-repos/cm6
b) 启动HTTP服务
# cd /var/www/html
# python -m SimpleHTTPServer 8900
c) 每台服务器上增加以下内容到文件: /etc/yum.repos.d/cloudera-repo.repo
[root@master01 ~]# cat /etc/yum.repos.d/cloudera-repo.repo
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.1.205:8900/cloudera-repos/cm6/6.2.0/redhat7/yum
enabled=1
gpgcheck=0
十六.安装Clouder Manger
1.在master01主机上执行以下命令, 同时安装CM Server和CM Agent
# yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
安装需要一会时间,会安装依赖包:
2.在每台服务器执行以下命令安装Agent:
# yum install -y cloudera-manager-agent cloudera-manager-daemons
-
配置Agent文件: /etc/cloudera-scm-agent/config.ini
将 server_host=localhost
更改为: server_host=master01
(Cm server所在主机)
十七.初始化CM 的配置数据库(只在CM Server(master01)上执行)
执行脚本 scm_prepare_database.sh 进行初始化,命令格式:
# cd /opt/cloudera/cm/schema/
# ./scm_prepare_database.sh -h master01 -P 3306 mysql scm cdh 123456
参数说明: -h MysqlHost -P MysqlPort dbType dbName dbUser dbPasswd
十八.移动Parcel文件到指标目录(只在CM Server上执行)
使用以下命令移动3个parcel文件到parcel-repo中:
# cp CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel /opt/cloudera/parcel-repo/
# cp CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-6.2.0- 1.cdh6.2.0.p0.967373-el7.parcel.sha
注意:最后一个文件将.sha1名字改成了 .sha
十九.启动CM Server/ Agent
1.在Master01上启动CM Server
# systemctl start cloudera-scm-server
# systemctl enable cloudera-scm-server
2.在所有主机上启动CM Agent
# systemctl start cloudera-scm-agent
# systemctl enable cloudera-scm-agent
enable命令是启用开始起动
3.检查日志是起起动完成
- 出现红色日志,说明起动完成,可以登陆WEB页面开始后面的操作
二十.登陆CM Server完成集群安装
-
登录CM管理界面,最好使用Chrome浏览器,使用地址: http://192.168.1.205:7180/
默认用户密码为admin/admin
-
登陆进去后,继续:
-
Accept License, 继续:
-
下一页,选择安装cm版本,默认,继续即可:
-
集群安装欢迎, 继续:
-
集群名设置,默认即可,继续:
-
选择【当前管理的主机】中可以看到所有启动了CM Agent的服务器,并成功连接CM Server的服务器, 选择需要安装的服务器,点击继续:
-
选择对应的CDH parcel版本,点击继续:
-
如果这里没有Parcel可供选择,请检查第18步,并重启CM Server,在这一步,CM 会将parcel解压,并分发,安装到每一台选择的服务器中,如图:
-
检查主机正确性,如有错误,按照提示更改即可, 并点击完成:
可以执行Hosts检查,Network Performance不需要执行, Host 显示完整结果:
检查一般会有这两个警告,可以按提示修改,也可以在上面选择”I understand the risks” 忽略继续。 -
选择需要安装的组件,可根据需要自定义选择:
服务在安装完成后,还可以增删
-
选择角色分配:
按照第 4 步角色规划:HDFS DataNode选择所有主机
ZooKeeper按照建议(应选择大于3个并为单数的主机): 选择所有主机
其它根据需要更改,注意角色均衡和性能:
一般master角色选成master01
图中红色为我更改过的部分
-
集群数据库设置:
根据第12步创建的数据库,填写正确的数据库及用户,密码,然后测试连接:
如果有数据库不存在的,则按第12步新建数据库即可, 注意建库后重新执行Grant授权语句
-
集群数据存储目录设置,根据需要设置各组件数据存储目录(测试默认即可):
集群开始安装,并部署,启动服务:
-
完成:
二十一.CDH集群安装检查
登陆进CM管理界面,可以检查集群各组件运行情况,如: