JanusGraph是分佈式圖數據庫,前身是Titan。JanusGraph是Titan的一個fork。Titan項目創建於2012年,於2016年停止維護,2017年,JanusGraph項目fork了Titan,直至今天。所以建議大家優選JanusGraph,當然Titan依然是可用的。
JanusGraph支持多種後端和索引,這裏博主選擇Hbase與Elasticsearch。大家在安裝之前,請一定參考相關版本的兼容性。這裏博主使用:
Centos7.2
jdk-8u191-linux-x64.rpm
hadoop-2.7.6
zookeeper-3.4.9
hbase-1.2.6
elasticsearch-5.6.5
janusgraph-0.3.1-hadoop2
這裏JanusGraph使用hbase做後端、elasticsearch做索引,並且在單節點進行僞分佈式的配置。所以首先安裝jdk,安裝之前請先卸載系統自動的jdk。
一、安裝Java環境
1、下載 jdk-8u191-linux-x64.rpm
2、安裝jdk:
rpm -ivh jdk-8u191-linux-x64.rpm
安裝成功之後即可使用 java -version 查看java的信息。但是爲了後續安裝,還是建議配置java環境變量。
3、配置java環境變量:
vim /etc/profile
在最後面加上:
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
export JRE_HOME=/usr/java/jdk1.8.0_191-amd64/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
保存後使環境變量生效:
source /etc/profile
二、關閉禁用防火牆:
systemctl stop firewalld.service
systemctl disable firewalld.service
三、安裝Hadoop:
爲了避免後續安裝問題,安裝的Hadoop一定要根據Hbase的兼容性選擇版本。
1、下載hadoop-2.7.6.tar.gz
2、解壓:
tar -xzvf hadoop-2.7.6.tar.gz
3、配置環境變量,在/etc/profile之後加上:
export HADOOP_HOME=/data/janus/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
4、配置hadoop-2.7.6/etc/hadoop/slaves:
將localhost改成master (master爲hostname)
5、配置hadoop-2.7.6/etc/hadoop/hadoop-env.sh:
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
改爲實際的java地址。
6、配置hadoop-2.7.6/etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>data/janus/hadoop-2.7.6/tmp</value>
</property>
</configuration>
data/janus/hadoop-2.7.6爲hadoop的解壓目錄
7、配置hadoop-2.7.6/etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>data/janus/hadoop-2.7.6/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>data/janus/hadoop-2.7.6/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
建議在data/janus/hadoop-2.7.6下先創建name與data文件夾,並賦予777權限。
8、配置hadoop-2.7.6/etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8034</value>
</property>
</configuration>
9、配置hadoop-2.7.6/etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
10、初始化:
在hadoop-2.7.6/下執行:
bin/hdfs namenode -format
11、啓動hadoop:
sbin/start-all.sh (停止sbin/stop-all.sh)
12、在瀏覽器中通過:
IP:50070進行訪問。
四、安裝zookeeper
1、下載zookeeper-3.49.tar.gz
2、解壓:
tar -vxf zookeeper-3.49.tar.gz
3、配置zookeeper-3.4.9/conf/zoo.cfg:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/install_pakage/zookeeper-3.4.9/data
clientPort=2181
4、啓動:
bin/zkServer.sh start
查看啓動狀態 bin/zkServer.sh status
五、安裝hbase-1.2.6
1、下載hbase-1.2.6-bin.tar.gz
2、解壓:
tar -xvf hbase-1.2.6-bin.tar.gz
3、添加環境變量:
export HBASE_HOME=/data/janus/hbase-1.2.6
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
4、配置hbase-1.2.6/conf/regionservers
改爲master
5、配置hbase-1.2.6/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64/
6、配置hbase-1.2.6/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/opt/hbase/hbase_db</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property><!--zookooper配置、日誌等的存儲位置 -->
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/janus/zookeeper-3.4.9/data</value>
</property>
</configuration>
7、啓動hbase:
bin/start-hbase.sh
8、通過網頁訪問:
IP:16010
六、安裝elasticsearch-5.6.5
1、下載elasticsearch-5.6.5.zip
2、elasticsearch-5.6.5不允許使用root用戶,所以需要首先新建用戶和用戶組:
adduser es
passwd es
groupadd esg
usermod -G esg es
chmod -R 777 elasticsearch-5.6.5
chown -R es elasticsearch-5.6.5
chgrp -R esg elasticsearch-5.6.5
3、配置elasticsearch-5.6.5/config/jvm.options
-Xms2g
-Xmx2g
改爲
-Xms256m
-Xmx256m
4、配置elasticsearch-5.6.5/config/elasticsearch.yml
cluster.name: my-application
node.name: node-1
network.host: 192.168.0.234
http.port: 9200
5、啓動elasticsearch-5.6.5
./bin/elasticsearch
後臺啓動:./bin/elasticsearch -d
結束後臺進程:
ps -ef | grep elastic
kill -9 進程號
6、通過網頁訪問:
IP:9200
七、安裝janusgraph並配置HTTP訪問:
1、下載janusgraph-0.3.1-hadoop2.zip
2、解壓:
unzip janusgraph-0.3.1-hadoop2.zip
3、複製janusgraph-hbase-es.properties 爲http-janusgraph-hbase-es.properties 放在janusgraph-0.3.1-hadoop2/conf/gremlin-server目錄下,http-janusgraph-hbase-es.properties配置如下:
storage.backend = hbase
storage.hostname = master
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5
index.search.backend = elasticsearch
index.search.hostname = master
gremlin.graph = org.janusgraph.core.JanusGraphFactory
storage.hbase.table = janus
4、複製gremlin-server.yaml爲http-gremlin-server.yaml 放在janusgraph-0.3.1-hadoop2/conf/gremlin-server目錄下,http-gremlin-server.yaml 更改下列配置如下:
host: 192.168.0.234
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer
graphs: {
graph: conf/gremlin-server/http-janusgraph-hbase-es.properties
}
5、運行gremlin-server:
./bin/gremlin-server.sh conf/gremlin-server/http-gremlin-server.yaml
6、通過web接口訪問:
IP:8182/?gremlin=100-10
結果如下: