• JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例


    由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph。本篇小记记录了我们安装 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch 的过程。

    原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html

    本文提纲

    1. JanusGraph 简介
    2. JanusGraph 的安装
      • Docker 安装
      • Cassandra 安装
      • Elasticsearch 安装
      • 安装 JanusGraph
    3. 小结

    JanusGraph 简介

    根据官网的介绍,JanusGraph 是一个可扩展的图数据库,针对存储和查询包含分布在多机群集中的数千亿个顶点和边的图进行了优化。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。

    JanusGraph 架构图
    JanusGraph 支持多种存储后端:

    • Apache Cassandra®
    • Apache HBase®
    • Google Cloud Bigtable
    • Oracle BerkeleyDB

    同时也支持地理搜索、范围搜索、全文检索,这些功能借助了以下搜索引擎:

    • ElasticSearch™
    • Apache Solr™
    • Apache Lucene®

    JanusGraph 原生支持 Apache TinkerPop™ 图栈,包括:

    • Gremlin 图查询语言
    • Gremlin 图服务器
    • Gremlin 应用

    JanusGraph 的安装

    本次 JanusGraph 的安装是基于 Ubuntu 18.04 LTS 环境,主要借助 Docker 安装了存储后端 Cassandra 和搜索引擎 ElasticSearch。

    0. Docker 安装

    考虑到网络问题,Docker的安装主要参考了清华镜像站的介绍:Docker Community Edition 镜像使用帮助

    1. 安装依赖
    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
    
    1. 信任 Docker 的 GPG 公钥:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    1. 添加软件仓库:
    sudo add-apt-repository 
       "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu 
       $(lsb_release -cs) 
       stable"
    
    1. 最后安装 Docker-CE
    sudo apt-get update
    sudo apt-get install docker-ce
    
    1. 添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)
    sudo groupadd docker
    sudo usermod -aG docker $USER
    
    1. 额外的步骤:添加国内的 Docker 镜像加速
      /etc/docker/daemon.json 文件中编辑如下内容:
    {
      "registry-mirrors": [
          "https://registry.docker-cn.com"
      ]
    }
    

    1. Cassandra 安装

    Cassandra 的安装参考了官方的Docker库,此次安装的版本是3.11.3

    docker run --name cassandra-3.11.3 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 -d cassandra:3.11.3
    

    2. Elasticsearch 安装

    Elasticsearch 的安装参考了官方的Docker库,此次安装的版本是5.5.2

    docker run --name es-5.5.2 -p 9200:9200 -p 9300:9300 -d elasticsearch:5.5.2
    

    中文分词插件安装(可选)

    可以参考 IK Analysis for Elasticsearch 的 GitHub 介绍安装。

    首先进入 Elasticsearch 的 Docker 环境,

    docker exec -it es-5.5.2 bash
    

    然后执行下面的安装命令即可。

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip
    

    安装成功后需要退出当前 Elasticsearch 的 Docker 环境,执行exit即可。
    随后重新启动 Elasticsearch:

    docker restart es-5.5.2
    

    3. 安装 JanusGraph

    JanusGraph 的下载地址在其 Github Releases 页面上。
    具体的安装与配置参考了官网文档的介绍
    此次选择下载janusgraph-0.3.0-hadoop2.zip

    wget https://github.com/JanusGraph/janusgraph/releases/download/v0.3.0/janusgraph-0.3.0-hadoop2.zip
    

    下载完成后使用unzip解压,并进入 janusgraph~目录。

    我们需要 JanusGraph 以服务的方式运行,并使用 WebSocket 通信。
    首先需要查看`conf/gremlin-server/gremlin-server.yaml'这个配置文件,一会启动服务时会指定这个配置文件。文件中前几行是这些内容:

    host: 0.0.0.0
    port: 8182
    scriptEvaluationTimeout: 30000
    channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
    graphs: {
      graph: conf/gremlin-server/janusgraph-cql-es-server.properties
    }
    
    • hostport指定了服务监听的地址和端口;
    • scriptEvaluationTimeout指单次查询最长的时间,默认是30s
    • channelizer设置使用WebSocketChannelizer还是HttpChannelizer
    • graphs.graph指向了JanusGraph的具体配置文件conf/gremlin-server/janusgraph-cql-es-server.properties

    下面是janusgraph-cql-es-server.properties中的主要配置内容

    # 存储后端
    storage.backend=cql
    storage.hostname=127.0.0.1
    storage.cql.keyspace=janusgraph
    
    # 缓存配置
    cache.db-cache = true
    cache.db-cache-clean-wait = 20
    cache.db-cache-time = 180000
    cache.db-cache-size = 0.25
    
    # 搜索引擎配置
    index.search.backend=elasticsearch
    index.search.hostname=127.0.0.1
    index.search.elasticsearch.client-only=true
    

    配置完成后,就可以启动Gremlin Server啦!

    bin/gremlin-server.sh ./conf/gremlin-server/gremlin-server.yaml
    

    成功启动后就会显示在监听8182端口了:

    INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Channel started at port 8182.
    

    小结

    到此, JanusGraph 的安装配置到此就大功告成了!如果需要更详细地配置,还是建议阅读官网的文档。这篇小记仅以流水账的形式记录了我们安装 JanusGraph 的过程,由于我们也是初次接触图数据库库和 JanusGraph ,可能存在诸多不足和不对的地方,欢迎大家批评指正。
    后续,我们还将进一步介绍我们在 JanusGraph 中定义Schema、构建索引以及查询的相关过程和踩过的坑。

    原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html

  • 相关阅读:
    linux内核同步机制相关收集
    【转载】关于终端和控制台的一些解释
    【转】linux内核调试方法总结
    misc汇总
    关于proc的介绍,比较详细
    linux内核启动流程分析
    linux通用中断子系统介绍
    ftrace在mips上的验证
    线程死锁demo
    BeanFactory与FactoryBean
  • 原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html
Copyright © 2020-2023  润新知