新数仓系列:Hbase周边生态梳理(1)

本文简单梳理下其中一个应用比较广的HBASE的生态,可能不全,有更多的请大家留言。具体HBASE的基本原理扫描大家可以自行百度下,另外,要系统掌握HBASE,推荐看下《HBASE权威指南》。

1 Kerberos

什么是Kerberos? Kerberos is a network authentication protocol. It is designed to provide strong authentication for client/server applications by using secret-key cryptography.

简单地说,Kerberos是一种认证机制,通过密钥系统为客户端/服务器应用程序提供强大的认证服务。

Kerberos存在的意义

在Hadoop1.0.0或者CDH3 版本之前,并不存在安全认证一说。默认集群内所有的节点都是可靠的,值得信赖的。用户与HDFS或者M/R进行交互时并不需要进行验证。导致存在恶意用户伪装成真正的用户或者服务器入侵到hadoop集群上,恶意的提交作业,修改JobTracker状态,篡改HDFS上的数据,伪装成NameNode 或者TaskTracker接受任务等。尽管在版本0.16以后, HDFS增加了文件和目录的权限,但是并没有强认证的保障,这些权限只能对偶然的数据丢失起保护作用。恶意的用户可以轻易的伪装成其他用户来篡改权限,致使权限设置形同虚设,不能够对Hadoop集群起到安全保障。

在Hadoop1.0.0或者CDH3版本后,加入了Kerberos认证机制。使得集群中的节点就是它们所宣称的,是信赖的。Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。防止了恶意的使用或篡改Hadoop集群的问题,确保了Hadoop集群的可靠安全。

Kerberos的工作原理

· Client向KDC发送自己的身份信息,完成认证,获取TGT(ticket-granting ticket)

· Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别

① Client将之前获得的TGT和要请求的服务信息发送给KDC

② KDC生成用于访问该服务的Session Ticket发给Client。 Session Ticket使用KDC与Service之间的密钥加密

③ Client将刚才收到的Ticket转发到Service。由于Client不知道KDC与Service之间的密钥,所以它无法篡改Ticket中的信息

④ Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,验证Client的身份。

2 Phoenix

Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。

put the SQL back in NoSQL

Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。

HBase的查询工具有很多,如:Hive、Tez、Impala、Spark SQL、Phoenix等。

Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:

· 将SQL编译成原生的HBase scans。

· 确定scan关键字的最佳开始和结束

· 让scan并行执行

· ...

3 多维查询kylin

Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

Kylin相当于给HBASE提供了一个多为查询的SQL能力。

4 时序列数据库OpenTSDB

OpenTSDB ,可以认为是一个时系列数据(库),它基于HBase存储数据,充分发挥了HBase的分布式列存储特性,支持数百万每秒的读写,它的特点就是容易扩展,灵活的tag机制。

其最主要的部件就是TSD了,这是接收数据并存储到HBase处理的核心所在。而带有C(collector)标志的Server,则是数据采集源,将数据发给 TSD服务。

5 地理数据处理套件GeoMesa

GeoMesa 是由locationtech开源的一套地理大数据处理工具套件。其可在分布式计算系统上进行大规模的地理空间查询和分析。使用GeoMesa开源帮助用户管理、使用来自于物联网、社交媒体、手机应用的海量的时空(spatio-temporal)数据。

GeoMesa支持将海量的时空数据存储到Accumulo,HBase,Google Bigtable和Cassandra数据库中,并提供高效的索引来读取、查询这些数据。并支持通过指定空间条件(距离和范围)来快速查询。另外GeoMesa还基于Apache Kafka提供了时空数据的近实时流处理功能。

通过和GIS Server(GeoServer)的整合, GeoMesa 提供了通过标准OGC接口(WMS/WFS)访问数据的能力,通过这些接口,用户可以方便对GeoMesa处理的数据进行展示和分析,比如查询、直方图、时间序列分析等。

为什么选择GeoMesa

能够存储和处理海量时空数据

支持实时性强、需要快速读写的数据

支持spark分析

支持水平扩展

通过GeoServer提供地图服务,并支持Common Query Language (CQL)

项目地址

http://www.geomesa.org/

授权

GeoMesa使用Apache License Version 2.0协议。

