On this page
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_HOME
,HADOOP_PREFIX
和HIVE_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 分布式缓存。要使用Hive,Pig或Hadoop 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 2.x tar 中的
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.principal
和templeton.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 Manual – HCatalog Manual – Hive Wiki 主页 – Hive 项目 site