当前位置: 首页 > 工具软件 > JanusGraph > 使用案例 >

janusgraph环境搭建、janusgraph python导入csv顶点、边

邓开济
2023-12-01

0. 操作系统环境、java环境说明

uname -a
#Linux whiltez 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

javac -version
#javac 1.8.0_332
java -version
#openjdk version "1.8.0_332"
#OpenJDK Runtime Environment (Temurin)(build 1.8.0_332-b09)
#OpenJDK 64-Bit Server VM (Temurin)(build 25.332-b09, mixed mode)
which javac
#/devapp/jdk8u332-b09-adoptopenjdk-HotSpot/bin/javac
which java
#/devapp/jdk8u332-b09-adoptopenjdk-HotSpot/bin/java



ip address

"""
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 10:bf:48:30:93:0c brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 78:92:9c:90:9f:7a brd ff:ff:ff:ff:ff:ff
    inet 10.11.1.113/24 brd 10.11.1.255 scope global dynamic noprefixroute wlp3s0
       valid_lft 3828sec preferred_lft 3828sec
    inet6 fe80::ee7f:7626:64c3:59e5/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
4: wlxf46a92cee88c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether f4:6a:92:ce:e8:8c brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:94:8c:73 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

"""

1. janusgraph环境搭建

1.1 janusgraph下载、解压

cd ~; pwd
#/home/z/
mkdir ~/janusgraph; cd ~/janusgraph
#/home/z/janusgraph/

#https://github.com/JanusGraph/janusgraph/releases/tag/v0.6.2
wget https://github.com/JanusGraph/janusgraph/releases/download/v0.6.2/janusgraph-0.6.2.zip
#/home/z/janusgraph/janusgraph-0.6.2.zip
unzip janusgraph-0.6.2.zip


1.2 启动janusgraph服务端

启动janusgraph服务端

./bin/janusgraph-server.sh start
#/home/z/janusgraph/janusgraph-0.6.2/bin/janusgraph-server.sh

#/home/z/janusgraph/janusgraph-0.6.2/conf/gremlin-server/gremlin-server.yaml will be used to start JanusGraph Server in background
#Server started 28931

jps
#28931 JanusGraphServer

sudo netstat -lntp | grep java
#tcp6       0      0 :::8182                 :::*                    LISTEN      28931/java

#从局域网其他主机telnet 本机 8182端口是通的
telnet  10.11.1.113 8182

tcp改成http
参考, 在此页面搜索 “channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer”
参考 sunsided/janusgraph-docker , 这里有详细步骤

sed -i "s/channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer/channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer/g"  conf/gremlin-server/gremlin-server.yaml

#再启动:
#./bin/janusgraph-server.sh start

curl http://localhost:8182
#{"message":"no gremlin script supplied"}

curl -XPOST -H content-type:application/json -d '{"gremlin":"g.V().count()"}'   http://localhost:8182
"""
{"requestId":"c3b23d5c-bb24-4011-9813-3a7f9084ccf7","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"g:Int64","@value":0}]},"meta":{"@type":"g:Map","@value":[]}}}
"""

curl "http://localhost:8182/?gremlin=100-1"
"""
{"requestId":"57bde3f6-bad8-4b1c-8b28-d99d18adc621","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"g:Int32","@value":99}]},"meta":{"@type":"g:Map","@value":[]}}}
"""

win10x64 下启动janusgraph服务端 报错

#win10x64 下启动janusgraph服务端

wget -O ./bin/winutils.exe https://raw.githubusercontent.com/cdarlint/winutils/master/hadoop-2.8.5/bin/winutils.exe
#/home/z/janusgraph/janusgraph-0.6.2/bin/winutils.exe

#win10x64下这样启动依然是报错的 
./bin/gremmlin-server.bat start

默认最小内存4G,如何改小些启动

#改为最小768M内存
sed -i "s/-Xms4096m/-Xms768m/g" "s/-Xmx4096m/-Xmx768m/g" /home/z/janusgraph/janusgraph-0.6.2/conf/jvm-8.options

#再按上面启动
./bin/janusgraph-server.sh start
#/home/z/janusgraph/janusgraph-0.6.2/bin/janusgraph-server.sh