http://apache.org/licenses/LICENSE-2.0.html

6 图数据库JanusGraph

Titan在停止更新了很长一段时间后,fork出了JanusGraph继续开源发展。JanusGraph是一个图形数据库引擎。JanusGraph本身专注于紧凑的图形序列化、丰富的图形数据建模和高效的查询执行。此外,JanusGraph利用Hadoop进行图形分析和批处理图处理。JanusGraph实现了健壮的模块化接口,用于数据持久性、数据索引和客户端访问。JanusGraph的模块化体系结构允许它与广泛的存储、索引和客户端技术进行互操作;它还简化了扩展JanusGraph以支持新用户的过程。

在JanusGraph和磁盘之间,有一个或多个存储和索引适配器。JanusGraph以以下适配器为标准,但是JanusGraph的模块化体系结构支持第三方适配器

JanusGraph 体系结构

1、JanusGraph的应用分为批处理(OLAP)和流式计算(OLTP) 2、批处理(OLAP),常用在大数据平台使用Spark、Giraph、Hadoop工具使用 3、流式计算(OLTP),使用TinkerPop中的Traversal(遍历)工具使用 4、数据可以存储到Cassandra、Hbase、BerkeleyDB中 5、外部查询索引存储到ElasticSearch、Solr、Lucene中

写在最后:本文主要简单总结下Hbase周边配合生态,提供SQL接口,多维查询能力,以及用于车联网,时序,地理数据处理等。后面持续写写新数仓相关文章,以飨读者。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2017-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

Apache Spark 2.3 加入支持Native Kubernetes及新特性文档下载

问题导读 1.什么是Kubernetes? 2.在Kubernetes集群尝试新功能,该如何实现? 3.观看群集上创建的Spark资源,该如何操作? 在开始...

3434
来自专栏北京马哥教育

从解决Redis访问超时的问题谈起——故事比结果要精彩

这周终于解决了Redis访问经常超时的问题,终于可以踏实睡觉了。从上周就开始纠结在这个问题上,可以用寝食难安来形容,感觉这个问题就像个定时炸弹一样,虽然根据手搜...

3195
来自专栏开源项目

Git 项目推荐 | 基于 C# 的极速 WEB + ORM 框架

NFine 是基于 C# 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展,让Web开发更迅速、简单...

3418
来自专栏北京马哥教育

【Zabbix】中小型企业Zabbix监控实战之告警大全

转载声明:本文转载自「数睿技术」 前言 本篇文章介绍目前常用的告警方式,以及对功能实现做讲解。本篇文章中出现的代码片段可以回复"监控脚本"获取完整代码。 ...

32910
来自专栏数据和云

走向云端:Oracle SQL Developer Web 即将上线!

引言:Oracle SQL Developer 是一款免费的桌面应用,是数据库的图形用户界面,它具有 DBA 的全部功能,能够对 PL/SQL 进行开发,还有命...

942
来自专栏开源项目

GVP 特辑!Java WEB 应用开发工具 | 码云周刊第 38 期

— 01 — 项目名称: 分布式敏捷开发系统架构 zheng ? 项目简介: 基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系...

3127
来自专栏吴伟祥

ELK之Logstash简单介绍 转

https://www.elastic.co/products/logstash

1055
来自专栏Golang语言社区

系统架构-基础篇-(高性能基础建设说明与选型条件)

本文牵扯的面积可能会比较泛,或者说比较大,在这个层面很多人也有自己的见解,所以我这也仅仅是抛砖引玉,结合前面讲述的一些基础技术,从思想中阐述更为深入的架构思想基...

2815
来自专栏AlgorithmDog的专栏

前端和后端分工的三种模式

最近在捣腾前端的东西,学习了一下前端知识。因这方面的知识太浅薄了,这篇简陋的博客就当抛砖引玉。 在Web开发中,前端攻城狮和后端攻城狮是...

1988
来自专栏嵌入式程序猿

移植uIP开源协议栈需注意的几点

随着物联网的发展,越来越多的设备需要加入联网的功能,Uip是专为嵌入式设计的轻型开源TCP/IP协议栈,很小的代码尺寸,因为嵌入式控制器资源的限制,所以不是全功...

3379

扫描关注云+社区