Neo4j

重要

本文档已过时,将来可能不会更新。 此内容中提及的产品、服务或技术未经 Databricks 官方认可或测试。

Neo4j 是一个利用数据关系作为第一类实体的本机图形数据库。 可以使用 neo4j-spark-connector(为 RDD、DataFrame 和 GraphFrames 提供 Apache Spark API)将 Azure Databricks 群集连接到 Neo4j 群集。 neo4j-spark-connector 使用二进制 Bolt 协议将数据传输到 Neo4j 服务器以及从其传输数据。

本文介绍如何部署和配置 Neo4j,以及如何配置 Azure Databricks 以访问 Neo4j。

Neo4j 部署和配置

可以在不同的云提供商上部署 Neo4j。

若要部署 Neo4j,请参阅官方的 Neo4j 云部署指南。 本指南假定你使用 Neo4j 3.2.2。

更改 Neo4j 默认密码(首次访问 Neo4j 时系统会提示你),并修改 conf/neo4j.conf 以接受远程连接。

# conf/neo4j.conf

# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=0.0.0.0:7687

# HTTP Connector. There must be exactly one HTTP connector.
dbms.connector.http.enabled=true
#dbms.connector.http.listen_address=0.0.0.0:7474

# HTTPS Connector. There can be zero or one HTTPS connectors.
dbms.connector.https.enabled=true
#dbms.connector.https.listen_address=0.0.0.0:7473

有关详细信息,请参阅配置 Neo4j 连接器

Azure Databricks 配置

  1. 安装两个库(neo4j-spark-connectorgraphframes)作为 Spark 包。 有关说明,请参阅指南。

  2. 使用这些 Spark 配置创建群集。

    spark.neo4j.bolt.url bolt://<ip-of-neo4j-instance>:7687
    spark.neo4j.bolt.user <username>
    spark.neo4j.bolt.password <password>
    
  3. 导入库并测试连接。

    import org.neo4j.spark._
    import org.graphframes._
    
    val neo = Neo4j(sc)
    
    // Dummy Cypher query to check connection
    val testConnection = neo.cypher("MATCH (n) RETURN n;").loadRdd[Long]