apache-hive / 3.1.1 / reference / WebHCat_InstallWebHCat.html

WebHCat Installation

WebHCat 与 Hive 一起安装

Version

从 Hive 版本 0.11.0 开始,WebHCat 和 HCatalog 随 Hive 一起安装。

如果从二进制压缩包安装 Hive,则 WebHCat 服务器命令webhcat_server.sh位于hcatalog/sbin目录中。

配置单元的安装记录为here

WebHCat 安装过程

注意: WebHCat 最初称为 Templeton。为了向后兼容,该名称仍出现在 URL,日志文件名称,变量名称等中。

  • 确保所需的相关安装就位,然后将所需文件放入Hadoop 分布式缓存

  • 下载并解压缩 HCatalog 发行版。

  • TEMPLETON_HOME环境变量设置为 HCatalog REST 服务器安装的基础。通常与HCATALOG_HOME相同。这用于查找 WebHCat(Templeton)配置。

  • 设置JAVA_HOMEHADOOP_PREFIXHIVE_HOME环境变量。

  • 查看configuration并根据需要更新或创建webhcat-site.xml。确保特定于站点的组件安装位置准确无误,尤其是 Hadoop 配置路径。使用文件系统路径的配置变量会尝试使用合理的默认值,但是指定完整的路径始终是安全的。

  • 验证是否已安装 HCatalog,并且hcat可执行文件在PATH中。

  • 使用 HCatalog 顶层目录中的命令ant jar构建 HCatalog。

  • 在 HCatalog 与 Hive 合并之前,使用命令“ hcatalog/sbin/webhcat_server.sh start”启动 REST 服务器以获取 Hive 0.11.0 及更高版本,或者使用“ sbin/webhcat_server.sh start”启动安装。

  • 检查您的本地安装是否有效。假设服务器在端口 50111 上运行,则以下命令将提供与所示类似的输出。

% curl -i http://localhost:50111/templeton/v1/status
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Server: Jetty(7.6.0.v20120127)

{"status":"ok","version":"v1"}
%

Server Commands

  • 启动服务器: sbin/webhcat_server.sh start(HCatalog 0.5.0 和更早版本– Hive 版本 0.11.0 之前)

  • hcatalog/sbin/webhcat_server.sh start(Hive 版本 0.11.0 及更高版本)

  • 停止服务器: sbin/webhcat_server.sh stop(HCatalog 0.5.0 和更早版本– Hive 版本 0.11.0 之前)

  • hcatalog/sbin/webhcat_server.sh stop(Hive 版本 0.11.0 及更高版本)

  • 端到端构建,运行,测试: ant e2e

Requirements

  • Ant,版本 1.8 或更高版本

  • Hadoop,版本 1.0.3 或更高版本

  • 如果使用的是 ZooKeeper 存储类,则必须为ZooKeeper。 (请确保查看并更新与 ZooKeeper 相关的WebHCat configuration。)

  • HCatalog,版本 0.5.0 或更高。 hcat可执行文件必须同时在PATH中,并且必须在WebHCat configuration中正确配置。

  • 必须向运行服务器的用户授予权限。 (见下文.)

  • 如果运行安全群集,则必须创建 Kerberos 密钥和主体。 (见下文.)

  • Hadoop 分布式缓存。要使用HivePigHadoop Streaming资源,请参阅以下说明,将所需文件放置在 Hadoop 分布式缓存中。

Hadoop 分布式缓存

服务器要求某些文件可以在Hadoop 分布式缓存上访问。例如,为避免在群集中的所有位置安装 Pig 和 Hive,每当调用这些资源时,服务器就会从 Hadoop 分布式缓存中收集 Pig 或 Hive 版本。将以下组件放入 HDFS 后,请根据需要更新站点配置。

  • Hive: Download Hive tar.gz 文件并将其放在 HDFS 中。例如,对于 Hive 版本 0.11.0:
hadoop fs -put /tmp/hive-0.11.0.tar.gz /apps/templeton/hive-0.11.0.tar.gz
  • Pig: Download Pig 的 tar.gz 文件并将其放入 HDFS。例如,对于 Pig 版本 0.11.1:
hadoop fs -put /tmp/pig-0.11.1.tar.gz /apps/templeton/pig-0.11.1.tar.gz
  • Hadoop 流:hadoop-streaming-*.jar放入 HDFS。使用以下命令:
hadoop fs -put <hadoop streaming jar> \
  <templeton.streaming.jar>/hadoop-streaming-*.jar

其中*<templeton.streaming.jar> 是在webhcat-default.xml中定义的属性值,可以在webhcat-site.xml文件中覆盖,而<hadoop streaming jar> *是您的 Hadoop 版本中的 Hadoop Streaming jar:

  • Hadoop 1.x tar 中的hadoop-1.*/contrib/streaming/hadoop-streaming-*.jar

    • Hadoop 2.x tar 中的hadoop-2.*/share/hadoop/tools/lib/hadoop-streaming-*.jar
      For example,
