如何使用Spark分析云HBase的数据
这篇文章将为大家详细讲解有关如何使用Spark分析云HBase的数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1 云HBase查询分析的现状
HBase原生API:HBase原生API适合基于row key做点查,这个是HBase最擅长的查询场景
Phoenix:Phoenix作为HBase的SQL层,使用二级索引的技术,擅长多条件组合查询;Phoenix没有自己的计算资源,类似groupby这样的复杂查询需要借助HBase的协处理器来完成,这样一方面性能不好,同时会影响HBase集群的稳定性;
Spark:具有丰富的算子支持复杂分析,使用Spark集群的计算资源,通过并发分析的方式可以提高性能,同时不影响HBase集群的稳定性。
2 Spark分析HBase的方式对比
Spark分析HBase数据有“RDD API”、“SQL API”、“HFILE”三种方式,相关对比如下:
对于数据动态更新增加的小表推荐使用SQL API的方式,可以有效的优化分析,减少对HBase集群稳定性的影响;对于静态表或者全量静态表的分析推荐使用分析HFILE的方式直读HDFS,这样可以完全不影响HBase集群稳定性;不推荐使用RDD API 的方式,这种方式一方没有优化性能差,同时在高并发以及表数据量大时,会严重影响HBase集群的稳定性,从而影响在线业务。
3 三种方式的具体使用
云HBase团队为大家提供了一个github项目供大家参考使用上面的三种方式来开发Spark分析HBase的程序,项目地址:
https://github.com/lw309637554/alicloud-hbase-spark-examples?spm=a2c4e.11153940.blogcont573569.14.1b6077b4MNpI9X
依赖项:需要下载云HBase及云Phoenix的client包
分析HFILE:
需要先开通云HBase的HDFS访问权限,参考文档
在hbase shell中对表生成snapshot表“snapshot 'sourceTable', ‘snapshotName'”
在项目中配置自己的hdfs-sit.xml文件,然后通过直读HDFS的方式分析snapshot表
具体的example
RDD API对应:org.apache.spark.hbase.NativeRDDAnalyze
SQL API对应:org.apache.spark.sql.execution.datasources.hbase.SqlAnalyze
分析HFILE对应:org.apache.spark.hfile.SparkAnalyzeHFILE
关于“如何使用Spark分析云HBase的数据”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341