1.3 janusgraph 客户端连接服务端

./bin/gremlin.sh
##/home/z/janusgraph/janusgraph-0.6.2/bin/gremlin.sh

#gremlin> :help

"""
Available commands:
  :help       (:h  ) Display this help message
  ?           (:?  ) Alias to: :help
  :exit       (:x  ) Exit the shell
  :quit       (:q  ) Alias to: :exit
  import      (:i  ) Import a class into the namespace
  :display    (:d  ) Display the current buffer
  :clear      (:c  ) Clear the buffer and reset the prompt counter
  :show       (:S  ) Show variables, classes or imports
  :inspect    (:n  ) Inspect a variable or the last result with the GUI object browser
  :purge      (:p  ) Purge variables, classes, imports or preferences
  :edit       (:e  ) Edit the current buffer
  :load       (:l  ) Load a file or URL into the buffer
  .           (:.  ) Alias to: :load
  :save       (:s  ) Save the current buffer to a file
  :record     (:r  ) Record the current session to a file
  :history    (:H  ) Display, manage and recall edit-line history
  :alias      (:a  ) Create an alias
  :grab       (:g  ) Add a dependency to the shell environment
  :register   (:rc ) Register a new command with the shell
  :doc        (:D  ) Open a browser window displaying the doc for the argument
  :set        (:=  ) Set (or list) preferences
  :uninstall  (:-  ) Uninstall a Maven library and its dependencies from the Gremlin Console
  :install    (:+  ) Install a Maven library and its dependencies into the Gremlin Console
  :plugin     (:pin) Manage plugins for the Console
  :remote     (:rem) Define a remote connection
  :submit     (:>  ) Send a Gremlin script to Gremlin Server
  :bytecode   (:bc ) Gremlin bytecode helper commands
  :cls        (:C  ) Clear the screen.

"""

#gremlin> :exit

2. python client 连接 janusgraph 服务端

2.1 janusgraph python client连接服务端

从局域网其他主机运行本py脚本

from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

graph = Graph()
connection = DriverRemoteConnection('ws://10.11.1.113:8182/gremlin', 'g')

g = graph.traversal().withRemote(connection)

V=g.V()

print(V.count())
#[['V'], ['count']]


2.2. janusgraph python client 导入cvs文件顶点、边

main_1.csv

eventTypeValue,eventTypeText,methCanonicalName,methSign,methExeId,callerMethExeId,curThreadId,curThreadName
1,进入方法,.namesrv.NamesrvStartup,void .namesrv.NamesrvStartup.main(.String[]),1,0,1,main
1,进入方法,.namesrv.NamesrvStartup,.namesrv.NamesrvController .namesrv.NamesrvStartup.main0(.String[]),2,1,1,main
1,进入方法,.namesrv.NamesrvStartup,.namesrv.NamesrvController .namesrv.NamesrvStartup.createNamesrvController(.String[]),3,2,1,main
1,进入方法,.srvutil.ServerUtil,.cli.Options .srvutil.ServerUtil.buildCommandlineOptions(.cli.Options),4,3,1,main
2,退出方法,.srvutil.ServerUtil,.cli.Options .srvutil.ServerUtil.buildCommandlineOptions(.cli.Options),4,3,1,main


#https://tinkerpop.apache.org/docs/current/reference/#gremlin-python
#https://pypi.org/project/gremlinpython/
#https://blog.csdn.net/SS51SS/article/details/105806938  #此帖子中 add_edge有错误, 最后的edge.next()应该改成edge.iterate()
#基于 gremlin_python 3.6.1
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
from gremlin_python.process.traversal import Cardinality, T
from gremlin_python.structure.graph import Graph
from gremlin_python.process.anonymous_traversal import traversal
import pandas

# graph = Graph()

# traversal(graph)
drc=DriverRemoteConnection('ws://10.11.1.113:8182/gremlin','g')
# g = graph.traversal().withRemote(drc)
g = traversal().withRemote(drc)

CSV_FILE_PATH="./main_1.csv"
CSV_FILE_FIELD_SEP=","
CSV_FILE_ENCODING='utf-8'


