JanusGraph+Hbase+ES在开启Kerberos下的配置

2,880 阅读2分钟

开Kerberos环境下JanusGraph+Hbase+ES如何使用

作者:@小样儿 @2019-11-12

源自个人博客:kelvin-qzy.top/ 欢迎访问→

  • 说明:Hbase受Kerberos管理,ES不受Kerberos管理

  1. 修改配置文件janusgraph-hbase-es.properties 修改配置文件path-to-janusgraph/conf/janusgraph-hbase-es.properties(末尾3行为开Kerberos环境下需要特别修改或添加的参数):
storage.backend=hbase
storage.hostname=zk.ip1:2181,zk.ip2:2181,zk.ip3:2181

cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

storage.hbase.table = test-graph
index.test-graph.backend=elasticsearch
index.test-graph.hostname=ip1:9200,ip2:9200,ip3:9200
index.test-graph.index-name = test-graph

gremlin.graph = org.janusgraph.core.JanusGraphFactory
#storage.hbase.ext.zookeeper.znode.parent = /hbase-unsecure  //没有开kerberos时

  • 增改以下3行配置:

storage.hbase.ext.zookeeper.znode.parent = /hbase-secure storage.hbase.ext.hbase.security.authentication = kerberos storage.hbase.ext.hbase.regionserver.keytab.file = /etc/security/keytabs/hbase.service.keytab

  1. 获取Hbase用户票据(简单理解为Hbase用户认证) 执行下面的命令:
kinit -kt hbase-service-keytab hbase/manager.bigdata@BIGDATA
(可通过  klist  命令查看是否获取成功)
注:命令中标红的部分为USER_PRINCIPAL,不知道的话,可以通过以下命令获得:
klist -kt hbase-service-keytab
  1. 配置环境变量 执行下面的命令(重要,踩坑一天):
export CLASSPATH=$CLASSPATH:/etc/hadoop/conf:/etc/hbase/conf
  1. 验证是否配置成功 path-to-janusgraph/bin下执行下面的命令打开gremlin console:
./gremlin.sh
  1. 验证是否配置成功:
gremlin>graph = JanusGraphFactory.open("path-to-janusgraph/conf/hadoop-graph/read-hbase.properties")

上面的命令执行成功没有报错的情况下,按照配置文件,hbase中应该生成表test-graph,可以进入hbase shell中执行 list 进行查看,若有test-graph表生成,则说明配置成功 6. 依次执行以下命令,可以进一步验证:

gremlin>g = graph.traversal()
gremlin>mgmt = graph.openManagement()
gremlin>mgmt.makeVertexLabel(“person”).make()
gremlin>mgmt.makeEdgeLabel(“friend”).make()
gremlin> mgmt.makePropertyKey("name").dataType(String.class).cardinality(Cardinality.SET).make()
gremlin> age = mgmt.makePropertyKey("age").dataType(Integer.class).cardinality(Cardinality.SINGLE).make()
gremlin>ZhangSan = g.addV(“person”).property(“name”,”ZhangSan”).property(“age”,18)
gremlin>LiSi = g.addV(“person”).property(“name”,”LiSi”) .property(“age”,19)
gremlin>g.addE(“friend”).from(ZhangSan).to(LiSi)
  1. 下面的命令创建混合索引,可以在kibana的console查看,以验证ES
gremlin>mgmt.buildIndex("ageIndex",Vertex.class).addKey(age).buildMixedIndex("test-graph");
//验证Schema、点、边等是否创建或添加成功
gremlin>mgmt.printSchema()
gremlin>g.V().count()
gremlin>g.V().valueMap(true)
gremlin>g.E().count()
gremlin>mgmt.commit()
gremlin>g.tx().commit()

感谢@小样儿支持分享本文~