centos系統中neo4j數據庫和python環境部署

最近因為項目需要,到了一個純局域網環境中進行知識圖譜構建。對于小規模數據,neo4j社區版能夠滿足基本的建模和查詢需要(大規模數據需要商業版,或是選用其他開源分布式圖數據庫如nebula等)。本文主要介紹圖數據庫和python環境的部署過程和關鍵操作,以及一些遇到的問題。

部署需求

現狀:手頭有一臺服務器,安裝了centos系統,沒有圖形化界面。

目標:服務器上建立圖數據庫,并且有python開發環境支持我們進行圖數據庫的構建的查詢開發。

主要思路:服務器沒有圖形化界面,作為開發環境不太合適,因此計劃服務器上部署的neo4j和python能夠被局域網遠程機器所訪問,在其他機器上通過瀏覽器進行neo4j的操作和python代碼編寫。考慮到機器在局域網中,后續的方案基本上都是通過離線下載,導入,本地編譯或安裝的方式進行。

技術方案:neo4j+python+jupyter notebook

系統現狀

系統版本查詢

cat /etc/redhat-release

安裝python版本

python --version

安裝基本工具:

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel readline-devel sqlite-devel

neo4j圖數據庫部署

neo4j圖數據庫運行依賴于java-jdk,首先需要進行java-jdk部署.

java-jdk版本取決于neo4j,對應關系不展開。本文使用的是neo4j 5.21.0+java-jdk 21的方案。

java-jdk部署

1.下載地址:Java Downloads | Oracle]

2.遷移到服務器上

3.解壓縮到指定目錄

tar -zxvf jdk-版本號-linux-x64.tar.gz -C /opt/

4.配置環境變量,讓系統識別到:

vi /etc/profile #打開環境配置文件,在文件最后插入以下內容
# 以下是profile文件要添加內容
export JAVA_HOME=/opt/jdk-版本號 #配置主地址
export PATH=$PATH:$JAVA_HOME/bin #配置啟動地址

5.運行配置方案,讓方案生效:

source /etc/profile

6.檢查安裝是否成功

java -version

neo4j部署

1.下載:[Neo4j Deployment Center - Graph Database & Analytics]

2.遷移到服務器上

3.解壓到指定目錄

tar xvf neo4j-community-3.5.26-unix.tar.gz -C /opt/

4.修改配置,開放監聽IP和端口,讓遠程服務器能夠訪問

vi ./opt/neo4j-community/conf/neo4j.conf #路徑自己修改,主要打開neo4j配置文件,在里面添加兩句話
#以下是neo4j.conf文檔內添加內容
dbms.connector.http.listen_address=0.0.0.0:7474 #添加http監聽
dbms.connector.bolt.listen_address=0.0.0.0:7687 #添加bolt連接監聽

5.在neo4j安裝目錄下的服務啟動

./bin/neo4j start #啟動neo4j
./bin/neo4j status #查看啟動狀態

6.測試,在局域網其他機器打開http://服務器IP:7474,進入neo4j管理頁面。

首次進去初始賬號和密碼都是neo4j,進去后讓你修改密碼

如果發現無法打開,在配置正確情況下,確認局域網互通且服務器防火墻配置。糾錯這里不展開。

python環境部署

可以獨立地安裝python+jupyter,本次我直接安裝了anaconda,里面包含了python和jupyter等一些工具,如果要輕量化部署則還是分開安裝好些。

anaconda部署

1.下載,直接打開網址,或是使用命令,在其他機器下載后,遷移到服務器。

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

2.安裝:

bash Anaconda3-版本號-Linux-x86_64.sh

3.配置環境變量,默認安裝地址的話,一般會自動配置環境變量,但如果是自定義地址,還是自己配置下環境變量靠譜些。配置方案與jdk類似,需要添加的是這個。

export PATH=/opt/anaconda3/bin:$PATH

4.檢查安裝是否成功

conda list

jupyter配置

1.檢查jupyter是否安裝成功了

jupyter notebook --version

2.生成配置文件

jupyter notebook --generate-config

命令會生成一個配置文件~/.jupyter/jupyter_notebook_config.py

3.配置監聽地址和端口,密碼

c.NotebookApp.ip = '*' #所有地址都監聽
c.NotebookApp.port = 8888 #監聽端口
c.NotebookApp.password = u'sha1:xxxxxxxxxxxxxxxxxxxxxx' #訪問密碼哈希值

