大家都知道,Apache Hadoop的配置很繁琐,而且很零散,为此Cloudera公司提供了Clouder Manager工具,而且还封装了Apache Hadoop,flume,spark,hive,hbase等大数据产品形成自己特色的CDH产品,再使用CM进行安装,很大程度上方便了集群的搭建,并提供了集群的监控功能。
一、环境:
- 三台VMware虚拟机(一个做为主节点,两个做为从节点)
hserver1n(主节点) | hserver2n(从节点) | hserver3n(从节点) |
---|---|---|
CM Server | ||
CM Agent | CM Agent | CM Agent |
NameNode | DateNode | DateNode |
Mysql |
- 操作系统:Centos7
- Cloudera Manager:5.14.1
- CDH:5.14.0
- JDK1.8
二、软件下载地址
- Cloudera Manager
- CDH
- JDK和MySQL请自行搜索安装
三、系统环境设置
以下步骤都使用root用户操作
1.设置静态IP1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="edcb54db-f59d-4893-bd8e-8ae60d0ba6f9"
DEVICE="ens33"
ONBOOT="yes"
**GATEWAY=192.168.124.2
IPADDR=192.168.124.136
NETMASK=255.255.255.0
DNS1=202.96.128.86
DNS2=223.5.5.5**
还需要设置虚拟网络:
1.1点击虚拟网络编辑器
1.2子网,子网掩码,以及NAT设置
1.3虚拟机网络选择刚设置的VMnet8
1.4重启网络
[root@localhost ~]# systemctl restart network
2.关闭防火墙和SELINUX
[root@localhost ~]# vim /etc/selinux/config .config/
将selinux=enforcing改成selinux=disabled
重启虚拟机
3.安装JDK
CentOS7默认安装的是OpenJDK,需要先卸载,然后安装Oracle JDK
4.设置主机名(CentOS7与CentOS6主机名设置不同,请参考此博文)
1 | (1)vim /etc/hostname |
单台虚拟机设置好后,再复制两台虚拟机,修改HostName、IP、UUID即可。
5.配置三台虚拟机的Host文件
192.168.124.136 hserver1n
192.168.124.137 hserver2n
192.168.124.138 hserver3n
6.打通主节点SSH访问两个从节点
7.配置所有节点NTP时间同步服务,两个从节点同步主节点的时间
四、安装MySQL
- mysql只需在主节点安装
- mysql5.6开始mysql服务启动时会为root用户生成一个临时密码,通过grep ‘password’ /var/log/mysqld.log命令获取
- 配置密码验证策略,我选择的是不使用密码验证策略,以便创建简单密码
- 配置数据库字符集,我配置默认的字符集是utf8。
五、安装Clouder Manager及CDH
在所有节点上操作:
1.新建目录
$ sudo mkdir /opt/cloudera-manager
2.将下载的Clouder Manager解压到此目录下
$ sudo tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
3.创建用户cloudera-scm
由于Cloudera Manager和Managed Services默认使用cloudera-scm,所以需要创建此用户
$ sudo useradd –system –home=/opt/cloudera-manager/cm-5.14.1/run/cloudera-scm-server –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm
4.主节点创建Cloudera Manager服务本地数据存储目录
$ sudo mkdir /var/lib/cloudera-scm-server
$ sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
5.配置Agent
配置所有节点的Agent,路径:/opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-agent/config.ini,将server_host修改成主节点的主机名,如果主节点端口没有自定义,则不用修改。
6.下载mysql-connector-java.jar,并保存到所有主机的/usr/share/java目录下
7.配置mysql,可以参考这里
7.1mysql安装在主节点上,使用mysql命令登录
7.2新建一个scm用户,并赋予所有权限,密码是scm
mysql> grant all on . to ‘scm‘@’localhost’ identified by ‘temp’ with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
7.3创建数据库scm
7.4初始化cloudera manager
1 | [root@hserver1n ~]# /opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql scm scm scm |
当看最后一句话,就说明初始化成功了
注意scm账户不能删除,因为cm以后还需要使用此账户,若想创建临时用户,则需要让CM创建用户和数据库,此时可以删除创建的临时用户。
可以使用命令:
/opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql -utemp -ptemp scm scm scm
8.将CDH安装包移动主节点的/opt/cloudera/parcel-repo目录下
移动的文件有:
将CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1名称改成CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha,不然Cloudera Manager不会使用本地的安装包
9.启动主节点的CM Server和所有节点的Agent
路径为:/opt/cloudera-manager/cm-5.14.1/etc/init.d
[root@hserver1n init.d]# ./cloudera-scm-server start
Starting cloudera-scm-server: [ OK ]
[root@hserver1n init.d]# ./cloudera-scm-agent start
Starting cloudera-scm-agent: [ OK ]
10.打开CM管理页面,网址为:http://hserver1n:7180,用户名和密码都是admin
11.选择Cloudera Express
12.选择主机
13.集群安装
14.安装完成后,检查主机正确性
其中有两项需要修改,一个是修改swapping阀值,从30修改成10,已最大限度使用内存,第二项是关闭透明大页面压缩功能,提高性能。
15.选择要安装的服务,这里选择核心Hadoop,以后需要安装其它服务时,再根据需要安装
16.角色分配,尽量让角色均衡地分配到所有主机上,以减少某一台主机的压力
17.创建数据库用户,及相关数据库,并配置服务
1 | mysql> grant all on *.* to 'yanggy'@'%' identified by '878963' with grant option; |
18.集群相关服务的配置
HDFS块大小默认是128M,我这里为测试方便,只配置了16M,其它的配置一些数据目录,日志目录,以及端口
19.集群搭建完成,并启动了相关服务
20.集群安装合成后的初始界面,可以很明显的看到集群中安装的服务和运行状况,红叹号是集群中某些配置、空间与CM期望的不一样,可以根据实际情况调整。