如何在 Hadoop 上设置一个结果为 hhtprespon 的 REST 服务

How to setup a REST service with a result as hhtprespon on Hadoop

实际上我正在使用一个大数据环境,我在其中使用 Apache Nifi 摄取和处理数据。结果保存在 HBase table 中,我想使用 Hive 访问存储的数据。现在我想设置一个 REST 服务来读取 HBase table。示例

get http://localhost:50111/userid/42 --> http-response { "userid": 42, "name": "foobar" }

我认为这是现有解决方案的标准问题,但事实并非如此。问题是,我无法将结果作为 http-response 发送。

首先,我使用 Nifi 进行尝试,网络服务正常运行,但仅适用于“200 OK”或“404 未找到”等静态内容。所以我在没有Nifi的情况下尝试。我读过,每个人都在说,WebHCat 是一个不错的工具,因为它是 Hive 的 REST API 工具。伟大的!但是...同样的问题:我可以在 HBase 上使用 WebHCat 和 Hive 通过 REST 服务执行查询,但是没有检索结果的选项。

以我目前的知识,没有现成的解决方案,我必须开发自己的 REST 服务。正确的?真的吗?!

我是否必须开发自己的 REST 服务,或者在这种情况下最佳做法是什么?妮菲?蜂巢服务器 2?此外,我想使用 Knox 和 Ranger 保护 REST 服务。

我希望有人能帮助我并告诉我正确的(!)方法,因为如果有更好或最佳实践解决方案,我不想做一些新的和特别的东西。

谢谢 ~n3

@n-3 - 这里有多种选择。

看看http://hortonworks.com/blog/hbase-via-hive-part-1/ for a basic hbase interaction with hive. You are also probably better off looking at Phoenix for this sort of usecase http://phoenix.apache.org/

如果您选择 WebHCat and/or HiveServer2,您已经可以通过 Apache Ranger 提供的访问控制通过 Apache Knox 处理对两者的访问。

此外,Apache HBase 有自己的 REST 服务器,您也可以通过 Apache Knox 访问它并使用 Apache Ranger 进行保护。 http://hbase.apache.org/book.html#_rest

希望这能提供一些帮助。