Findhy's Blog

Art is long, Life is short.

Titan Tutorial

| Comments

Titan的官方手册内容更加丰富,但是太多,初学者不知如何下手,本文摘取重点部分,希望能快速上手Titan。

1.版本说明

Titan:titan-server-0.4.4
HBase:hbase-0.94.6-cdh4.3.2
Elasticsearch:elasticsearch-0.90.3

2.环境说明

服务器3台:

master 10.0.1.252
slave1 10.0.1.253
slave2 10.0.1.254

HBase搭建的是集群,一个master,两个slave;Elasticsearch在master上部署的单机版本;Titan在master上部署的单机版本。本文不包括HBase集群搭建过程。

3.Elasticsearch安装

由于Titan0.4.4版本只能支持Elasticsearch的版本是0.90.3,看这里Version-Compatibility。所以这里注意版本,Elasticsearch 0.90.3的文档可以看这里Elasticsearch-doc。下面开始安装。

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.3.tar.gz
tar –zxvf elasticsearch-0.90.3.tar.gz
cd elasticsearch-0.90.3

启动elasticsearch:
./bin/elasticsearch
执行jps,会看到多了一个ElasticSearch的进程,说明成功

4.Titan安装

Titan有多种版本提供下载,这里选择titan-server-0.4.4。

mkdir /home/hadoop/titan-cdh4.3.2
进入
cd titan-cdh4.3.2
下载
wget http://s3.thinkaurelius.com/downloads/titan/titan-server-0.4.4.zip
解压
unzip titan-server-0.4.4.zip
进入目录
cd titan-server-0.4.4

修改配置文件

vi ./conf/titan-hbase-es.properties

storage.hostname=master,slave1,slave2
storage.port=2181
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

storage.index.search.backend=elasticsearch
storage.index.search.hostname=master
storage.index.search.client-only=true

初始化Titan与HBase

cd /home/hadoop/titan-cdh4.3.2/titan-server-0.4.4/
./bin/gremlin.sh

gremlin>g = TitanFactory.open('conf/titan-hbase-es.properties')

这时候到hbase shell下面执行list命令,可以看到多了一张titan的表,执行describe ‘titan’可以看到titan的表结构,加载数据:

gremlin> GraphOfTheGodsFactory.load(g)

到hbase shell下面执行scan ‘titan’可以看到初始化了一些数据,下面用gremlin命令行验证一下这些数据

gremlin> saturn = g.V('name','saturn').next()
==>v[4]
gremlin> saturn.map()
==>name=saturn
==>age=10000
==>type=titan
gremlin> saturn.in('father').in('father').name
==>hercules

如果输出一致则验证成功

5.Rexster配置

这部分文档参考:https://github.com/thinkaurelius/titan/wiki/Rexster-Graph-Server

修改rexster配置文件

cd /home/hadoop/titan-cdh4.3.2/titan-server-0.4.4/conf
cp rexster-cassandra-es.xml rexster-hbase-es.xml
vi rexster-hbase-es.xml

有两个地方要改,一个是http这个标签,一个是graphs这个标签,黄色是需要修改的内容,第一个修改如下:

<http>
  <server-port>8182</rexster-server-port>
  <base-uri>http://54.255.164.52</base-uri>
  <web-root>public</web-root>
  <character-set>UTF-8</character-set>
  ...
</http>

第二个修改如下:

<graphs>
    <graph>
        <graph-name>graph</graph-name>
       <graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
        <!-- <graph-location>/tmp/titan</graph-location> -->
        <graph-read-only>false</graph-read-only>
        <properties>
            <storage.backend>hbase</storage.backend>
            <storage.hostname>master,slave1,slave2</storage.hostname>
            <storage.index.search.backend>elasticsearch</storage.index.search.backend>
            <storage.index.search.hostname>master</storage.index.search.hostname>
            <!--<storage.index.search.directory>../db/es</storage.index.search.directory>-->
            <storage.index.search.client-only>false</storage.index.search.client-only>
            <storage.index.search.local-mode>false</storage.index.search.local-mode>
        </properties>
        <extensions>
          <allows>
            <allow>tp:gremlin</allow>
          </allows>
        </extensions>
    </graph>
</graphs>

启动Rexster

cd /home/hadoop/titan-cdh4.3.2/titan-server-0.4.4
./bin/rexster.sh –s –c ../conf/rexster-hbase-es.xml

访问http://master-ip:8182/

出现下面画面则启动成功

Rexster是建立在任何实现了Blueprints的图数据库(Graph Database)之上的web server,它提供这三种功能:

  • 提供基于REST的接口方法:GET, POST, PUT, and DELETE,去操作Graph Database
  • The Dog House提供基于浏览器去操作Graph,还有可视化Graph,界面如下:
  • 提供RexsterClient客户端去访问Rexster server,包括执行一些Graph的操作

Comments