<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Config on Apache HugeGraph</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/</link><description>Recent content in Config on Apache HugeGraph</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 28 Nov 2022 10:57:39 +0800</lastBuildDate><atom:link href="https://hugegraph.apache.org/versions/1.0/docs/config/index.xml" rel="self" type="application/rss+xml"/><item><title>HugeGraph 配置</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/config-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/config/config-guide/</guid><description>&lt;h3 id="1-概述"&gt;1 概述&#10;&lt;/h3&gt;&#10;&lt;p&gt;配置文件的目录为 hugegraph-release/conf，所有关于服务和图本身的配置都在此目录下。&lt;/p&gt;&#10;&lt;p&gt;主要的配置文件包括：gremlin-server.yaml、rest-server.properties 和 hugegraph.properties&lt;/p&gt;&#10;&lt;p&gt;HugeGraphServer 内部集成了 GremlinServer 和 RestServer，而 gremlin-server.yaml 和 rest-server.properties 就是用来配置这两个Server的。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://tinkerpop.apache.org/docs/3.2.3/reference/#gremlin-server"&gt;GremlinServer&lt;/a&gt;：GremlinServer接受用户的gremlin语句，解析后转而调用Core的代码。&lt;/li&gt;&#10;&lt;li&gt;RestServer：提供RESTful API，根据不同的HTTP请求，调用对应的Core API，如果用户请求体是gremlin语句，则会转发给GremlinServer，实现对图数据的操作。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;下面对这三个配置文件逐一介绍。&lt;/p&gt;&#10;&lt;h3 id="2-gremlin-serveryaml"&gt;2 gremlin-server.yaml&#10;&lt;/h3&gt;&#10;&lt;p&gt;gremlin-server.yaml 文件默认的内容如下：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-a3e6094c-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="yaml" data-td-line-count="87"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-a3e6094c-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# host and port of gremlin server, need to be consistent with host and port in rest-server.properties&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;#host: 127.0.0.1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;#port: 8182&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# timeout in ms of gremlin query&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;scriptEvaluationTimeout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;30000&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;channelizer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;graphs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;hugegraph&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;conf/hugegraph.properties&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;scriptEngines&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;gremlin-groovy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;com.baidu.hugegraph.plugin.HugeGraphGremlinPlugin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;classImports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;java.lang.Math,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.backend.id.IdGenerator,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.type.define.Directions,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.type.define.NodeRole,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.CustomizePathsTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.CustomizedCrosspointsTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.FusiformSimilarityTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.HugeTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.NeighborRankTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.PathsTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.PersonalRankTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.ShortestPathTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.algorithm.SubGraphTraverser,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.optimize.Text,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.traversal.optimize.TraversalUtil,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.util.DateUtil&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;methodImports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;java.lang.Math#*]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;files&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;scripts/empty-sample.groovy]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;serializers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- {&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;className&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;serializeResultToString&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ioRegistries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.io.HugeGraphIoRegistry]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- {&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;className&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;serializeResultToString&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ioRegistries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.io.HugeGraphIoRegistry]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- {&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;className&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;serializeResultToString&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ioRegistries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.io.HugeGraphIoRegistry]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- {&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;className&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;serializeResultToString&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ioRegistries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;com.baidu.hugegraph.io.HugeGraphIoRegistry]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;consoleReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;false, interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;180000&lt;/span&gt;}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;csvReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;false, interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;180000, fileName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./metrics/gremlin-server-metrics.csv},&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;jmxReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;slf4jReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;false, interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;180000&lt;/span&gt;}&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;gangliaReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;false, interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;180000, addressingMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;MULTICAST},&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;graphiteReporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;false, interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;180000&lt;/span&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;maxInitialLineLength&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4096&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;maxHeaderSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8192&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;maxChunkSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8192&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;maxContentLength&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;65536&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;maxAccumulationBufferComponents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1024&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;resultIterationBatchSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;64&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;writeBufferLowWaterMark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;32768&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;writeBufferHighWaterMark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;65536&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;ssl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;上面的配置项很多，但目前只需要关注如下几个配置项：channelizer 和 graphs。&lt;/p&gt;</description></item><item><title>HugeGraph Config Options</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/config-option/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/config/config-option/</guid><description>&lt;h3 id="gremlin-server-config-options"&gt;Gremlin Server Config Options&#10;&lt;/h3&gt;&#10;&lt;p&gt;Corresponding configuration file &lt;code&gt;gremlin-server.yaml&lt;/code&gt;&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;config option&lt;/th&gt;&#10; &lt;th scope="col"&gt;default value&lt;/th&gt;&#10; &lt;th scope="col"&gt;description&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;host&lt;/td&gt;&#10; &lt;td&gt;127.0.0.1&lt;/td&gt;&#10; &lt;td&gt;The host or ip of Gremlin Server.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;port&lt;/td&gt;&#10; &lt;td&gt;8182&lt;/td&gt;&#10; &lt;td&gt;The listening port of Gremlin Server.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;graphs&lt;/td&gt;&#10; &lt;td&gt;hugegraph: conf/hugegraph.properties&lt;/td&gt;&#10; &lt;td&gt;The map of graphs with name and config file path.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;scriptEvaluationTimeout&lt;/td&gt;&#10; &lt;td&gt;30000&lt;/td&gt;&#10; &lt;td&gt;The timeout for gremlin script execution(millisecond).&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;channelizer&lt;/td&gt;&#10; &lt;td&gt;org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer&lt;/td&gt;&#10; &lt;td&gt;Indicates the protocol which the Gremlin Server provides service.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;authentication&lt;/td&gt;&#10; &lt;td&gt;authenticator: com.baidu.hugegraph.auth.StandardAuthenticator, config: {tokens: conf/rest-server.properties}&lt;/td&gt;&#10; &lt;td&gt;The authenticator and config(contains tokens path) of authentication mechanism.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h3 id="rest-server--api-config-options"&gt;Rest Server &amp;amp; API Config Options&#10;&lt;/h3&gt;&#10;&lt;p&gt;Corresponding configuration file &lt;code&gt;rest-server.properties&lt;/code&gt;&lt;/p&gt;</description></item><item><title>HugeGraph 内置用户权限与扩展权限配置及使用</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/config-authentication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/config/config-authentication/</guid><description>&lt;h3 id="概述"&gt;概述&#10;&lt;/h3&gt;&#10;&lt;p&gt;HugeGraph 为了方便不同用户场景下的鉴权使用，目前内置了两套权限模式：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;简单的&lt;code&gt;ConfigAuthenticator&lt;/code&gt;模式，通过本地配置文件存储用户名和密码 (仅支持单 GraphServer)&lt;/li&gt;&#10;&lt;li&gt;完备的&lt;code&gt;StandardAuthenticator&lt;/code&gt;模式，支持多用户认证、以及细粒度的权限访问控制，采用基于 “用户-用户组-操作-资源” 的 4 层设计，灵活控制用户角色与权限 (支持多 GraphServer)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;其中 &lt;code&gt;StandardAuthenticator&lt;/code&gt; 模式的几个核心设计：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;初始化时创建超级管理员 (&lt;code&gt;admin&lt;/code&gt;) 用户，后续通过超级管理员创建其它用户，新创建的用户被分配足够权限后，可以创建或管理更多的用户&lt;/li&gt;&#10;&lt;li&gt;支持动态创建用户、用户组、资源，支持动态分配或取消权限&lt;/li&gt;&#10;&lt;li&gt;用户可以属于一个或多个用户组，每个用户组可以拥有对任意个资源的操作权限，操作类型包括：读、写、删除、执行等种类&lt;/li&gt;&#10;&lt;li&gt;&amp;ldquo;资源&amp;rdquo; 描述了图数据库中的数据，比如符合某一类条件的顶点，每一个资源包括 &lt;code&gt;type&lt;/code&gt;、&lt;code&gt;label&lt;/code&gt;、&lt;code&gt;properties&lt;/code&gt;三个要素，共有 18 种类型、任意 label、任意 properties 可组合形成的资源，一个资源的内部条件是且关系，多个资源之间的条件是或关系&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;举例说明：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-c11d92dd-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="java" data-td-line-count="2"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-c11d92dd-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 场景：某用户只有北京地区的数据读取权限&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;xx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;belong&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;xx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;access&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;graph1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Beijing&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h3 id="配置用户认证"&gt;配置用户认证&#10;&lt;/h3&gt;&#10;&lt;p&gt;HugeGraph 默认&lt;strong&gt;不启用&lt;/strong&gt;用户认证功能，需通过修改配置文件来启用该功能。内置实现了&lt;code&gt;StandardAuthenticator&lt;/code&gt;和&lt;code&gt;ConfigAuthenticator&lt;/code&gt;两种模式，&lt;code&gt;StandardAuthenticator&lt;/code&gt;模式支持多用户认证与细粒度权限控制，&lt;code&gt;ConfigAuthenticator&lt;/code&gt;模式支持简单的用户权限认证。此外，开发者可以自定义实现&lt;code&gt;HugeAuthenticator&lt;/code&gt;接口来对接自身的权限系统。&lt;/p&gt;&#10;&lt;p&gt;用户认证方式均采用 &lt;a href="https://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81"&gt;HTTP Basic Authentication&lt;/a&gt; ，简单说就是在发送 HTTP 请求时在 &lt;code&gt;Authentication&lt;/code&gt; 设置选择 &lt;code&gt;Basic&lt;/code&gt; 然后输入对应的用户名和密码，对应 HTTP 明文如下所示 :&lt;/p&gt;</description></item><item><title>配置 HugeGraphServer 使用 https 协议</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/config-https/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/config/config-https/</guid><description>&lt;h3 id="概述"&gt;概述&#10;&lt;/h3&gt;&#10;&lt;p&gt;HugeGraphServer 默认使用的是 http 协议，如果用户对请求的安全性有要求，可以配置成 https。&lt;/p&gt;&#10;&lt;h3 id="服务端配置"&gt;服务端配置&#10;&lt;/h3&gt;&#10;&lt;p&gt;修改 conf/rest-server.properties 配置文件，将 restserver.url 的 schema 部分改为 https。&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ff517a43-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="ini" data-td-line-count="6"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ff517a43-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 将协议设置为 https&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;restserver.url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;https://127.0.0.1:8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 服务端 keystore 文件路径，当协议为 https 时该默认值自动生效，可按需修改此项&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ssl.keystore_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;conf/hugegraph-server.keystore&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 服务端 keystore 文件密码，当协议为 https 时该默认值自动生效，可按需修改此项&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ssl.keystore_password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;******&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;服务端的 conf 目录下已经给出了一个 keystore 文件&lt;code&gt;hugegraph-server.keystore&lt;/code&gt;，该文件的密码为&lt;code&gt;hugegraph&lt;/code&gt;，&#10;这两项都是在开启了 https 协议时的默认值，用户可以生成自己的 keystore 文件及密码，然后修改&lt;code&gt;ssl.keystore_file&lt;/code&gt;和&lt;code&gt;ssl.keystore_password&lt;/code&gt;的值。&lt;/p&gt;&#10;&lt;h3 id="客户端配置"&gt;客户端配置&#10;&lt;/h3&gt;&#10;&lt;h4 id="在-hugegraph-client-中使用-https"&gt;在 HugeGraph-Client 中使用 https&#10;&lt;/h4&gt;&#10;&lt;p&gt;在构造 HugeClient 时传入 https 相关的配置，代码示例：&lt;/p&gt;</description></item><item><title>HugeGraph-Computer Config</title><link>https://hugegraph.apache.org/versions/1.0/docs/config/config-computer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/config/config-computer/</guid><description>&lt;h3 id="computer-config-options"&gt;Computer Config Options&#10;&lt;/h3&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;config option&lt;/th&gt;&#10; &lt;th scope="col"&gt;default value&lt;/th&gt;&#10; &lt;th scope="col"&gt;description&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;algorithm.message_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.config.Null&lt;/td&gt;&#10; &lt;td&gt;The class of message passed when compute vertex.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;algorithm.params_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.config.Null&lt;/td&gt;&#10; &lt;td&gt;The class used to transfer algorithms&amp;rsquo; parameters before algorithm been run.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;algorithm.result_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.config.Null&lt;/td&gt;&#10; &lt;td&gt;The class of vertex&amp;rsquo;s value, the instance is used to store computation result for the vertex.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;allocator.max_vertices_per_thread&lt;/td&gt;&#10; &lt;td&gt;10000&lt;/td&gt;&#10; &lt;td&gt;Maximum number of vertices per thread processed in each memory allocator&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.etcd_endpoints&lt;/td&gt;&#10; &lt;td&gt;http://localhost:2379&lt;/td&gt;&#10; &lt;td&gt;The end points to access etcd.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.log_interval&lt;/td&gt;&#10; &lt;td&gt;30000&lt;/td&gt;&#10; &lt;td&gt;The log interval(in ms) to print the log while waiting bsp event.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.max_super_step&lt;/td&gt;&#10; &lt;td&gt;10&lt;/td&gt;&#10; &lt;td&gt;The max super step of the algorithm.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.register_timeout&lt;/td&gt;&#10; &lt;td&gt;300000&lt;/td&gt;&#10; &lt;td&gt;The max timeout to wait for master and works to register.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.wait_master_timeout&lt;/td&gt;&#10; &lt;td&gt;86400000&lt;/td&gt;&#10; &lt;td&gt;The max timeout(in ms) to wait for master bsp event.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;bsp.wait_workers_timeout&lt;/td&gt;&#10; &lt;td&gt;86400000&lt;/td&gt;&#10; &lt;td&gt;The max timeout to wait for workers bsp event.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hgkv.max_data_block_size&lt;/td&gt;&#10; &lt;td&gt;65536&lt;/td&gt;&#10; &lt;td&gt;The max byte size of hgkv-file data block.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hgkv.max_file_size&lt;/td&gt;&#10; &lt;td&gt;2147483648&lt;/td&gt;&#10; &lt;td&gt;The max number of bytes in each hgkv-file.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hgkv.max_merge_files&lt;/td&gt;&#10; &lt;td&gt;10&lt;/td&gt;&#10; &lt;td&gt;The max number of files to merge at one time.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hgkv.temp_file_dir&lt;/td&gt;&#10; &lt;td&gt;/tmp/hgkv&lt;/td&gt;&#10; &lt;td&gt;This folder is used to store temporary files, temporary files will be generated during the file merging process.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hugegraph.name&lt;/td&gt;&#10; &lt;td&gt;hugegraph&lt;/td&gt;&#10; &lt;td&gt;The graph name to load data and write results back.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;hugegraph.url&lt;/td&gt;&#10; &lt;td&gt;http://127.0.0.1:8080&lt;/td&gt;&#10; &lt;td&gt;The hugegraph url to load data and write results back.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.edge_direction&lt;/td&gt;&#10; &lt;td&gt;OUT&lt;/td&gt;&#10; &lt;td&gt;The data of the edge in which direction is loaded, when the value is BOTH, the edges in both OUT and IN direction will be loaded.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.edge_freq&lt;/td&gt;&#10; &lt;td&gt;MULTIPLE&lt;/td&gt;&#10; &lt;td&gt;The frequency of edges can exist between a pair of vertices, allowed values: [SINGLE, SINGLE_PER_LABEL, MULTIPLE]. SINGLE means that only one edge can exist between a pair of vertices, use sourceId + targetId to identify it; SINGLE_PER_LABEL means that each edge label can exist one edge between a pair of vertices, use sourceId + edgelabel + targetId to identify it; MULTIPLE means that many edge can exist between a pair of vertices, use sourceId + edgelabel + sortValues + targetId to identify it.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.filter_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.input.filter.DefaultInputFilter&lt;/td&gt;&#10; &lt;td&gt;The class to create input-filter object, input-filter is used to Filter vertex edges according to user needs.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.loader_schema_path&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The schema path of loader input, only takes effect when the input.source_type=loader is enabled&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.loader_struct_path&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The struct path of loader input, only takes effect when the input.source_type=loader is enabled&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.max_edges_in_one_vertex&lt;/td&gt;&#10; &lt;td&gt;200&lt;/td&gt;&#10; &lt;td&gt;The maximum number of adjacent edges allowed to be attached to a vertex, the adjacent edges will be stored and transferred together as a batch unit.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.source_type&lt;/td&gt;&#10; &lt;td&gt;hugegraph-server&lt;/td&gt;&#10; &lt;td&gt;The source type to load input data, allowed values: [&amp;lsquo;hugegraph-server&amp;rsquo;, &amp;lsquo;hugegraph-loader&amp;rsquo;], the &amp;lsquo;hugegraph-loader&amp;rsquo; means use hugegraph-loader load data from HDFS or file, if use &amp;lsquo;hugegraph-loader&amp;rsquo; load data then please config &amp;lsquo;input.loader_struct_path&amp;rsquo; and &amp;lsquo;input.loader_schema_path&amp;rsquo;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.split_fetch_timeout&lt;/td&gt;&#10; &lt;td&gt;300&lt;/td&gt;&#10; &lt;td&gt;The timeout in seconds to fetch input splits&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.split_max_splits&lt;/td&gt;&#10; &lt;td&gt;10000000&lt;/td&gt;&#10; &lt;td&gt;The maximum number of input splits&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.split_page_size&lt;/td&gt;&#10; &lt;td&gt;500&lt;/td&gt;&#10; &lt;td&gt;The page size for streamed load input split data&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;input.split_size&lt;/td&gt;&#10; &lt;td&gt;1048576&lt;/td&gt;&#10; &lt;td&gt;The input split size in bytes&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;job.id&lt;/td&gt;&#10; &lt;td&gt;local_0001&lt;/td&gt;&#10; &lt;td&gt;The job id on Yarn cluster or K8s cluster.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;job.partitions_count&lt;/td&gt;&#10; &lt;td&gt;1&lt;/td&gt;&#10; &lt;td&gt;The partitions count for computing one graph algorithm job.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;job.partitions_thread_nums&lt;/td&gt;&#10; &lt;td&gt;4&lt;/td&gt;&#10; &lt;td&gt;The number of threads for partition parallel compute.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;job.workers_count&lt;/td&gt;&#10; &lt;td&gt;1&lt;/td&gt;&#10; &lt;td&gt;The workers count for computing one graph algorithm job.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;master.computation_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.master.DefaultMasterComputation&lt;/td&gt;&#10; &lt;td&gt;Master-computation is computation that can determine whether to continue next superstep. It runs at the end of each superstep on master.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.batch_size&lt;/td&gt;&#10; &lt;td&gt;500&lt;/td&gt;&#10; &lt;td&gt;The batch size of output&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.batch_threads&lt;/td&gt;&#10; &lt;td&gt;1&lt;/td&gt;&#10; &lt;td&gt;The threads number used to batch output&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_core_site_path&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The hdfs core site path.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_delimiter&lt;/td&gt;&#10; &lt;td&gt;,&lt;/td&gt;&#10; &lt;td&gt;The delimiter of hdfs output.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_kerberos_enable&lt;/td&gt;&#10; &lt;td&gt;false&lt;/td&gt;&#10; &lt;td&gt;Is Kerberos authentication enabled for Hdfs.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_kerberos_keytab&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The Hdfs&amp;rsquo;s key tab file for kerberos authentication.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_kerberos_principal&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The Hdfs&amp;rsquo;s principal for kerberos authentication.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_krb5_conf&lt;/td&gt;&#10; &lt;td&gt;/etc/krb5.conf&lt;/td&gt;&#10; &lt;td&gt;Kerberos configuration file.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_merge_partitions&lt;/td&gt;&#10; &lt;td&gt;true&lt;/td&gt;&#10; &lt;td&gt;Whether merge output files of multiple partitions.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_path_prefix&lt;/td&gt;&#10; &lt;td&gt;/hugegraph-computer/results&lt;/td&gt;&#10; &lt;td&gt;The directory of hdfs output result.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_replication&lt;/td&gt;&#10; &lt;td&gt;3&lt;/td&gt;&#10; &lt;td&gt;The replication number of hdfs.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_site_path&lt;/td&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;The hdfs site path.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_url&lt;/td&gt;&#10; &lt;td&gt;hdfs://127.0.0.1:9000&lt;/td&gt;&#10; &lt;td&gt;The hdfs url of output.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.hdfs_user&lt;/td&gt;&#10; &lt;td&gt;hadoop&lt;/td&gt;&#10; &lt;td&gt;The hdfs user of output.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.output_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.output.LogOutput&lt;/td&gt;&#10; &lt;td&gt;The class to output the computation result of each vertex. Be called after iteration computation.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.result_name&lt;/td&gt;&#10; &lt;td&gt;value&lt;/td&gt;&#10; &lt;td&gt;The value is assigned dynamically by #name() of instance created by WORKER_COMPUTATION_CLASS.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.result_write_type&lt;/td&gt;&#10; &lt;td&gt;OLAP_COMMON&lt;/td&gt;&#10; &lt;td&gt;The result write-type to output to hugegraph, allowed values are: [OLAP_COMMON, OLAP_SECONDARY, OLAP_RANGE].&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.retry_interval&lt;/td&gt;&#10; &lt;td&gt;10&lt;/td&gt;&#10; &lt;td&gt;The retry interval when output failed&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.retry_times&lt;/td&gt;&#10; &lt;td&gt;3&lt;/td&gt;&#10; &lt;td&gt;The retry times when output failed&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.single_threads&lt;/td&gt;&#10; &lt;td&gt;1&lt;/td&gt;&#10; &lt;td&gt;The threads number used to single output&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.thread_pool_shutdown_timeout&lt;/td&gt;&#10; &lt;td&gt;60&lt;/td&gt;&#10; &lt;td&gt;The timeout seconds of output threads pool shutdown&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.with_adjacent_edges&lt;/td&gt;&#10; &lt;td&gt;false&lt;/td&gt;&#10; &lt;td&gt;Output the adjacent edges of the vertex or not&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.with_edge_properties&lt;/td&gt;&#10; &lt;td&gt;false&lt;/td&gt;&#10; &lt;td&gt;Output the properties of the edge or not&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;output.with_vertex_properties&lt;/td&gt;&#10; &lt;td&gt;false&lt;/td&gt;&#10; &lt;td&gt;Output the properties of the vertex or not&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;sort.thread_nums&lt;/td&gt;&#10; &lt;td&gt;4&lt;/td&gt;&#10; &lt;td&gt;The number of threads performing internal sorting.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.client_connect_timeout&lt;/td&gt;&#10; &lt;td&gt;3000&lt;/td&gt;&#10; &lt;td&gt;The timeout(in ms) of client connect to server.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.client_threads&lt;/td&gt;&#10; &lt;td&gt;4&lt;/td&gt;&#10; &lt;td&gt;The number of transport threads for client.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.close_timeout&lt;/td&gt;&#10; &lt;td&gt;10000&lt;/td&gt;&#10; &lt;td&gt;The timeout(in ms) of close server or close client.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.finish_session_timeout&lt;/td&gt;&#10; &lt;td&gt;0&lt;/td&gt;&#10; &lt;td&gt;The timeout(in ms) to finish session, 0 means using (transport.sync_request_timeout * transport.max_pending_requests).&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.heartbeat_interval&lt;/td&gt;&#10; &lt;td&gt;20000&lt;/td&gt;&#10; &lt;td&gt;The minimum interval(in ms) between heartbeats on client side.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.io_mode&lt;/td&gt;&#10; &lt;td&gt;AUTO&lt;/td&gt;&#10; &lt;td&gt;The network IO Mode, either &amp;lsquo;NIO&amp;rsquo;, &amp;lsquo;EPOLL&amp;rsquo;, &amp;lsquo;AUTO&amp;rsquo;, the &amp;lsquo;AUTO&amp;rsquo; means selecting the property mode automatically.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.max_pending_requests&lt;/td&gt;&#10; &lt;td&gt;8&lt;/td&gt;&#10; &lt;td&gt;The max number of client unreceived ack, it will trigger the sending unavailable if the number of unreceived ack &amp;gt;= max_pending_requests.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.max_syn_backlog&lt;/td&gt;&#10; &lt;td&gt;511&lt;/td&gt;&#10; &lt;td&gt;The capacity of SYN queue on server side, 0 means using system default value.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.max_timeout_heartbeat_count&lt;/td&gt;&#10; &lt;td&gt;120&lt;/td&gt;&#10; &lt;td&gt;The maximum times of timeout heartbeat on client side, if the number of timeouts waiting for heartbeat response continuously &amp;gt; max_heartbeat_timeouts the channel will be closed from client side.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.min_ack_interval&lt;/td&gt;&#10; &lt;td&gt;200&lt;/td&gt;&#10; &lt;td&gt;The minimum interval(in ms) of server reply ack.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.min_pending_requests&lt;/td&gt;&#10; &lt;td&gt;6&lt;/td&gt;&#10; &lt;td&gt;The minimum number of client unreceived ack, it will trigger the sending available if the number of unreceived ack &amp;lt; min_pending_requests.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.network_retries&lt;/td&gt;&#10; &lt;td&gt;3&lt;/td&gt;&#10; &lt;td&gt;The number of retry attempts for network communication,if network unstable.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.provider_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.network.netty.NettyTransportProvider&lt;/td&gt;&#10; &lt;td&gt;The transport provider, currently only supports Netty.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.receive_buffer_size&lt;/td&gt;&#10; &lt;td&gt;0&lt;/td&gt;&#10; &lt;td&gt;The size of socket receive-buffer in bytes, 0 means using system default value.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.recv_file_mode&lt;/td&gt;&#10; &lt;td&gt;true&lt;/td&gt;&#10; &lt;td&gt;Whether enable receive buffer-file mode, it will receive buffer write file from socket by zero-copy if enable.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.send_buffer_size&lt;/td&gt;&#10; &lt;td&gt;0&lt;/td&gt;&#10; &lt;td&gt;The size of socket send-buffer in bytes, 0 means using system default value.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.server_host&lt;/td&gt;&#10; &lt;td&gt;127.0.0.1&lt;/td&gt;&#10; &lt;td&gt;The server hostname or ip to listen on to transfer data.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.server_idle_timeout&lt;/td&gt;&#10; &lt;td&gt;360000&lt;/td&gt;&#10; &lt;td&gt;The max timeout(in ms) of server idle.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.server_port&lt;/td&gt;&#10; &lt;td&gt;0&lt;/td&gt;&#10; &lt;td&gt;The server port to listen on to transfer data. The system will assign a random port if it&amp;rsquo;s set to 0.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.server_threads&lt;/td&gt;&#10; &lt;td&gt;4&lt;/td&gt;&#10; &lt;td&gt;The number of transport threads for server.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.sync_request_timeout&lt;/td&gt;&#10; &lt;td&gt;10000&lt;/td&gt;&#10; &lt;td&gt;The timeout(in ms) to wait response after sending sync-request.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.tcp_keep_alive&lt;/td&gt;&#10; &lt;td&gt;true&lt;/td&gt;&#10; &lt;td&gt;Whether enable TCP keep-alive.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.transport_epoll_lt&lt;/td&gt;&#10; &lt;td&gt;false&lt;/td&gt;&#10; &lt;td&gt;Whether enable EPOLL level-trigger.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.write_buffer_high_mark&lt;/td&gt;&#10; &lt;td&gt;67108864&lt;/td&gt;&#10; &lt;td&gt;The high water mark for write buffer in bytes, it will trigger the sending unavailable if the number of queued bytes &amp;gt; write_buffer_high_mark.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.write_buffer_low_mark&lt;/td&gt;&#10; &lt;td&gt;33554432&lt;/td&gt;&#10; &lt;td&gt;The low water mark for write buffer in bytes, it will trigger the sending available if the number of queued bytes &amp;lt; write_buffer_low_mark.org.apache.hugegraph.config.OptionChecker$$Lambda$97/0x00000008001c8440@776a6d9b&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;transport.write_socket_timeout&lt;/td&gt;&#10; &lt;td&gt;3000&lt;/td&gt;&#10; &lt;td&gt;The timeout(in ms) to write data to socket buffer.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;valuefile.max_segment_size&lt;/td&gt;&#10; &lt;td&gt;1073741824&lt;/td&gt;&#10; &lt;td&gt;The max number of bytes in each segment of value-file.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.combiner_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.config.Null&lt;/td&gt;&#10; &lt;td&gt;Combiner can combine messages into one value for a vertex, for example page-rank algorithm can combine messages of a vertex to a sum value.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.computation_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.config.Null&lt;/td&gt;&#10; &lt;td&gt;The class to create worker-computation object, worker-computation is used to compute each vertex in each superstep.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.data_dirs&lt;/td&gt;&#10; &lt;td&gt;[jobs]&lt;/td&gt;&#10; &lt;td&gt;The directories separated by &amp;lsquo;,&amp;rsquo; that received vertices and messages can persist into.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.edge_properties_combiner_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.combiner.OverwritePropertiesCombiner&lt;/td&gt;&#10; &lt;td&gt;The combiner can combine several properties of the same edge into one properties at inputstep.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.partitioner&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.graph.partition.HashPartitioner&lt;/td&gt;&#10; &lt;td&gt;The partitioner that decides which partition a vertex should be in, and which worker a partition should be in.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.received_buffers_bytes_limit&lt;/td&gt;&#10; &lt;td&gt;104857600&lt;/td&gt;&#10; &lt;td&gt;The limit bytes of buffers of received data, the total size of all buffers can&amp;rsquo;t excess this limit. If received buffers reach this limit, they will be merged into a file.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.vertex_properties_combiner_class&lt;/td&gt;&#10; &lt;td&gt;org.apache.hugegraph.computer.core.combiner.OverwritePropertiesCombiner&lt;/td&gt;&#10; &lt;td&gt;The combiner can combine several properties of the same vertex into one properties at inputstep.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.wait_finish_messages_timeout&lt;/td&gt;&#10; &lt;td&gt;86400000&lt;/td&gt;&#10; &lt;td&gt;The max timeout(in ms) message-handler wait for finish-message of all workers.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.wait_sort_timeout&lt;/td&gt;&#10; &lt;td&gt;600000&lt;/td&gt;&#10; &lt;td&gt;The max timeout(in ms) message-handler wait for sort-thread to sort one batch of buffers.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.write_buffer_capacity&lt;/td&gt;&#10; &lt;td&gt;52428800&lt;/td&gt;&#10; &lt;td&gt;The initial size of write buffer that used to store vertex or message.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;worker.write_buffer_threshold&lt;/td&gt;&#10; &lt;td&gt;52428800&lt;/td&gt;&#10; &lt;td&gt;The threshold of write buffer, exceeding it will trigger sorting, the write buffer is used to store vertex or message.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h3 id="k8s-operator-config-options"&gt;K8s Operator Config Options&#10;&lt;/h3&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;NOTE: Option needs to be converted through environment variable settings, e.g k8s.internal_etcd_url =&amp;gt; INTERNAL_ETCD_URL&lt;/p&gt;</description></item></channel></rss>