你好,游客 登录
背景:
阅读新闻

Hadoop和元数据

[日期:2014-06-25] 来源:相思成灾的博客  作者:wokao159 [字体: ]

  在组织如何处理数据方面,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,它确实重要……很重要!

 

  原文:http://wokao159.iteye.com/blog/2084563





收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款