Cloudera 是 Hadoop 的重要服务提供商,目前可以提供集 Hadoop
安装、配置、管理于一体的工具包。如何在用户现有的 CDH 平台之上集成 IBM 特有的数据分析模块,既是客户实际应用中的迫切需求,也是
IBM Big Data 的重要发展策略。本文首先简要介绍 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 功能对比
在一些客户环境中,他们已经部署了 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 的组件列表
从上表中可以看出,有很多软件在两个产品中都存在,在集成时,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
的组件一起合同工作在同一个平台上。
系统主要功能特色
不管是部署在 BigInsights 本身的集群还是 CDH3 的集群,BigInsights
最大限度的提供了相同的用户界面以及管理功能,这样,用户不用关心底层的 Hadoop 系统到底是哪家厂商的,上层应用的使用方式没有任何差异。这样的设计保证了
BigInsights 在 CDH3 集群上的高可用性。与此同时,BigInsights 只是使用了 CDH3
的组件,并不会加以修改,所以原先的 CDH3 集群并不会遭到任何的破坏,用户也不用担心任何数据和配置的丢失。
当把 BigInsights 部署到一个 CDH3 的集群之后,该系统具有以下特点:
1. 可以通过 BigInsights 的管理终端实现对 Hadoop 文件系统的管理,实现对作业执行的监控;
2. 可以通过 BigInsights 的管理终端提交和运行内建的应用程序;
3. 可以使用 eclipse 插件进行 MapReduce,jaql,pig 等程序开发;
4. 可以使用 BigSheets 进行可视化数据查询,adhoc 查询以及宏运算;
5. 可以使用 text-anaytics 进行文本分析;
6. 可以使用内建的网络爬虫,数据导入 / 导出等功能;
7. 可以使用 LDAP/PAM/FlatFile 等方式提高集群的安全性;
8. 更好的与 DB2,Streams 以及其他 IBM 产品的集成;
与此同时,BigInsights 有一部分功能在该集成平台上被禁用,其中包括:
1. IBM 对 Hadoop 系统的改进。主要包括对作业调度的改进,对 MapReduce 计算框架的改进以及改进的压缩算法。BigInsights
并没有将这些功能硬性实施到 CDH3 的 Hadoop 上,以避免可能存在的不稳定性。
2. GPFS 文件系统。GPFS 可以替代 HDFS 做为 Hadoop 的分布式文件系统,它高效的备份了元数据,有效解决了
namenode 单点故障的问题,并全面支持 POSIX 接口。但由于用户往往已经将数据存放在 HDFS,为了避免从
HDFS 到 GPFS 的数据迁移,目前暂不支持 GPFS 文件系统。
3. 部分管理功能。当用户使用 Cloudera Manager 安装并部署了 CDH3 集群,为了保持对集群管理的一致性,BigInsights
禁用了对 CDH3 组件的管理功能,这样用户将不能从 BigInsights 的管理终端打开和关闭某项
CDH3 组件的服务。
在 Cloudera 集群之上安装 BigInsights
BigInsights 目前支持在两种 Cloudera 集群之上的安装:基于 Cloudera Manager
的安装和基于 CDH3 发行包的安装。除了配置方面的差异之外,BigInsights 在两种版本之上提供的支持基本一致。
基于 Cloudera manager 的集群安装
基于 Cloudera manager 的 BigInsights 平台安装主要包括以下几个步骤(关于
Cloudera CDH3 的安装请参考 Cloudera 官方网站提供的指南,这里不再赘述)。
表 3 提供了基于 CDH3 的 InfoSphere BigInsights 组件信息。
表 3. 基于 CDH3 的 InfoSphere BigInsights
组件信息
步骤 1. 安装前的准备工作
安装的前提条件是用户使用 Cloudera manager 安装了某个版本的 CDH3 软件包,并且在
CDH3 集群中进行 BigInsights 安装之前,必须保证以下几点:
1. CDH3 Hadoop name node 没有进入安全模式(safe mode)
2. CDH3 Hadoop 服务正常启动并运行
3. CDH3 HBase masters 和 region servers 服务正常启动并运行
4. CDH3 $HBASE_CONF_DIR/regionservers 文件包含 CDH3 tarball
部署集群的所有 HBase region servers 信息 . 这个文件是 UNIX 格式的文本,每行只有一个
hostname,
例如:
hostname1
hostname2
hostname3
5. Java 安装在所有 CDH3 节点上的相同目录下
步骤 2. 设置配置文件
登录到 Cloudera Manager 的管理页面 ( 如 http://hostname:7180),点击”Client
Configuration URLs”,下载 HDFS、MapReduce 和 Hbase 的配置文件包,假设
3 个文件包的名字保存为 hdfs1-clientconfig.zip,mapred1-clientconfig.zip
以及 hbase1-clientconfig.zip。
图 2. Cloudera Manager
管理页
1. Hadoop 配置文件设置:登录到集群中的 namenode 节点,创建保存配置文件的目录,例如
/opt/ibm/hadoop-client-conf/,解压 hdfs1-clientconfig.zip
并将解压后所有文件拷贝到该目录;解压 mapred1-clientconfig.zip 并拷贝 mapred-site.xml
到该目录;
2. Hbase 配置文件设置:登录到集群中 Hbase 的 master 节点,创建保存配置文件的目录,例如
/opt/ibm/hbase-client-conf/,解压 hbase1-clientconfig.zip
并将解压后所有文件拷贝到该目录;
3. Zookeeper 配置文件设置:登录到任意一个 Zookeeper 节点,创建保存配置文件的目录,例如
/opt/ibm/zookeeper-client-conf/,拷贝 /var/run/cloudera-scm-agent/process/x-zookeeper-server/
下的所有配置文件到该目录 (x 代表一个数字,代表 zookeeper 的某个节点 );
4. Oozie 配置文件设置:登录到 Oozie 节点,创建保存配置文件的目录,例如 /opt/ibm/oozie-client-conf/,拷贝
/var/run/cloudera-scm-agent/process/x-oozie-OOZIE_SERVER/
下的所有配置文件到该目录 (x 代表一个数字,代表 Oozie 的某个节点 )。
步骤 3. 启动安装脚本
将 BigInsights 的安装包解压到某个目录,在 Cloudera 的管理节点上以 root( 或其他用户
) 运行:
./start.sh overlay1
将会生成一个 URL:
http://hostnameOrIp:8300/Install
用浏览器打开该 URL,将会打开一个用户安装界面,用户只需要输入相关的配置参数即可启动安装。由于安装步骤并不复杂,本文将重点介绍其中的几个步骤。
步骤 4. 安装界面:用户信息设置
设置 SSH 配置需要的必要信息,包括 root 用户密码,BigInsights 的管理员账户及密码和
Hadoop 管理员所在组:
图 3. 用户信息设置
步骤 5. 安装界面:设置 Overlay 模块 (Hadoop, Oozie, Hbase, Zookeeper)
信息
输入 Overlay 模块的信息,包括 Java 目录、Hadoop namenode、Hadoop jobtracker、HDFS
用户名、MapReduce 用户名、Hadoop 安装目录、Hadoop 配置文件目录;Oozie/Zookeeper/Hbase
节点、Oozie/Zookeeper/Hbase 用户名、Oozie/Zookeeper/Hbase 安装目录、Oozie/Zookeeper/Hbase
配置文件目录等。其中,Hadoop 和 Oozie 为必选项,Hbase 和 Zookeeper 为可选项。BigInsights
支持可选的 Zookeeper, Flume, Pig, Hive, HBase, JaqlServer
组件的安装, 如果安装,则需要指定安装的节点,组件用户名,组件根目录和配置文件路径。
图 4. Overlay 模块设置
步骤 6. 安装界面:设置安全策略
基于 Cloudera 的 BigInsights 集群同样支持无用户验证、文件验证、LDAP 验证以及
PAM 验证三种方式。有关这几种安全验证的信息可以参考 IBM BigInsights Info Center
以及 DeveloperWorks 文章《实战 IBM BigInsights,轻松实现 Hadoop
的部署与管理》,此处不再赘述。
图 5. 设置安全策略
最后,产品安装后,会返回安装结果,同时在日志文件里记录了详细信息以便分析。当安装完成以后,点击“Finish”来停止
WebSphere Application Server Community Edition (WAS
CE),或者在通过安装向导完成安装以后通过运行“start.sh shutdown”来停止 WAS CE。此时,您可以安全地删除解压后的安装文件了。
步骤 7. 配置 Proxy User
BigInsights 允许继续使用 Cloudera 提供任务管理服务,因此,需要在
Cloudera Manager 上对 HDFS 和 MapReduce 进行配置以便 BigInsights
管理员用户有权限向 Cloudera Hadoop 提交作业以及进行 HDFS 文件的读写操作。编辑 HDFS
服务安全性设置的方法为,登录 Cloudera Manager 管理页面,单击 HDFS Service->
Configuration -> Service Side -> Advanced,找到参数
HDFS Service Configuration Safety Value,将其值更改为:
<property> <name>hadoop.proxyuser.biadmin.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.biadmin.hosts</name> <value>*</value> </property> |
图 6. 配置 Proxy User
类似的,在 MapReduce 服务中,编辑 MapReduce 服务安全性配置,将值更改为上述所示。
基于 CDH3 包部署的集群的安装
CDH3 的另一种部署方式是通过 CDH3 发行包进行手动安装,假设用户通过这种方式安装了某个版本的 CDH3
集群,用户依然可以通过 BigInsights 安装程序进而将 BigInsights 部署在该集群上。其过程和步骤与用
Cloudera manager 安装的大致一样,需要特别注意的地方时当填写 overlay 组件的信息时,必须填写正确的组件包位置以及配置文件位置。
基于 CDH3 的 BigInsights 集群的使用
基于 CDH3 的 BigInsights 平台可以提供对 Hadoop 及其它组件的统一管理,除了后台使用命令管理外,还提供了
Web 图形界面,更为方便地管理 Hadoop 组件、HDFS 文件系统、应用程序等。此外,用户也能够在
CDH3 的集群上使用 IBM 特有的软件及工具,比如文本分析工具 text-analytics,图形化表格式数据分析工具
BigSheets 等。以下的内容将会简要地介绍该系统的管理功能,发布和运行应用程序以及使用 BigSheets
进行数据分析等功能。
利用 BigInsights 管理 CDH3 集群
通过 http://< 主节点主机名或 IP>:8080/data/html/index.html
进入 BigInsights Web 管理控制台。
图 7. BigInsights Web
界面
其中在“Cluster Status”页面,可以实现对 Hadoop 以及其他模块状态的监控、启停:
图 8. 服务状态监控及启停
与 BigInsights 完全安装版相比(使用 BigInsights
安装所有模块包括 Hadoop、Hbase、Zookeeper、Oozie、Flume 等),目前基于
CDH3 的 BigInsights 平台尚不支持增删节点的功能,随着以后新版本的发布,该功能将会被支持。此外,BigInsights
提供了统一的命令行接口对集群的组件进行管理,包括 BigInsights 本身的组件,也包括 CDH3
中的组件。用户可以方便的使用命令行来启动、停止某个服务,或者查询服务的状态。比如,开启、关闭和查询 Hadoo
服务的状态可以使用以下命令行:
$BIGINSIGHTS_HOME/bin/start.sh hadoop $BIGINSIGHTS_HOME/bin/stop.sh hadoop $BIGINSIGHTS_HOME/bin/status.sh hadoop |
需要注意的是,目前对于用 Cloudera manager 安装的集群,BigInsights 暂时不支持开启或关闭某个
CDH3 的组件,用户只能通过 Cloudera manager 的管理终端完成这些操作。
发布和运行应用程序
BigInsights 内建了许多应用程序,这些应用程序是针对不同的应用场景设计的,可以方便的部署与运行在
CDH3 的集群上。这些集群包括数据导入 / 导出、与数据库的连接、网络爬虫、Adhoc 查询等等。
图 9. 管理应用程序
根据不同的需要,用户可以选择其中的应用程序发布和运行,图 9 描述了一个简单的网络爬虫的应用的发布与运行:
图 10. 运行网络爬虫程序
输入必要的参数后,点击运行按钮,作业将被提交到 CDH3 的集群上运行,作业运行的详细情况可以通过 Application
status 页面监视
图 11. 查看程序运行状态
从该页面可以查看作业名称,配置文件,作业开始的运行时间以及结束的时间,并且能够方便的查看作业执行的状态。
利用 BigSheets 可视化数据
BigSheets 是 BigInsights 提供的数据可视化工具,可以对 Hadoop 系统中的数据(应用程序的输出)进行分析。例如,在运行上述网络爬虫应用之后,利用
BigSheets 提供的分析函数和图表功能,能够简便地将网络非结构化数据转化为结构化数据。
图 12. 利用 BigSheets 可视化非结构数据
|