密碼的生成使用需要在python環境內運行以下代碼:

from notebook.auth import passwd
passwd()

結果讓你輸入密碼以及生成該密碼的哈希值。

4.啟動服務

jupyter notebook

5.如果為了更安全,可以使用SSH端口轉發(不一定)

ssh -N -f -L localhost:xxxx:localhost:yyyy username@server_ip

其中xxxx是本地端口,yyyy是服務器上Jupyter運行的端口(默認為8888)。

在遠程瀏覽器中打開http://服務器IP:8888,進入jupyter。

如果進入成功,輸入密碼就可以遠程進行代碼編寫和編譯工作。

如果無法打開,自己搜索,一般也是配置,網絡和防火墻問題。

neo4j python支持安裝

在python中操作neo4j需要安裝對應的庫,py2neo由于停止更新了,目前版本不支持最新的python版本,所以使用neo4j的python庫。

1.離線下載地址:[neo4j · PyPI]

2.傳輸wheel文件:
將下載的.whl文件復制到離線安裝的目標機器上。

3.使用pip進行離線安裝:
在目標機器上,使用pip安裝這些wheel文件:

pip install --no-index --find-links=file:///path/to/offline/wheels neo4j

4.驗證安裝:
安裝完成后,使用以下命令驗證Neo4j Python驅動程序是否安裝成功:

python -c "import neo4j"


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36803.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36803.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36803.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

黃金架構編譯部署

LNMP黃金架構部署 行走的CD: LNMP的解析過程:提到 LNMP的解析過程,我們應需要了解一個概念 CGI, CGI 就是指一個通用網關接口,用于 HTTP 服務器和其他應用服務器通訊的一個工具,在這 HTTP 服務器一般咱們就是指的是 Nginx、 Apac…

Java | Leetcode Java題解之第201題數字范圍按位與

題目&#xff1a; 題解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右邊的 1n n & (n - 1);}return n;} }

獲取當前操作系統的名稱platform.system()

【小白從小學Python、C、Java】 【考研初試復試畢業設計】 【Python基礎AI數據分析】 獲取當前操作系統的名稱 platform.system() [太陽]選擇題 在Python中&#xff0c;platform.system() 函數被用來獲取什么信息&#xff1f; import platform print("【執行】platform.s…

如何在Java中實現自定義數據結構

如何在Java中實現自定義數據結構 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我將為大家介紹如何在Java中實現自定義數據結構。盡管Java提供了豐富的內置…

05 threeJs基礎---陣列立方體和相機適配體驗立方體

1.增加相機視角fov 注&#xff1a; 范圍更大&#xff0c;意味著可以看到渲染范圍更大&#xff0c;遠小近大的視覺效果更明顯 fov:眼球張開的角度&#xff0c;0時相當于閉眼。aspect:可視區域橫縱比。near:眼睛能看到的最近垂直距離。far&#xff1a;眼睛能看到的最遠垂直距離。…

Python中的@property裝飾器:深入理解與應用

Python中的property裝飾器&#xff1a;深入理解與應用 在Python中&#xff0c;property裝飾器是一個強大的工具&#xff0c;它允許我們將方法作為屬性來訪問&#xff0c;使得代碼更加簡潔、清晰&#xff0c;并提供了更好的封裝性。本文將深入探討property裝飾器的工作原理、應…

字節數組輸出流轉換為Base64方法記錄

1. 今天在做字節數組轉換Base64的時候遇到一個問題&#xff0c;轉換成的Base64字符串自動換行&#xff0c;導致傳輸失敗 關鍵代碼&#xff1a; ByteArrayOutputStream out new ByteArrayOutputStream(); ............. BASE64Encoder encoder new BASE64Encoder(); Stri…

Python 3 循環語句

Python 3 循環語句 Python 是一種廣泛使用的高級編程語言,以其簡潔明了的語法和強大的功能而聞名。在 Python 中,循環語句是控制程序流程的關鍵組成部分,它們允許我們重復執行代碼塊,直到滿足特定的條件。Python 3 提供了幾種循環語句,包括 for 循環和 while 循環,以及一…

由于沒有遠程桌面授權服務器怎么辦?

在現代的工作環境中&#xff0c;遠程訪問和遠程桌面控制已經成為一項日益重要的需求。隨著企業和組織的擴張&#xff0c;人們經常需要在不同的地點之間共享文件和應用程序。由于缺乏遠程桌面授權服務器&#xff0c;這一過程可能會變得困難和不安全。 遠程桌面授權服務器是一種…