hadoop fs -put hadoop-2.1.0/share/hadoop/tools/lib/hadoop-streaming-2.1.0.jar \
  /apps/templeton/hadoop-streaming.jar
  • Override Jars: 将所需的 Override jars(如果有)放入 HDFS。 注意: 1.0.3 之前的 Hadoop 版本需要一个补丁(HADOOP-7987)才能正确运行 WebHCat。此修补程序与 WebHCat 一起分发(位于templeton/src/hadoop_temp_fix/ugi.jar),应放置在 HDFS 中,如当前的默认配置所示。
hadoop fs -put ugi.jar /apps/templeton/ugi.jar

可以使用以下 WebHCat 配置变量来指定这些文件在缓存中的位置以及在归档文件中的安装位置。 (有关更改 WebHCat 配置参数的更多信息,请参见Configuration文档。)某些默认值根据发行版号而有所不同。下面显示的默认值适用于 Hive 版本 0.11.0 中包含的 WebHCat 版本。 HCatalog 0.5.0 文档中显示了先前版本的默认值。

Name 默认值(配置单元 0.11.0) Description
templeton.pig.archive hdfs:///apps/templeton/pig-0.11.1.tar.gz Pig 存档的路径。
templeton.pig.path pig-0.11.1.tar.gz/pig-0.11.1/bin/pig Pig 可执行文件的路径。
templeton.hive.archive hdfs:///apps/templeton/hive-0.11.0.tar.gz Hive 存档的路径。
templeton.hive.path hive-0.11.0.tar.gz/hive-0.11.0/bin/hive Hive 可执行文件的路径。
templeton.streaming.jar hdfs:///apps/templeton/hadoop-streaming.jar Hadoop 流 jar 文件的路径。
templeton.override.jars hdfs:///apps/templeton/ugi.jar 要添加到所有 Map Reduce 作业的HADOOP_CLASSPATH的罐子。这些 jar 必须存在于 HDFS 上。 Hadoop 1.0.1 及更高版本不需要此功能。

Permissions

必须授予运行 WebHCat 可执行文件的用户运行其他用户的作业的权限。也就是说,WebHCat 服务器将模拟 Hadoop 群集上的用户。

创建(或分配)将运行 WebHCat 服务器的 Unix 用户。呼叫此 USER。请参见下面的Secure Cluster部分,以选择 Kerberos 群集上的用户。

修改 Hadoop core-site.xml 文件并设置以下属性:

Variable Value
hadoop.proxyuser.USER.groups 以逗号分隔的 Unix 组列表,将模拟其用户。
hadoop.proxyuser.USER.hosts 以逗号分隔的将运行 HCatalog 和 JobTracker 服务器的主机列表。

Secure Cluster

要在安全群集上运行 WebHCat,请遵循上面的Permissions指示,但是为 WebHCat 服务器创建名称为USER/host@realm的 Kerberos 主体。

另外,设置 WebHCat 配置变量templeton.kerberos.principaltempleton.kerberos.keytab

代理用户支持

WebHCat 中的代理用户支持允许 WebHCat 的调用者指示 WebHCat 以特定用户的身份在 Hadoop 群集上运行命令。

典型示例是 Joe 使用 Hue 通过 WebHCat 提交 MapReduce 作业。对于以下描述,假设 Joe 的 Unix 名称为'joe',Hue 为'hue',WebHCat 为'hcat'。如果在调用 WebHCat 时 Hue 指定了“ doAs = joe”,则 WebHCat 会将 MR 作业提交为“ joe”,以便 Hadoop 集群可以针对“ joe”执行安全检查。如果未指定 doAs 值,则 MR 作业将作为用户“色相”提交。

要设置代理用户支持,请在配置文件中进行以下编辑。

在 hive-site.xml 中,设置:

Variable Value
hive.security.metastore.authorization.manager org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider
hive.security.metastore.authenticator.manager org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
hive.metastore.pre.event.listeners org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener
hive.metastore.execute.setugi true

在 webhcat-site.xml 中,设置:

Variable Value
webhcat.proxyuser.hue.groups Unix 组的逗号分隔列表,其用户可能被'hue'模仿。
webhcat.proxyuser.hue.hosts 以逗号分隔的主机列表,允许通过“色相”提交请求。在典型示例中,这将是运行 Hue 的服务器。

确保在 core-site.xml 中也设置了以下内容:

Variable Value
hadoop.proxyuser.hcat.group 以逗号分隔的 Unix 组列表,其用户可能被'hcat'模拟。
hadoop.proxyuser.hcat.hosts 以逗号分隔的主机列表,允许“ hcat”提交请求。

Navigation Links

Previous: Using WebHCat
Next: Configuration

配置单元安装:Installing Hive
HCatalog 安装:从 Tarball 安装

一般:WebHCat ManualHCatalog ManualHive Wiki 主页Hive 项目 site