实际上我正在使用一个大数据环境,我用Apache Nifi来摄取和处理数据。结果保存在HBase表中,我想用Hive访问存储的数据。现在我想设置一个REST服务来从HBase表中读取。实施例
获取http://localhost:50111/userid/42 - > http-response {“userid”:42,“name”:“foobar”}
我认为这是现有解决方案的标准问题,但事实并非如此。问题是,我无法将结果作为http响应发送。
首先我尝试使用Nifi并且web服务正在运行,但仅限于静态内容,例如“200 OK”或“404 Not found”。所以我试试没有Nifi。我阅读并且每个人都说,WebHCat是可以使用的工具,因为它是Hive的REST API工具。大!但是......同样的问题:我可以通过HBase上的WebHCat和Hive在REST服务上执行查询,但是没有选项来检索结果。
根据我目前的知识,没有现成的解决方案,我必须开发自己的REST服务。对?真的吗?!
我是否必须开发自己的REST服务,或者在这种情况下最佳做法是什么? Nifi? Hiveserver2?另外,我想用Knox和Ranger保护REST服务。
我希望有人可以帮助我并向我展示正确的(!)方式,因为如果有更好或最佳实践解决方案,我不想做出新的和特别的东西。
感谢 〜N3
答案 0 :(得分:1)
@ n-3 - 你有很多选择。
查看http://hortonworks.com/blog/hbase-via-hive-part-1/与hive的基本hbase交互。对于这种用例http://phoenix.apache.org/,你也可能更好地看凤凰。
如果您确实按照WebHCat和/或HiveServer2的方向进行操作,您已经可以通过Apache Knox通过Apache Ranger提供的访问控制来处理对它们的访问。
此外,Apache HBase还有自己的REST服务器,您也可以通过Apache Knox访问它并使用Apache Ranger进行保护。 http://hbase.apache.org/book.html#_rest
希望这能提供一些帮助。