在集群上运行WebHCat是可能的还是明智的?
我对这项技术很陌生,我想知道是否可以使用WebHCat作为REST接口来运行Hive查询。问题中的集群正在运行Hive。
发布于 2014-04-03 12:27:42
我无法让它工作,但WebHCat实际上是默认安装在亚马逊的EMR实例。
要让它运行,您必须执行以下操作,
chmod u+x /home/hadoop/hive/hcatalog/bin/hcat
chmod u+x /home/hadoop/hive/hcatalog/sbin/webhcat_server.sh
export TEMPLETON_HOME=/home/hadoop/.versions/hive-0.11.0/hcatalog/
export HCAT_PREFIX=/home/hadoop/.versions/hive-0.11.0/hcatalog/
/home/hadoop/hive/hcatalog/webhcat_server.sh start然后,您可以使用curl确认它在端口50111上运行,
curl -i http://localhost:50111/templeton/v1/status要在其他机器上达到50111,您必须在EC2电子病历安全组中打开端口。
然后,当您在hcatalog中运行查询时,您必须配置要“代理”的用户。我实际上并没有保存这个配置,但它是在WebHCat文档中概述。我希望他们有一些具体的例子,但基本上,我最终将本地'hadoop‘用户配置为运行查询的用户,这不是最安全的事情,我确信,但我只是想让它启动并运行。
然后尝试查询给了我这个错误,
{“错误”:“服务器IPC版本9无法与客户端版本4通信”}
解决方法是关闭最新的EMR映像(Hadoop2.2.0为3.0.4),切换为Hadoop1.0映像(Hadoop1.0.3为2.4.2)。
然后,我遇到了另一个问题,它无法正确地找到Hive,在与配置进行了更多的斗争之后,我决定花足够的时间让它正常工作,并决定直接与Hive通信(为RBHive使用RBHive和JDBC )。
为了回答我自己的问题,在EMR上运行WebHCat是可能的,但它根本没有文档记录(谷歌在任何地方都没有引导我,这就是为什么我首先创建了这个问题,现在它是搜索"WebHCat EMR“时的第一个热门),WebHCat文档还有很多需要改进的地方。让它开始工作似乎很痛苦,尽管我希望通过写下最初的步骤,有人会走出来,在剩下的路上拿出来,然后贴出一个完整的答案。
发布于 2014-04-03 01:41:52
我没有测试它,但它应该是可行的。
EMR允许自定义引导操作,即启动节点运行的脚本。您可以使用引导操作来安装其他软件和更改集群上应用程序的配置,请参阅http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html中的详细信息。
我将创建一个shell脚本来安装WebHCat,并首先在一个常规的EC2实例上测试您的脚本(在EMR上下文之外--就像测试确保您的脚本正常一样)。
您可以使用EC2的用户数据属性来测试脚本,通常如下:
#!/bin/bash curl http://path_to_your_install_script.sh | sh
然后--一旦您知道脚本正在工作--将它作为集群的自定义引导操作提供给S3桶和按照下面的说明包括您的脚本上的集群。
-Seb
https://stackoverflow.com/questions/22643247
复制相似问题