day02-登錄模塊-主頁鑒權

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 1.分析登錄流程1.1傳統思路是登錄校驗通過之后&#xff0c;直接調用接口&#xff0c;獲取token之后&#xff0c;跳轉到主頁1.2vue-element-admin模板的登錄思路&…

信息(文字、圖像、音頻、視頻等)在計算機中是如何存儲及顯示的

信息&#xff08;文字、圖像、音頻、視頻等&#xff09;在計算機中是如何存儲及顯示的 圖片的存儲圖片的文件格式像素數據的二進制表示存儲和處理顯示總結 圖片的顯示4. 像素點控制具體的像素控制過程示例總結 如題&#xff0c;這里以圖片為例。 圖片的存儲 計算機桌面上的一…

基于盲信號處理的聲音分離-基于改進的信息最大化的ICA算法

基于信息最大化的ICA算法的主要依據是使輸入端與輸出端的互信息達到最大&#xff0c;且輸出各個分量之間的相關性最小化&#xff0c;即輸出各個分量之間互信息量最小化&#xff0c;其算法的系統框圖如圖所示。 基于信息最大化的ICA算法的主要依據是使輸入端與輸出端的互信息達到…

華僑大學24計算機考研數據速覽,專碩22408復試線290分,學碩11408接收調劑!

華僑大學計算機專業創建于1980年&#xff0c;是福建省最早設立計算機專業的高校之一。1982年成立計算機系&#xff0c;2008年成立計算機科學與技術學院。根據“華僑大學計算機科學與技術學院網站”資料&#xff0c;該院有計算機科學與技術、軟件工程、網絡工程3個本科專業&…

java中常見數據結構

ArrayList 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的一個重要類&#xff0c;它實現了 List 接口&#xff0c;并提供了動態數組的功能。以下是 ArrayList 上的一些常用方法&#xff1a; 構造方法&#xff1a; ArrayList<E>(): 構造一個空的…

git基本使用(二):git分支的操作命令

Git 的多分支管理是指在同一個倉庫中創建和管理多個分支&#xff0c;每個分支可以獨立開發&#xff0c;互不干擾。分支是 Git 中的一種強大功能&#xff0c;允許開發人員同時在多個不同的功能、修復或實驗上工作&#xff0c;而不會影響主分支或其他分支。通過多分支管理&#x…

spring-boot-starter-json配置對象屬性為空不顯示

問題背景 在Spring Boot中使用spring-boot-starter-json&#xff08;通常是通過jackson實現的&#xff09;時&#xff0c;如果你希望在序列化對象時&#xff0c;如果某個屬性為空&#xff0c;則不顯示該屬性&#xff0c;你可以使用JsonInclude注解來實現這一點。 pom.xml <…

Java數據結構算法(最長遞增序列二分查找)

前言: 最長遞增子序列&#xff08;Longest Increasing Subsequence, LIS&#xff09;是指在一個給定的序列中&#xff0c;找到一個最長的子序列&#xff0c;使得這個子序列中的元素是單調遞增的。子序列不要求在原序列中連續。 實現原理 使用一個 tails 列表&#xff0c;其中…

Java對象集合按照指定元素順序排序

需求背景 最近在對一個集合列表的數據進行排序&#xff0c;需求是要集合數據按照一個排序狀態值進行排序&#xff0c;而這個狀態值&#xff0c;不是按照從小到大這樣的順序排序的&#xff0c;而是要按照特定的順序&#xff0c;比如按照1, 0, 2的順序排的&#xff0c;所以需要自…

clickhouse count和uniqCombined

count(distinct ) 和 uniqCombined 獲取去重后的總數。 去重&#xff1a;order by distinct argMax group by 哪個好&#xff1f;&#xff1f; clickhouse數據去重函數介紹&#xff08;count distinct&#xff09;_clickhouse distinct-CSDN博客

stm32-USART通信

什么是usart&#xff1f;和其他通信又有什么區別&#xff1f; 如下圖&#xff1a; USART是一種用于串行通信的設備&#xff0c;可以在同步和異步模式下工作。 usart有兩根數據線&#xff0c;一根發送線&#xff08;tx&#xff09;一根接收線&#xff08;rx&#xff09;&#x…