我是hadoop的新手。我知道HCatalog是Hadoop的表和存储管理层。但究竟是如何运作的呢?如何使用它。请举一些简单的例子。
答案 0 :(得分:39)
简而言之,HCatalog将hive元数据打开到其他mapreduce工具。每个mapreduce工具都有自己关于HDFS数据的概念(示例Pig将HDFS数据视为文件集,Hive将其视为表)。通过基于表的抽象,HCatalog支持的mapreduce工具无需关心数据的存储位置,格式和存储位置(HBase或HDFS)。
如果您在Hcatalog中配置webhcat,我们确实可以使用WebHcat的工具以RESTful方式提交作业。
答案 1 :(得分:26)
以下是如何使用HCATALOG的一个非常基本的例子。
我在hive中有一个表,TABLE NAME是STUDENT,它存储在一个HDFS位置:
neethu 90
malini 90
sunitha 98
mrinal 56
ravi 90
joshua 8
现在假设我想将此表加载到pig以进一步转换数据, 在这种情况下,我可以使用HCATALOG:
使用Hive Metastore with Pig的表信息时,在调用pig时添加-useHCatalog选项:
pig -useHCatalog
(您可能想要导出HCAT_HOME'HCAT_HOME = / usr / lib / hive-hcatalog /')
现在将此表加载到pig:
A = LOAD 'student' USING org.apache.hcatalog.pig.HCatLoader();
现在您已将表加载到pig。要检查模式,只需对关系执行DESCRIBE。
DESCRIBE A
由于
答案 2 :(得分:11)
添加其他精彩帖子我想添加一张图片,以便明确了解
HCatalog
如何工作以及它在群集中的哪个层
问:它究竟是如何运作的?
如您所述" HCatalog是Hadoop的表和存储管理层"通过对Hive表的分布式存储层执行I / O操作,可以为MR,Spark和Pig等其他框架提供高级抽象。
HCatalog包含3个关键元素
问:如何使用它?
安装并运行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;"
答案 3 :(得分:8)
HCatalog支持以任何可以写入Hive SerDe(串行器 - 解串器)的格式读写文件。默认情况下,HCatalog支持RCFile,CSV,JSON和SequenceFile格式。要使用自定义格式,您必须提供InputFormat,OutputFormat和SerDe。
HCatalog建立在Hive Metastore之上,并包含来自Hive DDL的组件。 HCatalog为Pig和MapReduce提供读写接口,并使用Hive的命令行界面发布数据定义和元数据探索命令。
它还提供了一个REST接口,允许外部工具访问Hive DDL(数据定义语言)操作,例如“create table”和“describe table”。
HCatalog提供了数据的关系视图。数据存储在表中,这些表可以放在数据库中。表也可以在一个或多个键上分区。对于一个键(或一组键)的给定值,将有一个分区包含具有该值(或一组值)的所有行。
修改:大部分文字来自https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat。
答案 4 :(得分:3)
Hcatalog是Hadoop文件系统的元数据管理。可以通过使用rest api的webhcat访问Hcatalog。无论在hcatalog中创建的表格都可以通过蜂巢和猪进行访问。
答案 5 :(得分:0)
HCatalog 是 Hadoop 的表存储管理工具,可将 Hive 元存储的表格数据公开给其他 Hadoop 应用程序。它使使用不同数据处理工具的用户能够轻松地在表格网格中写入数据。它确保用户不必担心存储格式。