内容


实战 IBM BigInsights,轻松实现 Hadoop 的部署与管理

Comments

IBM BigInsights 简介

IBM InfoSphere BigInsights 是用于分析和可视化管理海量数据的处理平台,它基于分布式开源技术 Apache Hadoop,在集成与扩展 Hadoop 主要组件的同时,还提供了 IBM 特有的数据处理与分析模块。利用 BigInsights,IT 专业人员能够快速地构建大数据分析处理平台,对企业内的海量数据进行定制化分析,并能够与企业现有的数据库、数据仓库和商业智能分析框架相结合,从而帮助企业获得巨大的商业价值。

BigInsights 主要提供了以下功能特性:

  • Apache Hadoop 组件的轻松部署

通过简单的图形界面,BigInsights 能够轻松实现 Hadoop 组件包括 Hadoop 核心包,Avro,Flume,Hbase,Hive,Lucene,Oozie,Orchestrator,Pig,Zookeeper 等组件的安装与部署。

  • Apacche Hadoop 组件、作业的管理与维护

BigInsights 提供了命令行和 Web 界面两种方式对 Hadoop 组件进行管理,配置方式非常简单。

  • 提供了更全面的安全验证策略,比如文件验证、LDAP 验证,这是 Hadoop 本身所不具备的
  • 更多高级功能

如此麻烦的 Hadoop

Hadoop 的安装、部署和维护都是比较繁杂的,需要用户在集群环境里进行繁琐的手工配置。从用户的体验反馈分析,以下几个方面都是用户感到头痛的地方:

  • Hadoop 要求所有节点上 Hadoop 的部署目录结构要相同,并且都有一个相同的用户名作为管理员帐户,因此需要手工在集群中各个节点上安装 Hadoop 和创建用户; 用户需要在集群中的机器上完成环境配置,设置一致的变量。
  • 集群中的主节点(Namenode)通过 SSH(Secure Shell)来启动和停止各个节点上的进程,这就需要在节点之间执行指令时使用无密码方式,因此需要对 SSH 使用无密码公钥认证进行配置;
  • Hadoop 及其组件的配置文件管理也是非常复杂,用户需要对多个配置文件进行维护管理,例如各个节点的角色配置、各组件的文件路径、端口设置等等;
  • Hadoop 的维护也是让管理员头疼的问题,比如为了扩展性能,新添加 100 台机器,那么就需要在 100 台机器上进行安装,还要在主节点上对 100 台机器进行配置,工作量非常的大。

Hadoop 的安装配置不仅费时费力,而且容易出错。那有没有更好的解决方案呢?有,IBM InfoSphere BigInsights 在涵盖了 Hadoop 及其重要的组件的同时,非常好地解决了上述问题,具有很好的用户体验。

利用 BigInsights 轻松部署 Hadoop 及其组件

利用 BigInsights 全面快速地部署 Hadoop 集群

IBM BigInsights 提供了简洁方便的 UI 界面安装方式,它屏蔽了底层繁复的配置工作,用户只需在界面上进行简单的修改设置,BigInsights 即可根据用户的要求部署 Hadoop。这里以 30 个节点为例,演示如何利用 BigInsights 部署 Hadoop 集群。

步骤 1. 运行安装脚本开始安装

BigInsights 提供 .tar.gz 格式的压缩安装包,首先需要在主节点上(NameNode)将其解压,解压后运行 start.sh脚本。脚本会自动检测主机名和 IP 并提供安装使用的 URL。使用该 URL 将打开安装主界面。

步骤 2. 选择安装类型

用户需要选择集群安装或者单节点安装,在 Hadoop 的应用场景中,集群安装是主要的方式。

图 1. 选择安装类型
选择安装类型
选择安装类型

步骤 3. 设置相关用户密码

Hadoop 集群中节点间需要通信,因此在安装过程中需要设置 root 用户密码、BigInsights 管理员用户名和管理员用户密码:

图 2. 设置用户密码
设置用户密码
设置用户密码

如果 BigInsights admin user 和 group 在集群中的某个节点上不存在,BigInsights 会自动创建该用户。

步骤 4. 添加节点

单击 ‘ Add Node ’添加集群中的其他节点(节点以主机名和 IP 代表均可),重复此步骤可以添加多个节点。如果所需添加的节点过多,可以选择 ‘ Add Multiple Nodes ’来完成, 如图 3 所示:

图 3. 一次性添加多个节点
一次性添加多个节点
一次性添加多个节点

步骤 5. 组件配置

Hadoop 集群中的节点可以承担不同的角色,因此可以在安装时将组件分配到不同的节点上,组件的属性信息例如端口等也可以在安装界面上直接设置。单击’ Assign …’按钮可以分配组件到某个节点,也可以不做任何修改保持默认设置:

图 4. 组件配置
组件配置
组件配置

