Centos6.9离线安装CM5.12.1操作流程
目录
一、概述
本文档主要描述离线环境下,CentOS6.9操作系统部署CDH5.12.1免费版的过程。文档主要分为4个步骤:
- 前期准备(包括hostname、关闭防火墙、关闭SELinux、时钟同步等)
- 安装Cloudera Manager Server
- 安装CDH集群
- 集群完整性检查(包括HDFS文件系统、MapReduce、Hive等服务是否可以正常运行)
操作系统及环境介绍:
- 操作系统版本:CentOS6.9
- MySQL版本:5.1.73
- CM版本:CM 5.12.1
- CDH版本:CDH 5.12.1
- 采用root对集群进行部署
- 已下载CDH和CM的安装包(CDH使用parcels包方式安装)
使用四个节点进行搭建,ip和主机名分别为:
192.168.209.141 feiwei01.com
192.168.209.142 feiwei02.com
192.168.209.143 feiwei03.com
192.168.209.144 feiwei04.com
二、前期准备
2.1 配置网络
修改以下内容:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
NETMASK=255.255.255.0
DNS2=61.139.2.69
重启网卡
# service network restart
2.2 hostname配置
集群中各个节点之间能互相通信使用静态IP地址。IP地址和主机名通过/etc/hosts配置,主机名/etc/sysconfig/network进行配置(推荐hostname使用FQDN完全域名的方式配置)。
修改/etc/sysconfig/network文件:
# vim /etc/sysconfig/network
注意:修改hostname后需要重启服务器。
2.3 设置网络映射
所有主机添加
# vi /etc/hosts
192.168.209.141 feiwei01.com
192.168.209.142 feiwei02.com
192.168.209.143 feiwei03.com
192.168.209.144 feiwei04.com
2.4 配置yum
# yum clean all
# yum makecache
2.5 安装vim vi编辑器加强版
# yum -y install vim-enhanced
2.6 禁用SELinux
在所有节点执行sudo setenforce 0 命令
# sudo setenforce 0
修改集群所有节点的/etc/selinux/config文件,内容如下:
# vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
2.7 关闭防火墙
在集群所有节点执行如下操作,并永久关闭防火墙
# service iptables stop
# chkconfig iptables off
2.8 配置操作系统本地yum源
- 挂载操作系统iso文件
注意:选一台服务器操作,后面所有配置本地源都在一台服务器上操作
# mkdir /mnt/iso
上传CentOS-6.9-x86_64-bin-DVD1.iso镜像
# mount -o loop CentOS-6.5-x86_64-minimal.iso/mnt/iso/
# df -h
- 配置操作系统repo
创建操作系统源,并添加以下内容
# vim /etc/yum.repos.d/OS.repo
[localrepo]
name=CentOS6.9
baseurl=file:///mnt/iso
gpgcheck=false
enabled=true
查看yum源列表是否有新建的localrepo
# yum repolist
注意没有报错信息
2.9 安装http服务
使用yum安装http服务
- 在集群其中一节点上安装http服务
# yum -y install httpd
如上图所示则表明安装成功。
- 将httpd服务加入系统自启动服务并设置开机启动
# chkconfig --add httpd
# chkconfig httpd on
# chkconfig --list |grep httpd
- 启动http服务
# service httpd start
2.10 重做操作系统yum源
在feiwei01上安装了httpd服务后,重新制作操作系统的yum源,使用http的方式,操作如下:
- 在/var/www/html目录下创建centos6.5目录
# mkdir /var/www/html/centos6.9
- 将/mnt/iso目录下的所有文件拷贝至/var/www/html/centos6.5目录下
# scp -r /mnt/iso/*/var/www/html/centos6.5/
注意:若出现 -bash: scp: command not found,说明未安装openssh,需要安装openssh-clients或者openssh-server
# yum -y install openssh-clients
- 修改/etc/yum.repo.d/os.repo配置
# vim /etc/yum.repos.d/OS.repo
将baseurl=file:///mnt/is 改为 :
baseurl=http://feiwei01.com/centos6.9
- 检查yum源是否配置正常
# yum repolist
将/etc/yum.repo.d/OS.repo配置文件同步到集群所有节点的/etc/yum.repo.d/目录下
# scp /etc/yum.repos.d/OS.repo feiwei02.com:/etc/yum.repos.d/
# scp /etc/yum.repos.d/OS.repo feiwei03.com:/etc/yum.repos.d/
# scp /etc/yum.repos.d/OS.repo feiwei04.com:/etc/yum.repos.d/
2.11 免密匙设置
生成**,在所有机台执行:
# ssh-****** -t rsa //约三次回车,它会自动生成密匙
分发**,保证cm的server可以无**登录到agent
# ssh-copy-id feiwei01.com //生效,会让你输入密码
# ssh-copy-id feiwei02.com
# ssh-copy-id feiwei03.com
# ssh-copy-id feiwei04.com
验证:
# ssh feiwei01.com //可以免密登录
# ssh feiwei02.com
# ssh feiwei03.com
# ssh feiwei04.com
2.12 集群时钟同步
在集群的所有服务器上安装ntp服务,用于集群时钟同步,此处选择feiwei01.com服务器作为本地NTP服务器,集群其它节点与其保持同步,配置如下:
- 在集群所有节点安装ntp服务
# yum -y install ntp
如上图显示,则说明安装成功。
- 将ntpd加入系统自启动服务并设置开机启动
在所有节点执行如下操作
# chkconfig --add ntpd
# chkconfig ntpd on
- 在feiwei01.com上配置与自己同步
# vim /etc/ntp.conf
注释server 0/1/2/3
添加:
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10
- 集群其它节点配置如下
注释server 0/1/2/3
添加:server feiwei01.com iburst //同步feiwei01.com
- 重启集群所有节点的ntpd服务
# service ntpd restart
- 验证时钟同步,在所有节点执行ntpq -p命令
# ntpq -p
效果应如下:feiwei01.com上同步本地,其余节点同步feiwei01.com
注:标记部分,有“*”显示则表示同步成功。
2.13 安装MySQL
- 安装MySQL
选择一台服务器安装即可,本次选择在feiwei01.com上安装
# yum -y install mysql mysql-server
如上截图则表示MySQL安装成功。
- 将mysqld加入系统自启动服务并设置开机启动
# chkconfig --add mysqld
# chkconfig mysqld on
- 启动并配置Mysql
# service mysqld start
- 初始化MySQL
# mysql_secure_installation
参照以下步骤进行设置:
注意:出现“Thanks for using MySQL!”则表示初始化成功。
- 进入mysql,更改成任何机器都能够连接到MySQL
# mysql -uroot -p
mysql> use mysql;
mysql> update user set Host='%' where User='root' and Host='localhost';
mysql> select User,host,password from user;
+------+------------+-------------------------------------------+
| User | host | password |
+------+------------+-------------------------------------------+
| root | % | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | localhost1 | *AD54E24B2516DA73E6C0484080B90AB51D828747 |
| root | feiwei01.com| *AD54E24B2516DA73E6C0484080B90AB51D828747 |
| root | ::1 | *AD54E24B2516DA73E6C0484080B90AB51D828747 |
+------+------------+-------------------------------------------+
4 rows in set (0.00 sec)
删除 localhost1 & 127.0.0.1 & ::1
mysql> delete from user where User='root' and Host='localhost1';
Query OK, 1 row affected (0.00 sec)
mysql> delete from user where User='root' and Host='127.0.0.1';
Query OK, 1 row affected (0.00 sec)
mysql> delete from user where User='root' and Host='::1';
Query OK, 1 row affected (0.00 sec)
mysql> flush privileges;
mysql> select User,host,password from user;
+------+------+-------------------------------------------+
| User | host | password |
+------+------+-------------------------------------------+
| root | % | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+------+-------------------------------------------+
1 row in set (0.00 sec)
- 创建CM及CDH服务的数据库
建库语句:
hive数据库:
create database hive default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hive. * TO 'hive'@'%';
FLUSH PRIVILEGES;
cm 数据库:
create database cm default character set utf8;
CREATE USER 'cm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cm. * TO 'cm'@'%';
FLUSH PRIVILEGES;
am 数据库:
create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am. * TO 'am'@'%';
FLUSH PRIVILEGES;
rm数据库:
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%';
FLUSH PRIVILEGES;
hue 数据库:
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';
FLUSH PRIVILEGES;
oozie 数据库:
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';
FLUSH PRIVILEGES;
- 安装jdbc驱动
# mkdir -p /usr/share/java
# mv mysql-connector-java-5.1.34.jar/usr/share/java/
# cd /usr/share/java/
# ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar
三、Cloudera Manager安装
3.1 配置CM本地repo源
- 下载CM5.12.1rpm包
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.12.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
- 将以上7个文件下载/var/www/html/cm5.12.1目录下
# mkdir -p /var/www/html/cm5.12.1
# cd /var/www/html/cm5.12.1/
上传文件
- 创建cm本地源
# cd /var/www/html/cm5.12.1/
# createrepo .
注意:若createrepo命令未发现,需要安装createrepo
# yum -y install createrepo
如上截图则表示createrepo安装成功。
再次执行createrepo .
如上截图则表示创建成功
- 确认http是否能正常访问
访问 http://192.168.209.141/cm5.12.1 是否能成功访问
- 配置cm的本地源
在/etc/yum.repo.d/目录下增加CM.repo文件
# vim /etc/yum.repos.d/cm.repo
添加以下内容:
[cmrepo]
name=CM5.12.1
baseurl=http://feiwei01.com/cm5.12.1
gpgcheck=false
enabled=true
- 验证CM源是否配置成功
# yum repolist
如上截图则表示成功,注意未成功时会有报错信息
- 将CM.repo分发到其余各节点
# scp CM.repo feiwei02.com:/etc/yum.repos.d/
# scp CM.repo feiwei03.com:/etc/yum.repos.d/
# scp CM.repo feiwei04.com:/etc/yum.repos.d/
- 验证安装JDK
执行
# yum -y install oracle-j2sdk1.7-1.7.0+update67-1
如上截图表示安装成功,配置本地源后安装会非常快
3.2 配置http访问CDH Parcel包
- 下载CDH5.12.1 parcel包
http://archive.cloudera.com/cdh5/parcels/5.12.1/CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel
http://archive.cloudera.com/cdh5/parcels/5.12.1/CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.12.1/manifest.json
- 将以上3个文件下载至/var/www/html/cdh5.12.1目录下
# mkdir -p /var/www/html/cdh5.12.1
# cd /var/www/html/cdh5.12.1/
上传安装包
- 确认http是否能正常访问
访问 http://192.168.209.141/cdh5.12.1 是否能成功访问
3.3 安装Cloudera Manager Server
- 通过yum安装ClouderaManager Server
# yum -y install cloudera-manager-server
如上图所示则表明安装成功。
- 初始化CM数据库
# /usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password
注意:cm cm password分别表示databases user 和password,需要和之前设置的对应
本例中mysql数据库是和cloudera manager server安装在同一台服务器,若在不同的服务器,这里初始化是需要添加 -P 主机名或ip
如上截图则表示初始化成功
- 启动ClouderaManager Server
# service cloudera-scm-server start
检查7180(cloudera manager server默认端口)端口是否监听
# netstat -lnpt | grep 7180
如上截图表示监听7180端口
- 通过http:// 192.168.209.141:7180访问CM控制台
默认帐号密码是admin admin
四、CDH安装
4.1 CDH集群安装向导
- admin/admin登录到CM
- 同意license协议,点击继续
- 选择60天试用版,点击继续
- 点击“继续”
- 输入主机ip或者名称,点击搜索找到主机后点击继续
搜索成功,点击继续
- 使用parcel选项,点击“更多选项”,点击“-”删除其它所有地址,输入 http://feiwei01.com/cdh5.12.1/ 点击“保存更改”
- 选择自定义存储库,输入cm的http地址
- 点击“继续”,进入下一步安装jdk
- 点击“继续”,进入下一步,默认多用户模式
- 点击“继续”,进入下一步配置ssh账号密码
- 点击“继续”,进入下一步,安装Cloudera Manager相关到各个节点
- 点击“继续”,进入下一步安装cdh到各个节点
- 点击“继续”,进入下一步主机检查,确保所有检查项均通过
通常情况下这里会报两个警告:
警告一:
解决:
# echo 10 > /proc/sys/vm/swappiness
警告二:
解决:
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# vim /etc/rc.local
添加:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
点击重新运行
点击完成进入服务安装向导。
4.2 集群设置安装向导
- 选择需要安装的服务
此处使用自定义服务,如下图
- 点击“继续”,进入集群角色分配
HDFS角色分配:
Cloudera Manager Service角色分配:
Spark角色分配:(Spark on Yarn所以没有spark的master和worker角色)
YARN角色分配:
ZooKeeper角色分配:(至少3个Server)
分配情况
- 角色分配完成点击“继续”,进入下一步,测试数据库连接
- 测试成功,点击“继续”,进入目录设置,此处使用默认默认目录,根据实际情况进行目录修改
- 点击“继续”,等待服务启动成功
- 点击“继续”,显示集群安装成功
- 安装成功后进入home管理界面
根据日志信息解决警告
至此,cm搭建完毕