共计 5076 个字符,预计需要花费 13 分钟才能阅读完成。
大家都知道,Apache Hadoop 的配置很繁琐,而且很零散,为此 Cloudera 公司提供了 Clouder Manager 工具,而且还封装了 Apache Hadoop,flume,spark,hive,hbase 等大数据产品形成自己特色的 CDH 产品,再使用 CM 进行安装,很大程度上方便了集群的搭建,并提供了集群的监控功能。
一、环境:
1. 三台 VMware 虚拟机 (一个做为主节点,两个做为从节点)
hserver1n(主节点) | hserver2n(从节点) | hserver3n(从节点) |
CM Server | ||
CM Agent | CM Agent | CM Agent |
NameNode | DateNode | DateNode |
Mysql |
2. 操作系统:CentOS 7
3.Cloudera Manager:5.14.1
4.CDH:5.14.0
5.JDK1.8
二、软件下载地址
1.Cloudera Manager
2.CDH
3.JDK 和 MySQL 自行搜索
三、系统环境设置:
以下步骤都使用 root 用户操作
1. 设置静态 IP
[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) 点击虚拟网络编辑器
(2) 子网,子网掩码,以及 NAT 设置
(3) 虚拟机网络选择刚设置的 VMnet8
(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 主机名设置不同,请参考 https://www.linuxidc.com/Linux/2018-03/151464.htm)
(1)vim /etc/hostname
hserver1n
(2)hostname hserver1n
单台虚拟机设置好后,再复制两台虚拟机,修改 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
$ 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.1 mysql 安装在主节点上,使用 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
[root@hserver1n ~]# /opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql scm scm scm
JAVA_HOME=/usr/java/jdk1.7.0_80
Verifying that we can write to /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server
Executing: /usr/java/jdk1.7.0_80/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.14.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Wed Mar 21 14:09:40 CST 2018 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
当看最后一句话,就说明初始化成功了
注意 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
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. 创建数据库用户,及相关数据库,并配置服务
mysql> grant all on *.* to ‘yanggy’@’%’ identified by ‘878963’ with grant option;
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> create database hive;
Query OK, 1 row affected (0.01 sec)
mysql> create database hue;
Query OK, 1 row affected (0.01 sec)
mysql> create database ooz;
Query OK, 1 row affected (0.00 sec)
18. 集群相关服务的配置
HDFS 块大小默认是 128M,我这里为测试方便,只配置了 16M,其它的配置一些数据目录,日志目录,以及端口
19. 集群搭建完成,并启动了相关服务
20. 集群安装合成后的初始界面,可以很明显的看到集群中安装的服务和运行状况,红叹号是集群中某些配置、空间与 CM 期望的不一样,可以根据实际情况调整。