本文首先简要介绍 BigInsights 与 Cloudera 集成的相关背景,在此基础上介绍基于 cloudera 的 BigInsights 集群的系统架构,之后详细介绍在 Cloudera 之上的两种集成方式,最后介绍如何管理和应用集成系统。
Cloudera 和 IBM 都是业界领先的大数据平台软件与服务提供商,2012 年 4 月,两家公司宣布在该领域建立合作关系,强强联手。Cloudera 提供了完整的 hadoop 系统,并在此基础上增强了可扩展性、稳定性和平台性能。InfoSphere BigInsights 则基于 hadoop 系统,建立了丰富的大数据分析解决方案、工具以及软件。通过将 BigInsights 部署到 CDH 的集群上,能够充分的发挥两者的优势,为用户实现最大的价值。
基于 CDH3 的 BigInsights 介绍
需求背景
Cloudera 是一家提供 Hadoop 软件以及服务的公司,Cloudera 发布的 CDH 软件包包括 Hadoop 以及与其相关的开源软件,Cloudera 完善了 Hadoop 的核心功能 —— 分布式计算和高扩展性存储,并加入了诸如安全性、高可用性在内的其他企业级特性。Cloudera 还发布了一款名为 Cloudera Manager 的软件,该软件用于自动安装部署 Hadoop 集群,以及对集群服务和配置的管理。
InfoSphere BigInsights 是 IBM 的大数据管理与分析平台,底层基于 Hadoop 系统。BigInsights 维护了 IBM 的 Hadoop 版本,并在此基础上对作业调度,mapreduce 运算框架以及分布式文件系统等进行了改进。与此同时,BigInsights 还提供了包括可视化数据查询、文本分析、集群控制在内的众多软件与技术。BigInsights 与 CDH3 类似,但也有许多不同之处。Cloudera 仅提供 Apache Hadoop 系统和集群管理软件,而与之相比,BigInsights 提供了大量业界领先的大数据分析工具,是对已有开源技术的延伸,更加适用于企业级应用。具体的对比如以下表格所示。
表 1. CDH3 与 BigInsights 功能对比
特性 BigInsights CDH3 集群管理 是 是 文件管理 是 是 Eclipse 开发环境 是 否 集群监控 是 是 文本分析工具 是 否 可视化数据分析工具 是 否 集成工具 是 否
在一些客户环境中,他们已经部署了 Cloudera 的 Hadoop 系统,将数据存放到了 HDFS 中,也部署了一些应用及上层软件。在不影响这些系统使用的情况下,将 BigInsights 部署到安装有 CDH 的集群上,使得 BigInsights 能够运行在 CDH 集群,能够充分发挥 BigInsights 数据分析的优势,达到 1+1>2 的效果。BigInsights 从 1.4 企业版开始支持 CDH3u3,而随后发布的 BigInsights 2.0 版本宣布了对 CDH3u4 和 CDH3u5 的支持。目前,Cloudera 已经发布了 CDH4,但是因为该版本还处于 beta 阶段,其稳定性和可靠性并未达到企业级应用的要求,因此 BigInsights 还未增加对它的支持。
系统架构
InfoSphere BigInsights 和 Cloudera CDH3 都包含了大量的软件和工具,包括核心系统 Hadoop 以及基于 Hadoop 的数据管理和分析的软件。下表列举了 BigInsights 和 CDH3 发行版所包含的组件。
表 2. BigInsights 和 CDH3 的组件列表
组件 BigInsights 2.0 CDH3u3 CDH3u4 CDH3u5 简述 MapReduce 1.0 0.20.2 0.20.2 0.20.2 Mapduce 计算框架 HDFS 1.0.3 0.20.2 0.20.2 0.20.2 Hadoop 分布式文件系统 HBase 1.0.3 0.90.4 0.90.6 0.90.6 分布式列数据库 Zookeeper 3.4.3 3.3.4 3.3.5 3.3.5 分布式配置信息协调服务 Flume 0.9.4 0.9.4 0.9.4/1.1.0 0.9.4/1.2.0 分布式日志收集服务 Hive 0.9.0 0.7.1 0.7.1 0.7.1 基于 Hadoop 的类 SQL 数据仓库 Oozie 3.2.0 2.3.2 2.3.2 2.3.2 MapRed 作业工作流管理 / 协调系统 Pig 0.10.0 0.8.1 0.8.1 0.8.1 基于 Hadoop 的数据查询语言 Lucene 3.3.0 Java 全文搜索引擎库 BigSheets 2.0 基于 Web 的可视化数据查询 / 分析工具 Orchestrator 2.0 MapRed 作业工作流管理 / 协调系统 Jaql 2.0 基于 JSON 的分布式数据查询语言 Jaql Server 2.0 用于处理 Jaql 查询的 REST 服务 Eclipse Tooling 2.0 Eclipse 开发插件(包括 MapRed,Hive,HBase,Pig 等) Text-Analytics(SystemT) 2.0 文本分析工具 Sqoop 1.4.1 1.3.0 1.3.0 1.3.0
数据传输工具 Mahout 0.5 0.5 0.5 基于 Hadoop 的机器学习库 Whirr 0.5.0 0.5.0 0.5.0 集群服务管理
从上表中可以看出,有很多软件在两个产品中都存在,在集成时,CDH3 中的 Hadoop,hbase,zookeeper 和 flume 将会替代 BigInsights 中的相应组件;对于其他开源组件,诸如 hive,oozie,pig 等,BigInsights 仍然会安装 IBM 的版本,当然这些组件会运行在 CDH3 的 Hadoop 上,因为它们并不会导致任何冲突;而对 IBM 特有的组件,也将被安装并运行在 CDH3 的 Hadoop 集群上,比如 WebConsole,EclipseTooling,SystemT 等。BigInsights 保证了良好的平台兼容性,与 CDH3 彼此协作,使得用户能够在避免数据 / 服务迁移的基础上,享受 BigInsights 的特性和功能。
BigInsights 与 CDH3 集成的遵循了以下原则:
1. BigInsights 与 CDH3 的部署相对独立,不影响原先任何 CDH3 的软件和服务的使用
2. BigInsights 不修改任何 CDH3 已有的配置
3. 所有 BigInsights 的作业将被提交到 CDH3 的 Hadoop 系统中执行
4. 除了少部分管理功能被禁用,其他功能都能够正常使用
5. 支持由 CDH3 包手动配置以及由 Cloudera Manager 安装的 CDH3 集成
6. 保证对 Oracle Java 的兼容
当把 BigInsights 部署到一个已有的 CDH3 的集群上时,软件层次的结构如下图所示:
图 1. BigInsights 和 CDH3 的组件列表
由上图可以看出,BigInsights 整合了已有的 CDH3 的组件,如 Hdfs, mapreduce, zookeeper 等,将它们很好的融入 BigInsights 软件体系,使得它们与其他 BigInsights 的组件一起合同工作在同一个平台上。