(1)JanusGraph学习----简介
一、简介
1.1.基本介绍
JanusGraph是一个分布式的图数据库。是由linux基金会2017年开源的,完全继承了titan(2012-2016年,后被收购gameover)。通过hadoop来进行数据处理和分析,支持全文索引。和neo4j单机版不同,本身不存储图数据。依赖于后端支持的数据库,标配的有:hbase,Apache Cassandra。
1.2.特性
支持非常大的图数据。JanusGraph根据群集中的计算机数量进行缩放。
支持很多并发事务和操作图处理。JanusGraph的事务容量随群集中的计算机数量而变化,并以毫秒为单位回答巨大图数据上的复杂遍历查询。
通过Hadoop框架支持全局图分析和批处理图处理。
支持对非常大的图上的顶点和边缘进行地理,数值范围和全文搜索。
对Apache TinkerPop公开的流行属性图数据模型的本机支持。
对图遍历语言Gremlin的原生支持。
与Gremlin Server轻松集成,实现与编程语言无关的连接。
众多图形级配置提供了调整性能的旋钮。
以顶点为中心的索引提供顶点级查询,以缓解臭名昭着的超级节点问题。
提供优化的磁盘表示,以便有效地使用存储和访问速度。
在Apache 2许可下开源。
1.3.JanusGraph与Apache Cassandra结合的优点
连续可用,没有单点故障。
由于没有主/从架构,因此图库没有读/写瓶颈。
弹性可扩展性允许引入和移除机器。
缓存层可确保内存中可连续访问的数据。
通过向群集添加更多计算机来增加缓存的大小。
与Apache Hadoop集成。
在Apache 2许可下开源
1.4.JanusGraph与HBase结合的优点
与Apache Hadoop生态系统紧密集成。
本机支持强一致性。
通过添加更多机器实现线性可扩展性。
严格一致的读写操作。
方便的基类,用于使用HBase表支持Hadoop MapReduce作业。
支持通过JMX导出指标。
在Apache 2许可下开源。
1.5.JanusGraph和CAP定理
使用数据库时,应充分考虑CAP定理(C =一致性,A =可用性,P =可分区性)。JanusGraph与3个支持后端一起发布:Apache Cassandra,Apache HBase和Oracle Berkeley DB Java Edition。请注意,BerkeleyDB JE是一个非分布式数据库,通常仅与JanusGraph一起用于测试和探索目的。HBase以产量为代价优先考虑一致性,即完成请求的概率。Cassandra以收获为代价优先考虑可用性,即查询答案的完整性(可用数据/完整数据)。
二、体系结构概述
JanusGraph是一个图数据库引擎。JanusGraph本身专注于紧凑图序列化,丰富的图数据建模和高效的查询执行。此外,JanusGraph利用Hadoop进行图分析和批量图处理。JanusGraph为数据持久性,数据索引和客户端访问实现了强大的模块化接口。JanusGraph的模块化架构使其能够与各种存储,索引和客户端技术进行互操作; 它还简化了扩展JanusGraph以支持新的组件的过程。
在JanusGraph和磁盘之间有一个或多个存储和索引适配器。JanusGraph标配以下适配器,但JanusGraph的模块化架构支持第三方适配器。
数据存储:
Apache Cassandra
Apache HBase
Oracle Berkeley DB Java版
索引,加速并启用更复杂的查询:
Elasticsearch
Apache Solr
Apache Lucene
从广义上讲,应用程序可以通过两种方式与JanusGraph进行交互:
将JanusGraph嵌入到执行Gremlin查询的应用程序中,直接针对同一JVM中的图形。查询执行,JanusGraph的缓存和事务处理都发生在与应用程序相同的JVM中,而从存储后端进行的数据检索可能是本地的或远程的。
通过向服务器提交Gremlin查询来与本地或远程JanusGraph实例交互。JanusGraph本身支持Apache TinkerPop堆栈的Gremlin Server组件。
图2.1 JanusGraph架构和上下文:
相关文章