#https://pypi.org/project/gremlinpython/
def create_vertex(self, vid, vlabel):
    # default database cardinality is used when Cardinality argument is not specified
    g.addV(vlabel).property(T.id, vid). \
      property(Cardinality.single, 'name', 'Apache'). \
      property('lastname', 'Tinkerpop'). \
      next()

def add_vertex():
    df = pandas.read_csv(filepath_or_buffer=CSV_FILE_PATH,sep=CSV_FILE_FIELD_SEP, encoding=CSV_FILE_ENCODING)
    lineLs = df.to_dict(orient='records')
    for line in lineLs:  # 按行遍历
        print("add_vertex:"+line["methSign"])
        # .property(T.id,line["methSign"]) \
        g.addV("方法标签") \
            .property(Cardinality.single, "methSign",line["methSign"]) \
            .property(Cardinality.single, "callerMethExeId",line["callerMethExeId"]) \
            .property(Cardinality.single, "methExeId",line["methExeId"]) \
            .next()


def add_edge():
    df = pandas.read_csv(filepath_or_buffer=CSV_FILE_PATH,sep=CSV_FILE_FIELD_SEP, encoding=CSV_FILE_ENCODING)
    lineLs = df.to_dict(orient='records')

    for line in lineLs:
        print("add_edge:"+line["methSign"]);
        v_start = g.V().has("方法标签",'callerMethExeId', line['methExeId'])  # 起点
        v_end = g.V().has("方法标签",'methExeId', line['methExeId'])  # 终点

        if v_start.hasNext() and v_end.hasNext():
            g.V(v_start.next()).addE("调用").to(v_end.next()).property(Cardinality.single, 'methSign', line["methSign"]) .iterate()
        else:
            continue
        """
        for key in line.keys():  # 遍历添加边属性
            tmp = line.get(key)
            if tmp is np.nan:
                tmp = ''
            edge.property(key, str(tmp))
"""
            


add_vertex()
add_edge()


其他

janusgraph解压后文件树


tree -L 1 /home/z/janusgraph/janusgraph-0.6.2/
"""
/home/z/janusgraph/janusgraph-0.6.2/
├── bin
├── conf
├── data
├── examples
├── ext
├── javadocs
├── lib
├── LICENSE.txt
├── logs
├── NOTICE.txt
├── run
└── scripts
"""

