一年前搭建环境的时候懒得没做笔记,这次重新搭建环境,不得已又翻了一遍官方文档,比较耗时,再次简单做个记录。
hugegraph是什么
hugegraph是百度开源的一个图数据库,支持gremlin语言。支持多种后端存储引擎;对查询有所优化,图检索毫秒级响应;具备批量导入,图备份等周边工具,使用简单。本次我是通过hugegraph-tools联网一键部署;无法连接外网的情况下可以手工下载hugegraph-server和hugegraph-studio进行安装,配置方法跟一键部署一致。话不多说,直接开干。
官方文档链接
下载HugeGraph-Tools安装包
在服务器上创建一个目录,然后下载安装包并解压,如果你安装的版本跟我的不一样可以到官方下载页面找到对应版本号,右键然后复制链接地址
mkdir -p /opt/graph
cd /opt/graph
wget https://github.com/hugegraph/hugegraph-tools/releases/download/v1.4.0/hugegraph-tools-1.4.0.tar.gz
tar -zxvf hugegraph-tools-1.4.0.tar.gz
使用一键部署命令下载hugegraph-server和hugegraph-studio
执行命令进行一键部署,-v指定hugegraph-server的版本号,-p指定hugegraph-server和hugegraph-studio下载到哪个路径
cd hugegraph-tools-1.4.0
bin/hugegraph deploy -v 0.10 -p /opt/graph
执行完上面这条命令会自动下载、解压hugegraph-0.10.4.tar.gz和hugegraph-studio-0.10.0.tar.gz

修改配置文件
进入hugegraph-0.10.4进行配置
cd hugegraph-0.10.4/conf
vim hugegraph.properties
backend=hbase
serializer=hbase
hbase.hosts=cscdh1,cscdh2,cscdh4
hbase.port=2181
修改之后保存退出
vim rest-server.properties
restserver.url是我们程序远程访问的地址,此处必须指定IP否则访问不到
restserver.url=http://101.141.177.70:8099
到此hugegraph-server配置完成,接下来配置hugegraph-studio
cd hugegraph-studio-0.10.0/conf
vim hugegraph-studio.properties
studio.server.port=8097
studio.server.host=101.141.177.70
graph.server.host=101.141.177.70
graph.server.port=8099
至此配置完成
初始化存储引擎
由于我们的后端是hbase库,因此需要进行初始化,本质上就是在hbase 中创建一系列表。
cd /opt/graph/hugegraph-0.10.4
bin/init-store.sh
使用hugegraph-tools一键启动
cd /opt/graph/hugegraph-tools-1.4.0
bin/hugegraph start-all -v 0.10 -p /opt/graph
然后可以在浏览器通过上面配置的地址访问图库
http://101.141.177.70:8097/
通过页面创建我们的第一张图
graph.schema().propertyKey("name").asText().ifNotExist().create()
graph.schema().propertyKey("age").asInt().ifNotExist().create()
graph.schema().propertyKey("city").asText().ifNotExist().create()
graph.schema().propertyKey("lang").asText().ifNotExist().create()
graph.schema().propertyKey("date").asText().ifNotExist().create()
graph.schema().propertyKey("price").asInt().ifNotExist().create()
person = graph.schema().vertexLabel("person").properties("name", "age", "city").primaryKeys("name").ifNotExist().create()
software = graph.schema().vertexLabel("software").properties("name", "lang", "price").primaryKeys("name").ifNotExist().create()
knows = graph.schema().edgeLabel("knows").sourceLabel("person").targetLabel("person").properties("date").ifNotExist().create()
created = graph.schema().edgeLabel("created").sourceLabel("person").targetLabel("software").properties("date", "city").ifNotExist().create()
marko = graph.addVertex(T.label, "person", "name", "marko", "age", 29, "city", "Beijing")
vadas = graph.addVertex(T.label, "person", "name", "vadas", "age", 27, "city", "Hongkong")
lop = graph.addVertex(T.label, "software", "name", "lop", "lang", "java", "price", 328)
josh = graph.addVertex(T.label, "person", "name", "josh", "age", 32, "city", "Beijing")
ripple = graph.addVertex(T.label, "software", "name", "ripple", "lang", "java", "price", 199)
peter = graph.addVertex(T.label, "person","name", "peter", "age", 29, "city", "Shanghai")
marko.addEdge("knows", vadas, "date", "20160110")
marko.addEdge("knows", josh, "date", "20130220")
marko.addEdge("created", lop, "date", "20171210", "city", "Shanghai")
josh.addEdge("created", ripple, "date", "20151010", "city", "Beijing")
josh.addEdge("created", lop, "date", "20171210", "city", "Beijing")
peter.addEdge("created", lop, "date", "20171210", "city", "Beijing")
查询我们创建的图
g.V()

网友评论