Hadoop 和元数据(解决阻抗失配问题)

阅读数:3967 2013 年 2 月 22 日 06:58

在组织如何处理数据方面,Apache Hadoop 展开了一场史无前例的革命——通过自由可扩展的 Hadoop,可以在比以往更短的时间内,通过新应用创造新价值,并从大数据中提取想要的数据。这次革命企图使企业建立以 Hadoop 为中心的数据处理模式,但是同时也提出一个挑战:我们如何在 Hadoop 的自由下进行协作呢?我们如何对任意格式的数据进行存储和处理,并按照用户的希望来共享这些数据呢?此外,我们还需考虑,如何将不同工具以及其他系统集成在一起,组成数据中心即计算机

作为 Hadoop 的用户,对元数据目录的需求是明确的。用户不希望再去“发明轮子”。他们希望与同事合作,分享结果和过程中的数据集合。结合用户的需求,很容易确定通用的 Hadoop 上层元数据机制:通过将数据资产注册到元数据记录中,不仅能更清楚的了解数据资产,更能提升发现和共享的效率。记住,尽量少让用户工作。

用户还希望不同的工具集和系统能在一起使用——如 Hadoop 和非 Hadoop 系统。作为 Hadoop 用户,对目前 Hadoop 群集上不同工具的互操作性有明确的需求:Hive,Pig,Cascading,Java MapReduce,使用了 Hadoop Streaming 的 Python,C/C++,Perl 以及 Ruby,数据格式则包括 CSV,TSV,Thrift,Protobuf,Avro,SequenceFile 以及作为 Hive 专用格式的 RCFile。

最后一点,原始数据通常不是来自于 HDFS(Hadoop 分布式文件系统)。这就需要将不同类型系统的资源注册一个中心节点上,以满足 HDFS 的 ETL 及 Hadoop 分析结果对其他系统发布的需求。

Curt,你说得对……HCatalog 真的很重要

Curt Monash 最近发表了一篇文章,题名为“ HCatalog——它很重要”从多个方面切中要害,推荐大家阅读。在这篇文章中,Curt 认为 HCatalog 作为 Hadoop 集群的元数据服务,其价值可以媲美数据库管理系统(DBMS)。虽然这一点目前还在研究中,但仍有必要说明,HCatalog 相当于 Hadoop 连接企业应用生态系统的接口,十分重要。

这篇文章中还包含 Curt 对 HCatalog 定义、历史和用途深入研究的内容。

HCatalog 的定义

Hadoop 最吸引人的特性之一就是在不使用 Schema 的情况下,可以灵活的处理半结构化数据和非结构化数据。大多数组织中,非结构化数据占全体数据的 80%,而增长速度也是结构化数据的 10-50 倍。Hadoop 确实擅长从非结构化数据中提取结构化数据。HCatalog 帮助 Hadoop 通过访问挖掘后的结构化数据传递价值,提供给需要这些数据的分析人员、系统和应用。

HCatalog 是 Hadoop 的元数据和数据表的管理系统。它基于 Hive 中的元数据层,通过类似 SQL 的语言展现 Hadoop 数据的关联关系。HCatalog 允许用户通过 Hive,Pig,MapReduce 共享数据和元数据。它的另一特点就是在用户编写应用程序时,无需关心数据怎么存储,在哪里存储,还避免用户因 schema 和存储格式的改变而受到影响。

这种灵活性最终减少了对数据产生者、使用者、管理者的影响,为他们提供了清晰的合作基础。在不影响到使用者的应用程序读取数据的情况下,数据产生者可以在数据中增加新列。在不影响生产者或使用者的情况下,管理员可以迁移数据或是改变数据的存储格式。通过 HCatalog,新数据集更容易找到并通知他们的使用者。

通过 HCatalog,用户能够通过工具访问 Hadoop 上的 Hive metastore。它为 MapReduce 和 Pig 提供了连接器,用户可以使用工具对 Hive 的关联列格式的数据进行读写。对于不在 Hive 上通过 Hive DDL 语句操作 metasotre 的用户,HCatalog 提供了命令行工具。它还提供了通知服务,如果使用 Oozie 这样的工作流工具,在有新数据可用的时候,就可以得到通知。

Hadoop 的 REST 接口

