Titan -GraphDatabase 配置(一)-環境搭建
Titan -GraphDatabase 配置
System:Ubuntu 16.04
參考博文連結:
https://blog.csdn.net/u010960155/article/details/81069112
https://blog.csdn.net/wyc199273/article/details/51559442
"啟動hadoop,報錯Error JAVA_HOME is not set and could not be found"
只需將各個配置檔案中的export JAVA_HOME=${JAVA_HOME}中路徑修改為顯示路徑即可
一、簡介
Titan 是一個分散式的圖資料庫,支援橫向擴充套件,可容納數千億個節點和邊。Titan 支援事務,並且可以支撐上千使用者併發進行復雜圖遍歷操作。
Titan包含下面這些特性:
彈性與線性擴充套件 分散式架構,可容錯 支援多資料中心的高可用和熱備 支援ACID和最終一致性 支援多種儲存後端 Apache Cassandra Apache HBase Oracle BerkeleyDB Akiban Persistit 支援位置、數字和全文檢索 ElasticSearch Apache Lucene 原生支援TinkerPop軟體棧 Gremlin graph query language Frames object-to-graph mapper Rexster graph server Blueprints standard graph API 開源協議 Apache 2 license
二、安裝準備
Titan使用Hbase儲存資料,elasticSearch做索引。但是Titan本身只支援某些版本 主要在於 Hbase與Hadoop版本相容:https://blog.csdn.net/hsg77/article/details/81033963 考慮到相容性問題,選用如下版本: Java1.8 [Hadoop:2.6.5 ](https://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.6.5/) [Hbase:1.2.8](https://mirrors.cnnic.cn/apache/hbase/hbase-1.2.8/) [elasticSearch:1.5.2](https://www.elastic.co/downloads/past-releases/elasticsearch-1-5-2)
三、安裝步驟
(一)Hadoop安裝
1、Java環境安裝,不做贅述
2、ssh無密碼登入
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#驗證是否成功
ssh localhost
3、安裝hadoop
(1)、解壓安裝
# 我個人安裝的軟體都統一放在/opt資料夾
tar -xzvf hadoop-2.6.5.tar.gz -C /opt
(2)、增加相關資料夾
cd /opt/hadoop-2.6.5
mkdir tmp hdfs hdfs/data hdfs/name
(3)、設定環境變數
vim ~/.bashrc # 在檔案末新增
#set hadoop path
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin
#儲存退出並使設定生效
source ~/.bashrc
(4)、修改配置檔案 在/opt/hadoop-2.5.6/etc/hadoop資料夾中
1)將./etc/hadoop/hadoop-env.sh,./etc/hadoop/yarn-env.sh中的JAVA_HOME修改為顯示路徑
2)修改core-site.xml配置如下
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>HDFS的URI,檔案系統://namenode標識:埠號</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>namenode上本地的hadoop臨時資料夾</description>
</property>
</configuration>
3)修改hdfs-site.xml配置
<configuration>
<!—hdfs-site.xml-->
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop-2.6.5/hdfs/name</value>
<description>namenode上儲存hdfs名字空間元資料 </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop-2.6.5/hdfs/data</value>
<description>datanode上資料塊的物理儲存位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本個數,配置預設是3,應小於datanode機器數量</description>
</property>
</configuration>
4)修改mapred-site.xml配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)修改yarn-site.xml配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8099</value>
</property>
</configuration>
(5)、Hadoop啟動
cd /opt/hadoop-2.6.5
#格式化namenode
./bin/hadoop namenode -format
#啟動NameNode 和 DataNode 守護程序
./sbin/start-dfs.sh
#啟動ResourceManager 和 NodeManager 守護程序
./sbin/start-yarn.sh
(6)、啟動驗證
1)執行jps命令,如有如下程序,說明Hadoop正常啟動
# jps
54679 NameNode
54774 DataNode
15741 Jps
9664 Master
55214 NodeManager
55118 ResourceManager
54965 SecondaryNameNode
2)在瀏覽器中輸入http://localhost:8099、http://localhost:50070檢視管理頁面
4、Hbase安裝
(1)、解壓並配置安裝路徑
sudo tar -zxvf hbase-1.2.8-bin.tar.gz -C /opt
cd /opt/habase-1.2.8
sudo vim ~/.bashrc
export HBASE_HOME=/opt/hbase-1.2.8
export PATH=$PATH:$HBASE_HOME
source ~/.bashrc
(2)、驗證是否安裝成功
執行命令 hbase version 得:
HBase 1.2.8
Source code repository git://amanita/home/busbey/projects/hbase/hbase revision=56d38a088319413dc3a70e90b1b8e655c6a22340
Compiled by busbey on Fri Oct 12 13:02:02 CDT 2018
From source with checksum a44d1d22c15c436b6a9ceade7803cd63
(3)、配置單機模式
1)配置/opt/hbase-1.2.8/conf/hbase-env.sh
vim conf/hbase-env.sh
export JAVA_HOME=/opt/jdk-1.8.0 #修改為顯示路徑
export HBASE_MANAGES_ZK=true #配置由hbase自己管理zookeeper,不需要單獨的zookeeper
2)、配置conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/opt/hbase-1.2.8/hbase-tmp</value>
</property>
</configuration>
3)、啟動Hbase
./bin/start-hbase.sh
5、elasticsearch安裝
(1)、解壓並剪下到/opt
unzip elasticsearch-1.5.2.zip
sudo mv elasticsearch-1.5.2 /opt
(2)、啟動elasticsearch,預設在終端執行,終端關閉服務也會關閉,可使用nouhp在後臺執行
./bin/elasticsearch
附註:如果報錯找不到JAVA_HOME,則修改./bin/elasticsearch.sh 頂部新增
export JAVA_HOME=/opt/jdk1.8.0
6、安裝Titan
(1)、jar包修正
Titan-1.0.0有兩個版本,一個是和Hadoop1組合,一個是Hadoop2組合
當使用和Hadoop2組合時,其本身的lib中jar存在問題
刪除lib資料夾中的jar包:hadoop-core-1.2.1.jar
新增所需要的jar包:
http://search.maven.org/remotecontent?filepath=com/thinkaurelius/titan/titan-hadoop/1.0.0/titan-hadoop-1.0.0.jar
http://search.maven.org/remotecontent?filepath=com/thinkaurelius/titan/titan-hadoop-core/1.0.0/titan-hadoop-core-1.0.0.jar
(2)使用gremlin客戶端測試服務是否啟動成功
附註:如果報錯找不到JAVA_HOME,則修改./bin/titan.sh 頂部新增
export JAVA_HOME=/opt/jdk1.8.0
cd /opt/titan-1.0.0-hadoop2/
./bin/gremlin.sh
#將titan中自帶例子眾神圖譜載入進來,並執行簡單的圖查詢操作幫助熟悉gremlin console
#titan getting started [http://s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html]
gremlin> graph = TitanFactory.open('conf/titan-hbase-es.properties') #建立一個graph例項,使用hbase儲存,es索引。執行完後可以看到habse中多了一個titan表
==>standardtitangraph[cassandrathrift:[127.0.0.1]]
gremlin> GraphOfTheGodsFactory.load(graph) #將titan中的眾神圖譜匯入資料庫。導完以後,hbase titan表裡會增加很多行資料。
==>null
gremlin> g = graph.traversal() #遍歷圖
==>graphtraversalsource[standardtitangraph[cassandrathrift:[127.0.0.1]], standard]
#圖查詢案例
gremlin> saturn = g.V().has('name', 'saturn').next()
==>v[256]
gremlin> g.V(saturn).valueMap()
==>[name:[saturn], age:[10000]]
gremlin> g.V(saturn).in('father').in('father').values('name')
==>hercules
gremlin> g.E().has('place', geoWithin(Geoshape.circle(37.97, 23.72, 50)))
==>e[a9x-co8-9hx-39s][16424-battled->4240]
==>e[9vp-co8-9hx-9ns][16424-battled->12520]
gremlin> g.E().has('place', geoWithin(Geoshape.circle(37.97, 23.72, 50))).as('source').inV().as('god2').select('source').outV().as('god1').select('god1', 'god2').by('name')
==>[god1:hercules, god2:hydra]
==>[god1:hercules, god2:nemean]