暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JanusGraph学习----1.简介

嘎嘎的地球小屋 2021-05-16
1370

本周开始,笨小葱会分享一些以前整理的技术知识。暂时以分布式图库相关的为主,受水平所限,可能会有些理解不到位的地方,望大家多多指教。话不多说,先来一篇简介(99K纯官方翻译

一、简介

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架构和上下文:





文章转载自嘎嘎的地球小屋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论