Templeton 是小说《夏洛特的网》中的一个角色。它是一个贪吃的老鼠,会为主角(小猪威尔伯)提供帮助,但是帮助的目的仅仅是为了食物。在 Hadoop 中,Templeton 通在元数据上层提供 REST 接口,来帮助 HCatalog。它为 Hadoop 提供了 REST API 接口,允许外部资源不通过 Hadoop 自带 API 与 Hadoop 交互。这只贪吃的老鼠为我们所有人提供了一个简单易懂而且常见的接口,打开了一扇通往 Hadoop 的大门。通过这种方式,它为所有应用开发人员开放了 Hadoop。

Templeton 更像 Hive 之上的一个 JDBC 连接器。REST 接口通过 HTTP 协议,为已有应用及新应用提供了一个动态共享的元数据层。它为 HTTP 客户端开放了映射在 HCatalog 和 Hive 中的资源。

HCatalog 的实际应用

这里列出 HCatalog 的 3 个基本用途。

1. 实现工具之间的通讯

重度 Hadoop 用户绝不会使用单独的工具进行数据处理。一般情况下,用户和团队开始可能只使用一种工具:如 Hive,Pig,Map Reduce,或者其他什么。随着他们对 Hadoop 使用的深入,他们会发现所使用的工具对于他们的新任务来说,不是最优的。开始使用 Hive 进行分析查询的用户,更愿意使用 Pig 为 ETL 过程处理或建立数据模型。开始使用 Pig 的用户发现,他们更想使用 Hive 进行分析型查询。尽管 Pig 和 Map Reduce 这样的工具不需要元数据,但元数据的出现依然为它们带来不少益处。通过元数据存储的共享,能使用户更方便的在不同工具间共享数据。比如在 Map Reduce 或 Pig 中载入数据并进行规范化,然后通过 Hive 进行分析,这样的工作流已经很普遍了。当所有这些工具都共享一个 metastore 时,各个工具的用户就能够即时访问其他工具创建的数据,而无需载入和传输的步骤。

2. 数据发现

当用于数据分析的时候,用户可以使用 Hadoop 从原始数据中提取结构化信息。他们通常使用 Pig,Hadoop 的 Streaming 和 Map Reduce 来分析数据,寻找新的关注点。一般而言,只有在大型分析环境中,信息的价值才能得以体现。通过 HCatalog 将分析结果发布出来,你的分析平台就可以通过 REST 服务来访问这些内容。在这种情况下,schema 决定了发现。这些发现对于数据科学家来说也很有用。通常,他们以别人创建的数据或分析结果作为下一个发现的输入。在 HCatalog 中注册数据实际上是宣布有新数据可用。

3. 系统集成

作为一个处理和存储数据环境来说,Hadoop 为企业应用提供了太多的机会。但为了充分使用它,必须要增强现有工具并配合使用。Hadoop 应当作为你的分析平台的输入,或者与你的业务数据存储和 Web 应用集成。组织应该享受 Hadoop 带来的价值,无需学习工具使用等新的内容。有了 Templeton 提供的 REST 服务,就可以通过常见的 API 和类 SQL 语言将平台开放给企业。通过这种方式,它开放了整个平台。

作为企业应用 Hadoop 的准备,HCatalog 代表着下一个合理的延伸。是的,Curt,它确实重要……很重要!

关于作者

Hadoop和元数据(解决阻抗失配问题)

Alan Gates 是 Hortonworks 的共同创始人,曾是 Yahoo 实验室的成员之一,其所在的团队将 Pig 从实验室独立出来做成一个成功的 Apache 开源项目。Gates 同时参与 HCatalog 的设计,并指导其成为 Apache 孵化项目。Gates 在俄勒冈州立大学获得其数学学士学位,在福乐神学院获得神学硕士学位。他还是 O’Reilly 出版的《Programming Pig》一书的作者。在 Twitter 上跟随 Gates:@alanfgates。

Hadoop和元数据(解决阻抗失配问题)

RusselJurney,现在正在专注于赌场游戏数据,他通过创建 Web 应用来对美国和墨西哥的老虎机进行性能分析。Russel 是《敏捷数据》的作者(O’Reilly 将于 2013 年 3 月出版)。在涉足创业,互动媒体和新闻工作后,他前往硅谷,为 Ning 和 LinkedIn 建立大规模分析应用。他现在在 Hortonworks 中进行 Hadoop 的布道工作。他和他的妻子 Kate 以及两只毛茸茸的小狗居住在加利福尼亚州太平洋沿岸的一个悬崖上。

查看英文原文 Hadoop and Metadata (Removing the Impedance Mis-match)

评论

发布