On this page
使用 HCatalog REST API(WebHCat)
Version information
HCatalog 项目毕业于 Apache 孵化器,并于 2013 年 3 月 26 日与 Hive 项目合并。
Hive 版本 0.11.0 是第一个包含 HCatalog 及其 REST API WebHCat 的版本。
WebHCat 简介
本文档介绍了 HCatalog REST API * WebHCat ,以前称为 Templeton *。如果要查找 Hive GUI 而不是 API,请参阅Hive Web 界面(在 2.2.0 版中已删除)。
如下图所示,开发人员发出 HTTP 请求以从应用程序内部访问Hadoop MapReduce(或YARN),Pig,Hive和HCatalog DDL。此 API 使用的数据和代码保存在HDFS中。 HCatalog DDL 命令在需要时直接执行。 WebHCat(Templeton)服务器将 MapReduce,Pig 和 Hive 作业放在队列中,并且可以根据需要监视它们的进度或停止它们。开发人员在 HDFS 中指定应放置 Pig,Hive 和 MapReduce 结果的位置。
WebHCat or Templeton?
为了向后兼容,在某些情况下,WebHCat 仍使用原始名称 Templeton。请参阅下面的#Project Name。
URL Format
使用以下 URL 格式访问 HCatalog 的 REST 资源:
http://
您的服务器 /templeton/v1/
资源
其中,“ * yourserver *”替换为服务器名称,而“ * resource *”替换为 HCatalog 资源名称。
例如,要检查服务器是否正在运行,可以访问以下 URL:
ht
tp://www.myserver.com/templeton/v1/status
有关各个 REST 资源的信息,请参见参考:WebHCat 资源。
Security
当前版本支持两种类型的安全性:
默认安全性(无需其他身份验证)
通过Kerberos进行身份验证
Standard Parameters
每个 REST 资源都可以接受以下参数以帮助进行身份验证:
user.name:用户名(字符串)。仅在使用默认安全性时有效。
SPNEGO 凭据:使用 Kerberos 身份验证运行时。
Specifying user.name
user.name 参数是 POST 调用的 POST 参数的一部分,而其他调用是 URL 的一部分。
例如,要在 GET:table 命令中指定 user.name:
% curl -s 'http://localhost:50111/templeton/v1/ddl/database/default/table/my_table?user.name=ctdean'
并在 POST:table 命令中指定 user.name:
% curl -s -d user.name=ctdean \
-d rename=test_table_2 \
'http://localhost:50111/templeton/v1/ddl/database/default/table/test_table'
安全错误响应
如果在需要时未提供 user.name 参数,则将返回以下错误:
{
"error": "No user found. Missing user.name parameter."
}
WebHDFS 和代码推送
HCatalog 的 REST 资源使用的数据和代码必须首先放置在 Hadoop 中。当需要将文件放入 HDFS 时,您可以使用最方便的方法。我们建议使用 WebHDFS,因为它提供了一个 REST 接口,用于将文件移入和移出 HDFS。
错误代码和响应
服务器返回以下 HTTP 状态代码。
200 OK: 成功!
400 错误的请求: 该请求无效。
401 未经授权: 凭证丢失或不正确。
404 未找到: 所请求的 URI 无效或所请求的资源不存在。
500 Internal Server Error: 我们收到了意外的结果。
503 忙,请重试: 服务器忙。
服务器直接返回的其他数据以 JSON 格式返回。 JSON 响应的大小上限为 1MB。超过此限制的响应必须使用提供的选项存储到 HDFS 中,而不是直接返回。如果 HCatalog DDL 命令返回的结果可能大于 1MB,则建议执行相应的 Hive 请求。
Log Files
服务器在运行时会创建三个日志文件:
templeton.log 是 log4j 日志。这是应用程序写入的主日志。
templeton-console.log 是启动服务器时 Java 写到 stdout 的内容。它是少量数据,类似于“ hcat.out”。
tempelton-console-error.log 是 Java 写入 stderr 的内容,类似于“ hcat.err”。
在 tempelton-log4j.properties 文件中,可以使用变量 Templeton.log.dir 设置这些日志的位置。在服务器启动脚本中设置了此 log4j.properties 文件。
Hive 日志文件在Getting Started的Hive Logging部分中描述。
Project Name
将 REST API 添加到 HCatalog 的原始工作称为 Templeton。为了向后兼容,该名称仍出现在 URL,日志文件名称等中。Templeton 名称取自 E. B. White 屡获殊荣的 child 小说《夏洛特网络》中的角色。小说的主角是一头名叫威尔伯的猪。邓普顿(Templeton)是一只老鼠,他在旋转网时按照夏洛特的要求,通过办事和交货来帮助威尔伯。
Navigation Links
Next: WebHCat Installation
一般:WebHCat Manual – HCatalog Manual – Hive Wiki 主页 – Hive 项目 site