用于处理hbase中存储的数据的restapi

jaxagkaj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(404)

我在hbase商店有很多这样的记录(百万)

key = user_id:service_id:usage_timestamp value = some_int

这意味着用户在使用时间戳使用了服务id。
现在我想提供一些restapi来聚合这些数据。例如“查找请求用户的所有值之和”或“查找最大值”等等。所以我在找最好的练习。简单的java应用程序没有达到我的性能预期。
我目前的方法是通过ApacheSpark应用程序聚合数据,看起来很好,但在java rest api中使用它时存在一些问题,因为spark不支持请求-响应模型(我还查看了spark job server,看起来很原始和不稳定)
谢谢,
有什么想法吗?

roqulrg3

roqulrg31#

我看到两种可能性:
livy rest server-新的rest服务器,由cloudera创建。你可以用其他方式提交spark作业。它是由最大的大数据/spark公司之一的cloudera开发的新产品,因此很有可能在未来开发,而不是放弃
您可以运行spark thrift server,并像通过jdbc连接普通数据库一样进行连接。这是你的文件。工作流程:读取数据,预处理,然后由spark thrift服务器共享
如果您想将第三方应用程序与spark隔离开来,您可以创建一个简单的应用程序,该应用程序将具有用户友好的端点,并将端点接收到的查询转换为livy spark作业或将与spark thrift server一起使用的sql

ovfsdjhp

ovfsdjhp2#

如果您使用cloudera(即cloudera搜索),我会提供hbase+solr
solrjapi,用于聚合数据(而不是spark),以便与rest服务交互
solr解决方案(在cloudera及其cloudera搜索中):
在solr中创建一个集合(类似于hbase表)。
索引:使用nrt lily indexer或自定义mapreduce solr document creator将数据作为solr文档加载。
如果您不喜欢nrt-lily indexer,您可以使用spark或mapreduce job与solrj一起为ex:spark-solr建立索引:用于将solr中的数据作为spark-rdd读取并使用solrj将spark中的对象索引到solr中的工具。
数据检索:使用solrj从web服务调用中获取solr文档。在Solr杰,
有一个fieldstatinfo,sum,max等等。。。。可以实现
有镶嵌面和镶嵌面枢轴来分组数据
rest api调用支持分页
您可以将solr结果与jersey或其他web服务集成,因为我们已经用这种方式实现了。

/**This method returns the records for the specified rows from Solr Server which you can integrate with any rest api like jersey etc...
     */
    public SolrDocumentList getData(int start, int pageSize, SolrQuery query) throws SolrServerException {
        query.setStart(start); // start of your page
        query.setRows(pageSize);// number of rows per page
        LOG.info(ClientUtils.toQueryString(query, true));
        final QueryResponse queryResponse = solrCore.query(query, METHOD.POST); // post is important if you are querying huge result set Note : Get will fail for huge results
        final SolrDocumentList solrDocumentList = queryResponse.getResults();
        if (isResultEmpty(solrDocumentList)) { // check if list is empty
            LOG.info("hmm.. No records found for this query");
        }
        return solrDocumentList;

}
也看看
我在“在hbase之上的solr中创建索引”中的回答
https://community.hortonworks.com/articles/7892/spark-dataframe-to-solr-cloud-runs-on-sandbox-232.html
注意:我认为ElasticSearch也可以实现同样的效果。但根据我的经验,我对solr+solrj很有信心

相关问题