tree -L 2 /home/z/janusgraph/janusgraph-0.6.2/
"""
/home/z/janusgraph/janusgraph-0.6.2/
├── bin
│   ├── gremlin.bat
│   ├── gremlin-server.bat
│   ├── gremlin.sh
│   └── janusgraph-server.sh
├── conf
│   ├── gremlin-server
│   ├── hadoop-graph
│   ├── janusgraph-berkeleyje-es.properties
│   ├── janusgraph-berkeleyje-lucene.properties
│   ├── janusgraph-berkeleyje.properties
│   ├── janusgraph-berkeleyje-solr.properties
│   ├── janusgraph-cql-configurationgraph.properties
│   ├── janusgraph-cql-es.properties
│   ├── janusgraph-cql.properties
│   ├── janusgraph-cql-solr.properties
│   ├── janusgraph-hbase-es.properties
│   ├── janusgraph-hbase.properties
│   ├── janusgraph-hbase-solr.properties
│   ├── janusgraph-inmemory.properties
│   ├── jvm-11.options
│   ├── jvm-8.options
│   ├── log4j-console.properties
│   ├── log4j-server.properties
│   ├── logback.xml
│   ├── remote-graph-binary.yaml
│   ├── remote-graph.properties
│   ├── remote-objects.yaml
│   ├── remote.yaml
│   └── solr
├── data
│   ├── grateful-dead-janusgraph-schema.groovy
│   ├── grateful-dead.json
│   ├── grateful-dead.kryo
│   ├── grateful-dead.txt
│   ├── grateful-dead-typed.json
│   ├── grateful-dead-v2d0.json
│   ├── grateful-dead-v2d0-typed.json
│   ├── grateful-dead.xml
│   ├── script-input-grateful-dead.groovy
│   ├── script-input-tinkerpop.groovy
│   ├── tinkerpop-classic.json
│   ├── tinkerpop-classic.kryo
│   ├── tinkerpop-classic.txt
│   ├── tinkerpop-classic-typed.json
│   ├── tinkerpop-classic-v2d0.json
│   ├── tinkerpop-classic-v2d0-typed.json
│   ├── tinkerpop-classic.xml
│   ├── tinkerpop-crew.json
│   ├── tinkerpop-crew.kryo
│   ├── tinkerpop-crew-typed.json
│   ├── tinkerpop-crew-v2d0.json
│   ├── tinkerpop-crew-v2d0-typed.json
│   ├── tinkerpop-modern.json
│   ├── tinkerpop-modern.kryo
│   ├── tinkerpop-modern-typed.json
│   ├── tinkerpop-modern-v2d0.json
│   ├── tinkerpop-modern-v2d0-typed.json
│   ├── tinkerpop-modern.xml
│   ├── tinkerpop-sink.json
│   ├── tinkerpop-sink.kryo
│   ├── tinkerpop-sink-typed.json
│   ├── tinkerpop-sink-v2d0.json
│   └── tinkerpop-sink-v2d0-typed.json
├── examples
│   ├── example-berkeleyje
│   ├── example-common
│   ├── example-cql
│   ├── example-hbase
│   ├── example-remotegraph
│   ├── example-tinkergraph
│   ├── pom.xml
│   └── README.md
├── ext
│   ├── plugins.txt
│   └── README.txt
├── javadocs
│   ├── allclasses-frame.html
│   ├── allclasses-noframe.html
│   ├── constant-values.html
│   ├── deprecated-list.html
│   ├── help-doc.html
│   ├── index-all.html
│   ├── index.html
│   ├── META-INF
│   ├── org
│   ├── overview-frame.html
│   ├── overview-summary.html
│   ├── overview-tree.html
│   ├── package-list
│   ├── script.js
│   ├── serialized-form.html
│   └── stylesheet.css
├── lib
│   ├── accessors-smart-1.2.jar
│   ├── activation-1.1.1.jar
│   ├── airline-0.6.jar
│   ├── amqp-client-5.11.0.jar
│   ├── animal-sniffer-annotations-1.19.jar
│   ├── annotations-4.1.1.4.jar
│   ├── ant-1.10.11.jar
│   ├── ant-launcher-1.10.11.jar
│   ├── antlr-3.5.2.jar
│   ├── antlr4-runtime-4.9.1.jar
│   ├── antlr-runtime-3.5.2.jar
│   ├── aopalliance-repackaged-2.6.1.jar
│   ├── apacheds-i18n-2.0.0-M15.jar
│   ├── apacheds-kerberos-codec-2.0.0-M15.jar
│   ├── api-asn1-api-1.0.0-M20.jar
│   ├── api-util-1.0.0-M20.jar
│   ├── asm-9.2.jar
│   ├── asm-analysis-9.2.jar
│   ├── asm-commons-9.2.jar
│   ├── asm-tree-9.2.jar
│   ├── asm-util-9.2.jar
│   ├── audience-annotations-0.5.0.jar
│   ├── avro-1.10.1.jar
│   ├── avro-ipc-1.8.2.jar
│   ├── avro-mapred-1.8.2-hadoop2.jar
│   ├── bigtable-hbase-2.x-shaded-1.21.0.jar
│   ├── caffeine-2.3.1.jar
│   ├── cassandra-all-3.11.10.jar
│   ├── cassandra-driver-core-3.11.2.jar
│   ├── cassandra-thrift-3.11.10.jar
│   ├── checker-qual-2.11.1.jar
│   ├── chill_2.12-0.9.5.jar
│   ├── chill-java-0.9.5.jar
│   ├── commons-beanutils-1.9.4.jar
│   ├── commons-cli-1.4.jar
│   ├── commons-codec-1.15.jar
│   ├── commons-collections-3.2.2.jar
│   ├── commons-configuration-1.10.jar
│   ├── commons-configuration2-2.7.jar
│   ├── commons-crypto-1.0.0.jar
│   ├── commons-io-2.8.0.jar
│   ├── commons-lang-2.6.jar
│   ├── commons-lang3-3.11.jar
│   ├── commons-logging-1.2.jar
│   ├── commons-math3-3.6.1.jar
│   ├── commons-net-3.7.2.jar
│   ├── commons-text-1.9.jar
│   ├── compiler-22.0.0.2.jar
│   ├── compress-lzf-1.0.3.jar
│   ├── concurrentlinkedhashmap-lru-1.4.jar
│   ├── concurrent-trees-2.4.0.jar
│   ├── config-1.4.1.jar
│   ├── curator-client-2.7.1.jar
│   ├── curator-framework-2.7.1.jar
│   ├── curator-recipes-2.7.1.jar
│   ├── ecj-4.4.2.jar
│   ├── elasticsearch-rest-client-7.14.0.jar
│   ├── error_prone_annotations-2.7.1.jar
│   ├── exp4j-0.4.8.jar
│   ├── failureaccess-1.0.1.jar
│   ├── findbugs-annotations-1.3.9-1.jar
│   ├── graal-sdk-22.0.0.2.jar
│   ├── gremlin-console-3.5.3.jar
│   ├── gremlin-core-3.5.3.jar
│   ├── gremlin-driver-3.5.3.jar
│   ├── gremlin-groovy-3.5.3.jar
│   ├── gremlin-language-3.5.3.jar
│   ├── gremlin-server-3.5.3.jar
│   ├── gremlin-shaded-3.5.3.jar
│   ├── groovy-2.5.14-indy.jar
│   ├── groovy-cli-picocli-2.5.14.jar
│   ├── groovy-console-2.5.14.jar
│   ├── groovy-groovysh-2.5.14-indy.jar
│   ├── groovy-json-2.5.14-indy.jar
│   ├── groovy-jsr223-2.5.14-indy.jar
│   ├── groovy-swing-2.5.14.jar
│   ├── groovy-templates-2.5.14.jar
│   ├── groovy-xml-2.5.14.jar
│   ├── grpc-api-1.38.1.jar
│   ├── grpc-context-1.38.1.jar
│   ├── grpc-core-1.38.1.jar
│   ├── grpc-netty-shaded-1.38.1.jar
│   ├── grpc-protobuf-1.38.1.jar
│   ├── grpc-protobuf-lite-1.38.1.jar
│   ├── grpc-stub-1.38.1.jar
│   ├── gson-2.8.6.jar
│   ├── guava-29.0-jre.jar
│   ├── hadoop-annotations-2.8.5.jar
│   ├── hadoop-auth-2.8.5.jar
│   ├── hadoop-client-2.8.5.jar
│   ├── hadoop-common-2.8.5.jar
│   ├── hadoop-distcp-2.8.5.jar
│   ├── hadoop-gremlin-3.5.3.jar
│   ├── hadoop-hdfs-client-2.8.5.jar
│   ├── hadoop-mapreduce-client-app-2.8.5.jar
│   ├── hadoop-mapreduce-client-common-2.8.5.jar
│   ├── hadoop-mapreduce-client-core-2.8.5.jar
│   ├── hadoop-mapreduce-client-jobclient-2.8.5.jar
│   ├── hadoop-mapreduce-client-shuffle-2.8.5.jar
│   ├── hadoop-yarn-api-2.8.5.jar
│   ├── hadoop-yarn-client-2.8.5.jar
│   ├── hadoop-yarn-common-2.8.5.jar
│   ├── hadoop-yarn-server-common-2.8.5.jar
│   ├── hbase-shaded-client-2.2.7.jar
│   ├── hbase-shaded-mapreduce-2.2.7.jar
│   ├── HdrHistogram-2.1.12.jar
│   ├── hibernate-validator-4.3.0.Final.jar
│   ├── high-scale-lib-1.0.6.jar
│   ├── hk2-api-2.6.1.jar
│   ├── hk2-locator-2.6.1.jar
│   ├── hk2-utils-2.6.1.jar
│   ├── hppc-0.8.2.jar
│   ├── htrace-core4-4.2.0-incubating.jar
│   ├── http2-client-9.4.41.v20210516.jar
│   ├── http2-common-9.4.41.v20210516.jar
│   ├── http2-hpack-9.4.41.v20210516.jar
│   ├── http2-http-client-transport-9.4.41.v20210516.jar
│   ├── httpasyncclient-4.1.4.jar
│   ├── httpclient-4.5.13.jar
│   ├── httpcore-4.4.14.jar
│   ├── httpcore-nio-4.4.14.jar
│   ├── httpmime-4.5.12.jar
│   ├── ivy-2.4.0.jar
│   ├── j2objc-annotations-1.3.jar
│   ├── jackson-annotations-2.10.0.jar
│   ├── jackson-core-2.10.0.jar
│   ├── jackson-core-asl-1.9.13.jar
│   ├── jackson-databind-2.10.0.jar
│   ├── jackson-datatype-json-org-2.10.0.jar
│   ├── jackson-jaxrs-1.9.13.jar
│   ├── jackson-mapper-asl-1.9.13.jar
│   ├── jackson-module-paranamer-2.10.0.jar
│   ├── jackson-module-scala_2.12-2.10.0.jar
│   ├── jackson-xc-1.9.13.jar
│   ├── jakarta.annotation-api-1.3.5.jar
│   ├── jakarta.inject-2.6.1.jar
│   ├── jakarta.validation-api-2.0.2.jar
│   ├── jakarta.ws.rs-api-2.1.6.jar
│   ├── jamm-0.3.0.jar
│   ├── janusgraph-all-0.6.2.jar
│   ├── janusgraph-berkeleyje-0.6.2.jar
│   ├── janusgraph-bigtable-0.6.2.jar
│   ├── janusgraph-core-0.6.2.jar
│   ├── janusgraph-cql-0.6.2.jar
│   ├── janusgraph-driver-0.6.2.jar
│   ├── janusgraph-es-0.6.2.jar
│   ├── janusgraph-grpc-0.6.2.jar
│   ├── janusgraph-hadoop-0.6.2.jar
│   ├── janusgraph-hbase-0.6.2.jar
│   ├── janusgraph-inmemory-0.6.2.jar
│   ├── janusgraph-lucene-0.6.2.jar
│   ├── janusgraph-server-0.6.2.jar
│   ├── janusgraph-solr-0.6.2.jar
│   ├── java-driver-core-4.14.1.jar
│   ├── java-driver-query-builder-4.14.1.jar
│   ├── java-driver-shaded-guava-25.1-jre-graal-sub-1.jar
│   ├── javapoet-1.8.0.jar
│   ├── javassist-3.27.0-GA.jar
│   ├── javatuples-1.2.jar
│   ├── javax.inject-1.jar
│   ├── javax.json-1.1.4.jar
│   ├── javax.servlet-api-3.1.0.jar
│   ├── jaxb-api-2.2.2.jar
│   ├── jbcrypt-0.4.jar
│   ├── jboss-logging-3.4.1.Final.jar
│   ├── jcabi-log-0.14.jar
│   ├── jcabi-manifests-1.1.jar
│   ├── jcip-annotations-1.0-1.jar
│   ├── jcl-over-slf4j-1.7.30.jar
│   ├── jctools-core-1.2.1.jar
│   ├── je-18.3.12.jar
│   ├── jersey-client-1.9.jar
│   ├── jersey-client-2.30.jar
│   ├── jersey-common-2.30.jar
│   ├── jersey-container-servlet-2.30.jar
│   ├── jersey-container-servlet-core-2.30.jar
│   ├── jersey-core-1.9.jar
│   ├── jersey-hk2-2.30.jar
│   ├── jersey-media-jaxb-2.30.jar
│   ├── jersey-server-2.30.jar
│   ├── jetty-alpn-client-9.4.41.v20210516.jar
│   ├── jetty-alpn-java-client-9.4.41.v20210516.jar
│   ├── jetty-alpn-openjdk8-client-9.4.41.v20210516.jar
│   ├── jetty-client-9.4.41.v20210516.jar
│   ├── jetty-http-9.4.41.v20210516.jar
│   ├── jetty-io-9.4.41.v20210516.jar
│   ├── jetty-sslengine-6.1.26.jar
│   ├── jetty-util-6.1.26.jar
│   ├── jetty-util-9.4.41.v20210516.jar
│   ├── jffi-1.3.9.jar
│   ├── jffi-1.3.9-native.jar
│   ├── jflex-1.6.0.jar
│   ├── jline-2.14.6.jar
│   ├── jna-5.7.0.jar
│   ├── jnr-a64asm-1.0.0.jar
│   ├── jnr-constants-0.10.3.jar
│   ├── jnr-ffi-2.2.11.jar
│   ├── jnr-posix-3.1.15.jar
│   ├── jnr-x86asm-1.0.2.jar
│   ├── joda-time-2.4.jar
│   ├── json-20180813.jar
│   ├── json4s-ast_2.12-3.6.6.jar
│   ├── json4s-core_2.12-3.6.6.jar
│   ├── json4s-jackson_2.12-3.6.6.jar
│   ├── json4s-scalap_2.12-3.6.6.jar
│   ├── json-simple-1.1.1.jar
│   ├── json-smart-2.3.jar
│   ├── jsp-api-2.1.jar
│   ├── jsr305-3.0.2.jar
│   ├── jts-core-1.17.0.jar
│   ├── jul-to-slf4j-1.7.30.jar
│   ├── kryo-shaded-4.0.2.jar
│   ├── leveldbjni-all-1.8.jar
│   ├── libthrift-0.9.2.jar
│   ├── listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
│   ├── log4j-1.2.17.jar
│   ├── logback-classic-1.1.3.jar
│   ├── logback-core-1.1.3.jar
│   ├── lucene-analyzers-common-8.9.0.jar
│   ├── lucene-backward-codecs-8.9.0.jar
│   ├── lucene-core-8.9.0.jar
│   ├── lucene-queries-8.9.0.jar
│   ├── lucene-queryparser-8.9.0.jar
│   ├── lucene-sandbox-8.9.0.jar
│   ├── lucene-spatial3d-8.9.0.jar
│   ├── lucene-spatial-extras-8.9.0.jar
│   ├── lz4-1.3.0.jar
│   ├── lz4-java-1.7.1.jar
│   ├── metrics-core-4.1.18.jar
│   ├── metrics-graphite-4.1.18.jar
│   ├── metrics-jmx-4.1.18.jar
│   ├── metrics-json-4.1.1.jar
│   ├── metrics-jvm-4.1.18.jar
│   ├── minlog-1.3.0.jar
│   ├── native-image-base-22.0.0.2.jar
│   ├── native-protocol-1.5.1.jar
│   ├── netty-all-4.1.72.Final.jar
│   ├── netty-buffer-4.1.72.Final.jar
│   ├── netty-codec-4.1.72.Final.jar
│   ├── netty-codec-dns-4.1.72.Final.jar
│   ├── netty-codec-haproxy-4.1.72.Final.jar
│   ├── netty-codec-http2-4.1.72.Final.jar
│   ├── netty-codec-http-4.1.72.Final.jar
│   ├── netty-codec-memcache-4.1.72.Final.jar
│   ├── netty-codec-mqtt-4.1.72.Final.jar
│   ├── netty-codec-redis-4.1.72.Final.jar
│   ├── netty-codec-smtp-4.1.72.Final.jar
│   ├── netty-codec-socks-4.1.72.Final.jar
│   ├── netty-codec-stomp-4.1.72.Final.jar
│   ├── netty-codec-xml-4.1.72.Final.jar
│   ├── netty-common-4.1.72.Final.jar
│   ├── netty-handler-4.1.72.Final.jar
│   ├── netty-handler-proxy-4.1.72.Final.jar
│   ├── netty-resolver-4.1.72.Final.jar
│   ├── netty-resolver-dns-4.1.72.Final.jar
│   ├── netty-resolver-dns-classes-macos-4.1.72.Final.jar
│   ├── netty-resolver-dns-native-macos-4.1.72.Final-osx-aarch_64.jar
│   ├── netty-resolver-dns-native-macos-4.1.72.Final-osx-x86_64.jar
│   ├── netty-tcnative-classes-2.0.46.Final.jar
│   ├── netty-transport-4.1.72.Final.jar
│   ├── netty-transport-classes-epoll-4.1.72.Final.jar
│   ├── netty-transport-classes-kqueue-4.1.72.Final.jar
│   ├── netty-transport-native-epoll-4.1.72.Final.jar
│   ├── netty-transport-native-epoll-4.1.72.Final-linux-aarch_64.jar
│   ├── netty-transport-native-epoll-4.1.72.Final-linux-x86_64.jar
│   ├── netty-transport-native-kqueue-4.1.72.Final-osx-aarch_64.jar
│   ├── netty-transport-native-kqueue-4.1.72.Final-osx-x86_64.jar
│   ├── netty-transport-native-unix-common-4.1.72.Final.jar
│   ├── netty-transport-rxtx-4.1.72.Final.jar
│   ├── netty-transport-sctp-4.1.72.Final.jar
│   ├── netty-transport-udt-4.1.72.Final.jar
│   ├── nimbus-jose-jwt-8.2.1.jar
│   ├── noggit-0.8.jar
│   ├── objectfile-22.0.0.2.jar
│   ├── objenesis-3.2.jar
│   ├── ohc-core-0.4.4.jar
│   ├── ohc-core-j8-0.4.4.jar
│   ├── okhttp-2.4.0.jar
│   ├── okio-1.4.0.jar
│   ├── oro-2.0.8.jar
│   ├── osgi-resource-locator-1.0.3.jar
│   ├── paranamer-2.8.jar
│   ├── perfmark-api-0.23.0.jar
│   ├── picocli-4.3.2.jar
│   ├── pointsto-22.0.0.2.jar
│   ├── protobuf-java-3.15.6.jar
│   ├── protobuf-java-util-3.15.6.jar
│   ├── proto-google-common-protos-2.0.1.jar
│   ├── py4j-0.10.9.jar
│   ├── pyrolite-4.30.jar
│   ├── reactive-streams-1.0.3.jar
│   ├── reflections8-0.11.7.jar
│   ├── reporter-config3-3.0.3.jar
│   ├── reporter-config-base-3.0.3.jar
│   ├── RoaringBitmap-0.7.45.jar
│   ├── s2-geometry-library-java-1.0.0.jar
│   ├── scala-library-2.12.10.jar
│   ├── scala-reflect-2.12.10.jar
│   ├── scala-xml_2.12-1.2.0.jar
│   ├── servlet-api-2.5.jar
│   ├── shims-0.7.45.jar
│   ├── sigar-1.6.4.jar
│   ├── slf4j-api-1.7.30.jar
│   ├── slf4j-log4j12-1.7.30.jar
│   ├── snakeyaml-1.28.jar
│   ├── snappy-java-1.1.7.6.jar
│   ├── snowball-stemmer-1.3.0.581.1.jar
│   ├── solr-solrj-8.9.0.jar
│   ├── spark-core_2.12-3.0.0.jar
│   ├── spark-gremlin-3.5.3.jar
│   ├── spark-kvstore_2.12-3.0.0.jar
│   ├── spark-launcher_2.12-3.0.0.jar
│   ├── spark-network-common_2.12-3.0.0.jar
│   ├── spark-network-shuffle_2.12-3.0.0.jar
│   ├── spark-tags_2.12-3.0.0.jar
│   ├── spark-unsafe_2.12-3.0.0.jar
│   ├── spatial4j-0.8.jar
│   ├── spotbugs-annotations-3.1.12.jar
│   ├── ST4-4.0.8.jar
│   ├── stax2-api-3.1.4.jar
│   ├── stax-api-1.0-2.jar
│   ├── stream-2.9.8.jar
│   ├── svm-22.0.0.2.jar
│   ├── tinkergraph-gremlin-3.5.3.jar
│   ├── truffle-api-22.0.0.2.jar
│   ├── unused-1.0.0.jar
│   ├── validation-api-2.0.1.Final.jar
│   ├── vavr-0.10.3.jar
│   ├── vavr-match-0.10.3.jar
│   ├── woodstox-core-asl-4.4.1.jar
│   ├── xbean-asm7-shaded-4.15.jar
│   ├── xmlenc-0.52.jar
│   ├── zookeeper-3.6.2.jar
│   ├── zookeeper-jute-3.6.2.jar
│   └── zstd-jni-1.4.4-3.jar
├── LICENSE.txt
├── logs
│   └── janusgraph.log
├── NOTICE.txt
├── run
│   └── janusgraph.pid
└── scripts
    └── empty-sample.groovy

21 directories, 416 files
"""

导入参考
搭建参考

 类似资料: