一、背景
响应项目需求,为了能够在学校部署我们现有的系统,数据平台提供的数据计算能力也需要部署到学校中。
数据平台的私有化部署首先涉及的是Hadoop集群的搭建方案,然后将我们布在各项目中的技术方案迁移到集群中。
这里涉及两方面的主要工作:1、hadoop集群搭建与维护工作 2、搭建完成之后的技术方案迁移稳定性
二、Hadoop集群的本地搭建方案
业界内提供有多种开源搭建Hadoop集群的方式,目前比较成熟的搭建方案:原生Apache包安装、HDP+Ambari、Cloudrea Manager+CDH三种方式。
其中CDH是Apache Hadoop和相关项目的最完整,经过测试的流行发行版。 CDH提供了Hadoop的核心元素 - 可扩展的存储和分布式计算 - 以及基于Web的用户界面和重要的企业功能。
Cloudera Manager可以轻松管理任何生产规模的Hadoop部署。通过直观的用户界面快速部署,配置和监控群集 - 完成滚动升级,备份和灾难恢复以及可定制警报。
CDH是业界内使用比较多的方案,同时也提供有线上环境的Web管理方案,这里我们会借助Cloudera Manager进行高效的管理部署,基于CDH进行Hadoop集群搭建的探索。
三、机器购买信息
本次集群搭建使用机器为阿里云购买的ECS云服务器。
机器名称 ip cpu 内存 系统盘容量 数据盘容量 服务器版本 在CDH中的角色
seg-prod-cdh001 172.16.1.42 8 16GB 40GB 200GB CentOS 7.6.1810 Cloudrea Server+mysql数据库
seg-prod-cdh002 172.16.1.43 8 16GB 40GB 200GB CentOS 7.6.1810 Cloudrea agent
seg-prod-cdh003 172.16.1.41 8 16GB 40GB 200GB CentOS 7.6.1810 Cloudrea agent
seg-prod-cdh004 172.16.1.45 8 16GB 40GB 200GB CentOS 7.6.1810 Cloudrea agent
四、机器准备工作
参考官网链接
https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_reqs_space.html
1、配置各机器的ip解析关系
seg-prod-cdh001的hosts配置信息:
cdh002-cdh004的配置规则同上,将所有节点的ip解析规则配置即可。
2、关闭防火墙
在centos 7机器中使用 firewalld
安装firewalld
yum -y install firewalld
开机启用/禁用服务
systemctl enable/distable firewalld
启动/关闭服务
systemctl stop/start firewalld
查看服务状态
systemctl status firewalld
这里我们关闭防火墙服务和开启开机禁用服务即可。
3、关闭SELINUX
SELINUX是Linux内核自带的安全服务,安装CDH需要在集群各个节点关闭SELINUX
查看SELINUX的状态
如果对应机器的SELINUX状态非disabled,可以修改状态:
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
4、配置时间同步NTP
为了一些服务的一致性,我们需要配置集群的时间同步。
这里我们使用的阿里云ECS机器内部配置了时间同步策略,为了保证集群服务的稳定性,这里的环境不太支持演示配置NTP,具体私有部署可以再进行操作。
5、配置集群SSH免密登录
———————————————————————————————————————————————————————————————————————————
如下所示在cdh001机器使用ssh登录到cdh002需要输入密码,这里配置集群之间的免密登录方便使用。
第一步:首先,在集群的cdh001节点机器中生成rsa方式加密的公钥和私钥,这里我们以root用户执行,具体操作如下
这里一直按回车即可,我们使用空的秘钥。
第二步:执行完成之后,我们切换到~/.ssh/下,看一下生成的文件:
其中有我们对应的公钥/私钥信息和认证的公钥信息文件。
第三步:对集群中所有的机器进行配置免密登录
在集群其他机器中的root用户的~/.ssh/路径下 将已经生成的 id_rsa 私钥文件拷贝进去。这里我们需要将每一台机器的 ~/.ssh/id_rsa 文件的linux权限设置为 rw------- 使用 chmod 600 id_rsa即可;否则会报权限错误的问题。
然后就是配置公钥信息了,关于公钥信息的配置有两种方式:
方式一:在所有机器的 authorized_keys 文件中写入 id_rsa.pub内容。
方式二:在cdh001中使用命令 ssh-copy-id root@主机名 来将公钥依次拷贝到集群各机器中。(这种方式需要输入各机器的root用户密码)
到这里我们集群的ssh免密登录就配置完成了,使用 ssh ip地址 -p端口号 就可以直接登录到集群各机器中了。
—————