【问题标题】:What is use of hcatalog in hadoop?hadoop中hcatalog有什么用?
【发布时间】:2014-03-20 13:00:47
【问题描述】:

我是 Hadoop 新手。我知道 HCatalog 是 Hadoop 的表和存储管理层。但它究竟是如何工作的以及如何使用它。请举个简单的例子。

【问题讨论】:

    标签: hadoop hive hbase hcatalog


    【解决方案1】:

    简而言之,HCatalog 将 hive 元数据开放给其他 mapreduce 工具。每个 mapreduce 工具都有自己关于 HDFS 数据的概念(例如 Pig 将 HDFS 数据视为文件集,Hive 将其视为表)。由于具有基于表的抽象,HCatalog 支持的 mapreduce 工具不需要关心数据存储在哪里、以哪种格式和存储位置(HBase 或 HDFS)。

    如果您沿 Hcatalog 配置 webhcat,我们确实可以使用 WebHcat 以 RESTful 方式提交作业。

    【讨论】:

    • 太棒了!我一直在互联网上漫游以了解 hcat 到底是什么。你用 1 句话解释了。
    【解决方案2】:

    这是一个非常基本的示例,说明如何使用 HCATALOG。

    我在 hive 中有一个表,表名是 STUDENT,它存储在 HDFS 位置之一:

    neethu 90 malini 90 sunitha 98 mrinal 56 ravi 90 joshua 8

    现在假设我想将此表加载到 pig 以进一步转换数据, 在这种情况下,我可以使用 HCATALOG:

    当在 Pig 中使用 Hive 元存储中的表信息时,在调用 pig 时添加 -useHCatalog 选项:

    pig -useHCatalog

    (您可能想要导出 HCAT_HOME 'HCAT_HOME=/usr/lib/hive-hcatalog/')

    现在将此表加载到猪: A = LOAD 'student' USING org.apache.hcatalog.pig.HCatLoader();

    现在您已将表加载到 pig。要检查架构,只需对关系执行 DESCRIBE。

    DESCRIBE A

    谢谢

    【讨论】:

      【解决方案3】:

      添加其他精彩帖子我想添加一张图片,以便清楚了解HCatalog 的工作原理以及它位于集群中的哪一层

      问:具体是如何工作的?

      正如您提到的“HCatalog 是 Hadoop 的表和存储管理层”,它通过对分布式存储层执行 I/O 操作为 MR、Spark 和 Pig 等其他框架提供高级抽象Hive 表。

      HCatalog 包含 3 个关键元素

      1. SerDe :用于处理各种数据格式的序列化和反序列化库。
      2. 元存储数据库:用于存储 Hive 表的架构。
      3. WebHCat/HCatalog REST:Web 客户端元存储数据库顶部的 UI/REST 层。

      问:如何使用?

      HCatalog 安装并成功运行后,您可以在 CLI 上执行以下操作

      usage: hcat { -e "<query>" | -f "<filepath>" } 
         [ -g "<group>" ] [ -p "<perms>" ] 
         [ -D"<name> = <value>" ]
      
      -D <property = value>    use hadoop value for given property
      -e <exec>                hcat command given from command line
      -f <file>                hcat commands in file
      -g <group>               group for the db/table specified in CREATE statement
      -h,--help                Print help information
      -p <perms>               permissions for the db/table specified in CREATE statement
      

      例子:

      ./hcat –e "SELECT * FROM employee;"
      

      【讨论】:

      • 图片好!
      • 开箱即用的答案。图片增加了更多解释。
      【解决方案4】:

      HCatalog 支持读取和写入 Hive SerDe (serializer-deserializer) 可以写入的任何格式的文件。默认情况下,HCatalog 支持 RCFile、CSV、JSON 和 SequenceFile 格式。要使用自定义格式,您必须提供 InputFormat、OutputFormat 和 SerDe。

      HCatalog 构建在 Hive 元存储之上,并包含来自 Hive DDL 的组件。 HCatalog 为 Pig 和 MapReduce 提供读写接口,并使用 Hive 的命令行接口发出数据定义和元数据探索命令。

      它还提供了一个 REST 接口,允许外部工具访问 Hive DDL(数据定义语言)操作,例如“创建表”和“描述表”。

      HCatalog 呈现数据的关系视图。数据存储在表中,这些表可以放入数据库中。表也​​可以在一个或多个键上进行分区。对于一个键(或一组键)的给定值,将有一个分区包含具有该值(或一组值)的所有行。


      编辑:大部分文字来自https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat

      【讨论】:

      • 来自官方 HCatalog 页面的不错的复制粘贴! :)
      • @R4chi7 我认为这个答案尖叫“RTFM!”以优雅的方式。
      【解决方案5】:

      Hcatalog是Hadoop文件系统的元数据管理。 Hcatalog 可以通过 webhcat 访问,它使用了 rest api。在 hcatalog 中创建的任何表都可以通过 hive 和 pig 访问。

      【讨论】:

        【解决方案6】:

        HCatalog 是 Hadoop 的表存储管理工具,可将 Hive Metastore 的表格数据公开给其他 Hadoop 应用程序。它使具有不同数据处理工具的用户能够轻松地将数据写入表格网格中。它确保用户不必担心存储格式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-19
          • 1970-01-01
          • 1970-01-01
          • 2016-12-05
          • 2013-01-15
          • 2015-03-23
          • 1970-01-01
          相关资源
          最近更新 更多