1. 程式人生 > >如何在滴滴雲上編譯RocksDB的jni

如何在滴滴雲上編譯RocksDB的jni

1、首先拉取 RocksDB 的最新原始碼

git clone (https://github.com/facebook/rocksdb.git)

2、緊接著需要使用 Maven 拉取 RocksDB 的依賴

根據官方文件,可以找到相應依賴的目錄:
https://search.maven.org/search?q=g:org.rocksdb
在這裡插入圖片描述

開啟後可以看到 Maven 的依賴原始碼,如下圖所示:
在這裡插入圖片描述

點選右上角的複製,複製到 RocksDB 的工程目錄下,命令為 pom.xml 檔案,同時修改其中的 110 行,改為如下標紅的樣式:
在這裡插入圖片描述

3、接下來需要安裝 Maven

進入官網

http://maven.apache.org/download.cgi
下載最新的 Maven,筆者這裡下載的是 3.6.0 版本。

在命令列輸入命令

wget

http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

接著,解壓 tar 包 : tar –xvf apache-maven-3.6.0-bin.tar.gz

將解壓後的 Maven 移動到 /usr/local 目錄下 : sudo mv apache-maven-3.6.0 /usr/local/apache-maven

同時更改環境變數,在 /etc/profile 檔案末尾增加

export M2_HOME=/usr/local/apache-maven
export PATH=$PATH:$M2_HOME/bin

敲入以下命令使之生效:

source /etc/profile

這時候可以使用 mvn-version 檢視 Maven 版本。
在這裡插入圖片描述
因為我們的映象是純淨的映象,故需要安裝 JDK。

4、安裝 JDK

  • 下載 JDK 包
sudo mkdir /usr/java
wget 

http://mirrors.linuxeye.com/jdk/jdk-8u152-linux-x64.tar.gz


同時解壓 tar xzf jdk-8u152-linux-x64.tar.gz -C /usr/java

  • 設定環境變數
    編輯
/etc/profile:sudo vi /etc/profile

按 i 鍵進入編輯模式。

在 /etc/profile 檔案中新增以下資訊:

   #set java environment
    export JAVA_HOME=/usr/java/jdk1.8.0_152
    export JRE_HOME=/usr/java/jdk1.8.0_152/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

按 Esc 鍵退出編輯模式,輸入:wq 儲存並關閉檔案。

載入環境變數 source /etc/profile

  • 檢視 JDK 版本 java –version
    在這裡插入圖片描述

5、此時應該已經裝好了 Maven 以及 Java 了,可以進行下一步拉取依賴的操作

首先看一下 Maven,輸入 mvn –version
在這裡插入圖片描述

下一步,拉取依賴,進入 RocksDB 工程目錄

輸入 以下命令,拉取所有的依賴:

mvn install

在這裡插入圖片描述
此時完成了依賴拉取。

6、編譯 RocksDB 的包

完成了上述準備以後,就可以開始編譯相關的庫了。
在 RocksDB 的工程目錄下開始編譯 make –j8 rocksdbjava
編譯完成以後,可以在工程目錄 /java/target 找到相對應的 so 與 jar。
在這裡插入圖片描述

附:滴滴雲環境

機器配置:通用型 2核 CPU 4GB 記憶體 系統盤 100GB 資料盤 400GB 頻寬規格 1Mbps
系統環境:Centos 7.4
gcc 版本:4.8.5(RocksDB 要求 g++ 編譯器能夠支援 c++11)