使用SaltStack或Ansible部署大数据集群

使用SaltStack或Ansible部署Hadoop大数据,可以方便的在集群环境快速编排操作系统和应用环境,以便Hadoop快速安装。

为什么需要SaltStack或Ansible部署Hadoop集群

建立一个生产系统可用的Hadoop集群,不仅是Hadoop软件部署这么简单,还需要从操作系统、网络、监控、自动化编排能力等很多方面进行设计才可以。

使用SaltStack或者Ansible可以比较快速的对操作系统环境和应用运行环境进行编排,以便质量稳定、快速的部署Hadoop,并对Hadoop环境进行增强。

前期准备

首先是Hadoop发行版或者社区版的选型。因为Hortonworks Hadoop完全基于Apache开源软件构建起来,所以在这里会选择Hortonworks Hadoop来部署大数据集群。

对于3、5个节点的小集群,使用Internet上的Ubuntu或YUM源,通常问题不大。如果集群规模在十几个、几十个,或者是比较重要的生产环境,就不能这么部署了。一方面,从Internet下载到每个节点的安装程序文件很大,部署周期过长。另一方面,很多大数据环境将会承载比较重要而敏感的分析业务,这样的业务本身是不能部署在与Internet相连的网络中的。所以,准备基于内网Intranet环境的Ubuntu或CentOS源就很重要了。

以CentOS为例,你需要至少准备3个环境:

  • CentOS YUM源本机镜像;
  • Java JDK安装程序,且包含JCE安全扩展组件;
  • Hortonworks YUM源。

前两个YUM源或者程序安装方法,在这里就不赘述了。这里主要介绍Hortonworks本地YUM源制作方法:

下载与操作系统所对应的安装程序Tarball

以Hortonworks 2.5为例,集群部署使用到Apache Ambari 2.4.1。相关下载文件位置在:

不同的HDP版本所包含的具体组件的版本不同,成熟程度也不同。你需要按照自己的应用场景选择相应的Hortonworks HDP版本。

部署本地 YUM源 & 编辑 repo 文件

将相应的Tarball文件下载到本地,解压文件,并确保Web服务器能够访问到。例如,http://192.168.1.123/xxxx/ 目录下。

通常在Tarball解压之后,保存部署文件的目录中,已经包含一份指向到Internet YUM的repo文件。例如,ambari.repo,hdp.repo。一般ambari.repo就是与Apache Ambari相关的部署,而hdp.repo则会包含各个Hadoop组件。

当然,如果需要,你也可以编辑自己的文件。将ambari.repo和hdp.repo合并成一个文件。

使用SaltStack或Ansible的场景

假如手工部署或者使用Shell/Python脚本部署,效率和质量都可能存在风险,而在未来进行后续集群环境编排也很麻烦。如果使用SaltStack或者Ansible则可能会方便很多。以Hortonworks为例,SaltStack或者Ansible主要需要做好这样几个事情:

  • 操作系统准备
    • 更新操作系统组件,yum update
    • 安装和设置ntp,Java等
    • 关闭SELinux
    • 初始化操作系统大数据网络环境,例如,网卡绑定、IP、默认路由等
    • 更新各个服务器命名和 /etc/hosts 中服务器一致
    • 设置hosts各个服务器IP
    • 禁用host命令反向解析
    • 数据盘格式化与挂载,包括LVM、VG等配置
  • 应用环境准备
    • 部署Java JDK & JCE
    • 部署Python Anaconda
      Anaconda集成了很多Python的数据科学、机器学习和数据可视化库。部署这个环境,有助于增强数据科学分析和可视化能力。
    • PostgreSQL环境部署
      最好是部署为集群环境。如果使用Ambari默认安装的PostgreSQL,通常只部署在一个节点,而不是集群环境,存在单点风险。
  • Hortonworks环境准备
    • Ambari Server,安装在管理控制节点上
    • 在各个节点,部署Ambari Agent
    • 设置ambari agent的ini文件,指向到ambari server节点。

通过Ambari部署Hadoop集群

Hortonworks Hadoop集群安装,可以通过Ambari Server来安装。

部署Ambari Server之后,需要进行基本设置,连接上PostgreSQL数据库之后,就可以启动Ambari Server了。进入Ambari Server按部就班部署Hortonworks环境就可以了。

唯一需要特别留意的是,在Ambari Server安装Wizard中,需要设置安装文件repository的位置。这里要设置为之前HDP本地yum repository位置,而不要使用默认设置。因为默认设置是指向Internet的YUM源的。

后续工作

Hadoop集群环境安装就位,对于管理和运维Hadoop集群而言是比较简单的事情。后续还需要加强很多领域,才能运维好Hadoop集群。从Hadoop计算框架而言,虽然提供了一定好的设计,就好像HDFS的3副本或者机柜感知。但是这还是不够的。例如,自动化部署、自动化运维、状态监控、设备管理、可用性管理、安全性、可靠性管理等,这些都需要额外加强才好。

另外,很多Hadoop环境不是单纯使用的。还需要和其他业务系统集成起来之后才能用好,例如和BI、RDBMS、业务系统等,都可能需要集成起来。这就会涉及到更多集成、网络、防火墙等领域的管理。

在这样的复杂环境下,需要SaltStack或Ansible持续将相应的监控和管理工具部署到Hadoop的计算和数据节点才可以。这样的部署,因为不同公司的行业特性不同、业务场景不同,管理和部署方法也不尽相同。所以就不再展开了。

更多的集群

往往一个公司需要的Hadoop集群不止一套。从生产、开发、测试的视角,可能会部署不同集群。从数据敏感程度和业务隔离的角度,也可能会部署多套。在创新活动中,需要尝试不同有风险的组件版本或者定制化功能,也需要独立的大数据环境。

在这样的场景中,更需要借助SaltStack或Ansible帮助快速搭建适合的环境,以快速部署和开展业务。

小结

SaltStack或Ansible作为自动化管理和编排工具,能够方便对Hadoop集群部署前后过程进行有效编排管理。沉淀SaltStack或Ansible脚本,有助于快速部署和更好的运维大数据环境。

Leave a reply:

Your email address will not be published.

Site Footer