步骤 6. 设置安全策略

BigInsights 支持无用户验证、文件验证和 LDAP 验证三种方式,后两者为 Hadoop 提供了更高级别的安全策略。

  • 文件验证 (flat file authentication)

文件验证指 BigInsights 从相关属性文件中加载安全设置,包括使用系统默认文件设置和用户自定义文件设置。

图 5. 默认文件验证设置
默认文件验证设置
默认文件验证设置

如果选择默认设置,将会加载 $BigInsights 安装包根目录 /artifacts/security/flatfile/biginsights_user.properties, $BigInsights 安装包根目录 /artifacts/security/flatfile/biginsights_group.properties 文件。

biginsights_user.properties 内容如下:

biadmin=passw0rd

该文件设置了登陆 Web 界面的用户名和密码,用户可以修改用户名和密码,也可以增加新的用户,例如 tester=u7i8o9p0。

biginsights_group.properties 内容如下:

BigInsightsSystemAdministrator=biadmin
BigInsightsDataAdministrator=biadmin
BigInsightsApplicationAdministrator=biadmin
BigInsightsUser=biadmin

该文件设置了与 BigInsights 中各种角色相关的用户:SystemAdministrator 角色用户拥有所有系统管理相关的权限,例如查看增加删除节点、启停服务等;DataAdministrator 角色用户拥有所有与数据管理相关的权限。例如上传文件、删除文件等;ApplicationAdministrator 角色用户拥有所有与作业管理相关的权限,例如创建作业、作业调度等;BigInsightsUser 角色用户拥有执行作业、查看作业结果、查看数据等权限。

除了使用默认的文件设置外,用户也可以使用自定义的配置文件(配置文件需要与 biginsights_user.properties 和 biginsights_group.properties 具备相同的格式):

图 6. 自定义文件验证设置
自定义文件验证设置
自定义文件验证设置
  • LDAP 验证

LDAP(轻量目录访问协议)是另外一种安全验证方式,需要用户单独搭建 LDAP 服务器,存储所有的用户、组信息,所有在安装时设置的用户和组必须是 LDAP 服务器上的有效值。

图 7.LDAP 验证
LDAP 验证
LDAP 验证

最后,产品安装后,会返回安装结果,同时在日志文件里记录了详细信息以便分析。

巧用 BigInsights 实现 Hadoop 维护管理

BigInsights 提供了丰富易操作的 Hadoop 组件管理命令,包括启动 / 停止服务、添加 / 删除节点、查看组件状态、检测节点健康状况、同步节点数据等。本节介绍通过 BigInsights 命令实现 Hadoop 的维护管理。

在 $BigInsights_Home/bin 目录下提供了许多管理命令,这些命令需要在 BigInsights 管理员用户下执行。

  • 启动 / 停止服务

start.sh$ 组件名 1 $ 组件名 2 … / stop.sh$ 组件名 1 $ 组件名 2 …

启动 / 停止指定组件服务,如果指定为’ all ’,意为所有组件。

start-all.sh/start-all.sh

启动 / 停止所有组件服务

  • 添加 / 删除节点

有时为了扩展性能或者重新分配资源,需要添加或者删除某个指定组件的节点。

addnode.sh$ 组件名 $ 节点 1 $ 节点 2 … / removenode.sh$ 组件名 $ 节点 1 $ 节点 2 …

在指定节点上安装指定组件 / 在指定节点上删除指定组件,如:

addnode.sh zookeeper $host1 $host2
  • 查看组件状态

status.sh$ 组件名 1 $ 组件名 2 …

查看指定组件在各个节点上的运行状态(运行或停止),如果指定为’ all ’,意为所有组件。

  • 检查节点健康状况

可以通过运行作业检查指定组件在各个节点上的健康状况:

healthcheck.sh$ 组件名 1 $ 组件名 2 …

如果指定为’ all ’,意为所有组件。如果组件在某个节点上已停止,将会先将其启动。

  • 同步节点数据

当用户修改了相关配置信息后,可以通过以下命令同步节点间数据:

syncconf.sh$ 组件名 1 $ 组件名 2 …

如果指定为’ all ’,意为所有组件。

  • 节点列表信息

listnode.sh$ 组件名 1 $ 组件名 2 …

列出指定组件被安装的节点,如果指定为’ all ’,意为所有组件。

  • 卸载 BigInsights

如果不再需要 BigInsights,可以通过 uninstall.sh卸载 BigInsights,并删除所有相关目录。

除此之外,在各个组件目录下,也提供了许多对该组件的管理命令,例如配置组件、运行组件相关的命令行等。

BigInsights Web 图形界面控制台

除了使用命令管理 Hadoop,BigInsights 还提供了一个 Web 图形界面,更为方便地管理 Hadoop 组件、运行 Hadoop 作业、管理 HDFS 文件系统等。通过 http://$ 主节点主机名或 IP:8080/BigInsights 进入 BigInsights Web 管理控制台,默认显示组件管理页面。

轻松管理 Hadoop 组件

组件管理页面显示集群中组件状态,同时也可以通过该界面启动 / 停止组件服务、同步节点信息、添加节点等。

图 8.BigInsights Web 主界面
BigInsights Web 主界面
BigInsights Web 主界面

组件管理页面包括 Dashboard Summary,Start Stop Summary,Server Administration 三个面板:Dashboard Summary 显示集群的健康状况;Start Stop Summary 显示集群内总的节点数和正在运行的节点数;Server Administration 显示各个组件的安装情况和运行状态,同时也可以通过该面板来添加、删除节点;启动、停止服务;或者同步集群,实现与命令行相类似的功能。

图 9.Server Administration
Server Administration
Server Administration

使用控制台运行 Hadoop 作业

BigInsights Web 界面还提供了作业(job)的管理,用户通过它不但可以监控系统中所有作业的执行状态和细节,还可以创建、运行新作业。

  • 浏览作业状态

作业管理页面列出了所有作业的状态,包括作业的创建时间、完成时间、完成百分比、当前状态等:

图 10. 作业管理主页面
作业管理主页面
作业管理主页面

如果要了解作业的细节例如该作业包含的总任务数、成功任务数、失败任务数、任务的开始时间和结束时间等,可以单击作业名,进入’ Tasks ’ 页:

图 11. 任务统计
任务统计
任务统计

‘ Job Info ’页面显示了作业配置信息,用户只能浏览配置信息而不能对其进行修改:

图 12. 作业配置信息
作业配置信息
作业配置信息
  • 创建 Jar 作业

用户可以将自己开发的 Map Reduce 作业打包成 jar 文件并导入系统运行。单击’ Create Jar Job …’,输入 jar 文件的路径,要执行的 Main Class,以及执行该作业所需的必要参数,例如输出文件夹,然后单击’ Submit ’,该作业将会被创建并执行。

图 13. 创建 Jar 作业
创建 Jar 作业
创建 Jar 作业

创建作业后,系统自动返回作业主页,此时刚刚创建的新作业信息将会显示在列表中。

图 14. 创建新作业后的作业列表
创建新作业后的作业列表
创建新作业后的作业列表
  • 创建示例作业

Hadoop 自带了一些示例作业以便用户学习,例如统计文本中文字数的作业。单击’ Create Sample Word Count Job ’,输入该作业需要的必要参数,包括 Input Directory(存放被统计文件的文件夹)、Output Directory(存放输出结果的文件夹)来创建作业:

图 15. 创建示例作业
创建示例作业
创建示例作业

一目了然的 HDFS 管理

相对于 HDFS 系统管理命令,BigInsights Web 界面提供了更为简便的文件管理方式。它提供了类似于 Windows 资源管理器的树状模式,文件结构一目了然。通过它,用户可以创建目录,上传文件,查看文件内容等。

在 Web 主界面单击’ Files ’进入 HDFS 管理。

图 16.HDFS 目录
HDFS 目录
HDFS 目录

如果要创建子文件夹,可以选中 HDFS 目录中的某个文件夹,然后单击’ Create Directory ’;

如果要上传文件至 Hadoop,可以选中 HDFS 目录中的某个文件夹,然后单击’ Upload …’;

在 HDFS 树状目录中单击某个文件,或者在’ Path ’文本框中输入文件的完整路径,可以查看文件内容:

图 17. 查看文件
查看文件
查看文件

IBM BigInsights 可以做得更多更强

除了以上介绍的功能外,BigInsights 还提供了更多的高级功能,例如:

JAQL 查询语言

JAQL 是为 JSON 而设计的查询语言(但不局限于 JSON),主要用于海量半结构化数据的查询,以 Hadoop MapReduce 的方式运行查询,并且具备扩展性,用户可以开发自己的函数库部署到系统中。

  • 与传统关系型数据库如 DB2 提供了接口,提供 DB2 与 Hadoop 文件系统之间数据的导入导出以及从 DB2 调用 Hadoop 作业的能力,对于习惯了传统的关系型数据库的用户非常方便。
  • 提供了基于 web 的数据挖掘工具 -Bigsheets,能够从大量无规则数据中抽取出用户所需数据并以图表形式展现,分析结果一目了然。
  • 提供了与 IBM SystemT 的集成,实现智能语义分析。

总之,如果企业正面临着海量数据信息管理的挑战并有意使用 Hadoop 解决此问题,IBM BigInsights 将是一个非常不错的选择。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Open source
ArticleID=755287
ArticleTitle=实战 IBM BigInsights,轻松实现 Hadoop 的部署与管理
publish-date=09012011