Image
Top
Navigation

チュートリアル11 : OrientDBをinstallする(centos)

OrientDBをinstallする(centos編)

前提:
– /opt/orientdb配下にインストールする
– ユーザはorientdb
– java1.6以上がインストールされていること

javaのバージョンを確認します


[root@newyork log]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

最新のバイナリーをダウンロードする

ダウンロードサイトからバイナリーをダウンロードします

ここでは、OrientDB 1.7.8 Community Edition (August 13th 2014)を対象にします。

インストールする

ダウンロードしたorientdb-community-1.7.8.tar.gzをサーバーのどこかに置きます。

解凍します

sudo tar -zxvf orientdb-community-1.7.8.tar.gz -C /opt/

/opt/orientdbにシンボリックリンクを張る

sudo ln -s /opt/orientdb-community-1.7.8/ /opt/orientdb

設定ファイルorientdb-server-config.xmlには、パスワードが平文で書かれますので、他のユーザが読めないようにしておきます。

sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml

グループやユーザを作成する

sudo groupadd orientdb
sudo useradd -d /opt/orientdb -g orientdb orientdb
sudo passwd orientdb

orientdb配下のオーナーを変更する

sudo chown -R orientdb.orientdb /opt/orientdb*

orientdbになる

su - orientdb

サーバー等の実行スクリプトは/opt/orientdb/binです。実行権限を与えます

chmod g+x /opt/orientdb/bin/*.sh

とりあえずサーバーを起動してみる


[root@newyork bin]# /opt/orientdb/bin/server.sh
           .
          .`        `
          ,      `:.
         `,`    ,:`
         .,.   :,,
         .,,  ,,,
    .    .,.:::::  ````                                 :::::::::     :::::::::
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     :::
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     :::
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     :::
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     :::
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     :::
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     :::
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::
           ,,:` `,,.
          ,,,    .,`
         ,,.     `,                                          GRAPH DATABASE
       ``        `.
                 ``                                         www.orientdb.org
                 `

2014-08-19 14:26:06:061 INFO Loading configuration from: /opt/orientdb/config/orientdb-server-config.xml... [OServerConfigurationLoaderXml]
2014-08-19 14:26:06:376 INFO OrientDB Server v1.7.8 (build UNKNOWN@r; 2014-08-13 15:56:07+0200) is starting up... [OServer]
2014-08-19 14:26:06:387 INFO Databases directory: /opt/orientdb/databases [OServer]
2014-08-19 14:26:06:442 INFO Listening binary connections on 0.0.0.0:2424 (protocol v.21, socket=default) [OServerNetworkListener]
2014-08-19 14:26:06:443 INFO Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=default) [OServerNetworkListener]
2014-08-19 14:26:06:477 INFO Installing dynamic plugin 'studio-1.7.8.zip'... [OServerPluginManager]
2014-08-19 14:26:06:578 INFO Installing GREMLIN language v.2.5.0 - graph.pool.max=50 [OGraphServerHandler]
2014-08-19 14:26:06:594 INFO Installing Script interpreter. WARN: authenticated clients can execute any kind of 
code into the server by using the following allowed languages:  [OServerSideScriptInterpreter]
2014-08-19 14:26:06:594 INFO OrientDB Server v1.7.8 is active. [OServer]

と表示されれば成功です。ここでは、’ctrl+c’で停止します。

起動スクリプト

まず、/opt/orientdb/bin/にあるorientdb.shを修正します。

6行目あたりにある

ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"

ORIENTDB_DIR="/opt/orientdb" ##インストールディレクトリィ
ORIENTDB_USER="orientdb"     ##起動ユーザ

に修正します。

OrientDBのstop/start/statusはorientdb.shがserver.shとshutdown.shを呼び出す形になっています。

起動してみます。

sudo /opt/orientdb/bin/orientdb.sh start

Starting OrientDB server daemon...

プロセスを見てみます。


root@newyork bin]# ps -edf | grep orientdb
orientdb  5803     1  0 14:33 ?        00:00:00 /bin/sh ./server.sh
orientdb  5808  5803  3 14:33 ?        00:00:01 java -server -Djna.nosys=true -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true 
-Dfile.encoding=UTF8 -Drhino.opt.level=9 -Dprofiler.enabled=true -Djava.util.logging.config.file=/opt/orientdb/config/orientdb-server-log.properties 
-Dorientdb.config.file=/opt/orientdb/config/orientdb-server-config.xml -Dorientdb.www.path=/opt/orientdb/www 
-Dorientdb.build.number=UNKNOWN@r; 2014-08-13 15:56:07+0200 -cp /opt/orientdb/lib/orientdb-server-1.7.8.jar:/opt/orientdb/lib/* com.orientechnologies.orient.server.OServerMain
root      5825  4583  0 14:34 pts/1    00:00:00 grep orientdb

このプロセスをkillしてもサーバーは正常(ちゃんとデータベースをクローズして)に停止します。
kill -9での強制停止だと、データベースがちゃんとクローズされません。

状態を見てみます。

sudo /opt/orientdb/bin/orientdb.sh status

OrientDB server daemon is running with PID: 5808

停止してみます。

sudo /opt/orientdb/bin/orientdb.sh stop
Stopping OrientDB server daemon...

サーバーログ

サーバーのログは/opt/orientdb/log配下にあります。

起動して、停止しただけの場合のorientdb.errの内容はこんな感じです。


2014-08-19 14:39:34:505 INFO OrientDB Server v1.7.8 is active. [OServer]
2014-08-19 14:40:09:321 INFO Received shutdown command from the remote client /192.168.2.128:59936 [ONetworkProtocolBinary]
2014-08-19 14:40:09:322 INFO Remote client /192.168.2.128:59936 authenticated. Starting shutdown of server... [ONetworkProtocolBinary]
2014-08-19 14:40:09:323 INFO OrientDB Server is shutting down... [OServer]
2014-08-19 14:40:09:324 INFO Shutting down listeners: [OServer]
2014-08-19 14:40:09:325 INFO - ONetworkProtocolBinary /0.0.0.0:2424: [OServer]
2014-08-19 14:40:09:326 INFO - ONetworkProtocolHttpDb /0.0.0.0:2480: [OServer]
2014-08-19 14:40:09:327 INFO Shutting down protocols [OServer]
2014-08-19 14:40:09:327 INFO Shutting down plugins: [OServerPluginManager]
2014-08-19 14:40:09:328 INFO - studio [OServerPluginManager]
2014-08-19 14:40:09:329 INFO - automaticBackup [OServerPluginManager]
2014-08-19 14:40:09:329 INFO - script-interpreter [OServerPluginManager]
2014-08-19 14:40:09:329 INFO - jmx [OServerPluginManager]
2014-08-19 14:40:09:405 INFO - graph [OServerPluginManager]
2014-08-19 14:40:09:406 INFO Shutting down databases: [OServer]
2014-08-19 14:40:09:407 INFO OrientDB Engine shutdown complete [Orient]
2014-08-19 14:40:09:407 INFO OrientDB Server shutdown complete [OServer]

起動して、停止しただけの場合のorientdb.logの内容はこんな感じです。


          .
          .`        `
          ,      `:.
         `,`    ,:`
         .,.   :,,
         .,,  ,,,
    .    .,.:::::  ````                                 :::::::::     :::::::::
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     :::
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     :::
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     :::
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     :::
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     :::
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     :::
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::
           ,,:` `,,.
          ,,,    .,`
         ,,.     `,                                          GRAPH DATABASE
       ``        `.
                 ``                                         www.orientdb.org
                 `
Sending shutdown command to remote OrientDB Server instance...
Shutdown executed correctly

コンソールを使う

起動した状態で、コンソールを使ってみましょう


-bash-4.1$ ./console.sh

OrientDB console v.1.7.8 (build UNKNOWN@r; 2014-08-13 15:56:07+0200) www.orientechnologies.com
Type 'help' to display all the commands supported.
Installing extensions for GREMLIN language v.2.5.0

orientdb>

コンソールは、必ず、orientdbの実行ユーザで起動して下さい。
root権限で、’./console.sh’したり、root権限のまま、’/opt/orientdb/bin/orientdb.sh start’をしたりすると
データベースやログファイルがrootで出来てしまいますので注意しましょう。

ここでサンプルデータベースとして同梱されているGratefulDeadConcertsデータベースに接続してみます。


orientdb> connect remote:localhost/GratefulDeadConcerts admin admin

Connecting to database [remote:localhost/GratefulDeadConcerts] with user 'admin'...OK
orientdb {GratefulDeadConcerts}>

‘info’コマンドでデータベースの情報を表示させて見ましょう。


orientdb {GratefulDeadConcerts}> info

Current database: GratefulDeadConcerts (url=remote:localhost/GratefulDeadConcerts)

DISTRIBUTED CONFIGURATION: none (OrientDB is running in standalone mode)

DATABASE PROPERTIES
--------------------------------+----------------------------------------------------+
 NAME                           | VALUE                                              |
--------------------------------+----------------------------------------------------+
 Name                           | null                                               |
 Version                        | 9                                                  |
 Date format                    | yyyy-MM-dd                                         |
 Datetime format                | yyyy-MM-dd HH:mm:ss                                |
 Timezone                       | GMT                                                |
 Locale Country                 | UK                                                 |
 Locale Language                | EN                                                 |
 Charset                        | UTF-8                                              |
 Schema RID                     | #0:1                                               |
 Index Manager RID              | #0:2                                               |
 Dictionary RID                 | null                                               |
--------------------------------+----------------------------------------------------+

CLUSTERS
----------------------------------------------+-------+---------------------+---------+-----------------+
 NAME                                         |   ID  | TYPE                | DATASEG | RECORDS         |
----------------------------------------------+-------+---------------------+---------+-----------------+
 _studio_bookmark                             |    12 | PHYSICAL            |      -1 |               0 |
 default                                      |     3 | PHYSICAL            |      -1 |               0 |
 e                                            |    10 | PHYSICAL            |      -1 |               0 |
 followed_by                                  |    11 | PHYSICAL            |      -1 |            7047 |
 index                                        |     1 | PHYSICAL            |      -1 |               2 |
 internal                                     |     0 | PHYSICAL            |      -1 |               3 |
 manindex                                     |     2 | PHYSICAL            |      -1 |               1 |
 ofunction                                    |     7 | PHYSICAL            |      -1 |               0 |
 orids                                        |     6 | PHYSICAL            |      -1 |               0 |
 orole                                        |     4 | PHYSICAL            |      -1 |               3 |
 oschedule                                    |     8 | PHYSICAL            |      -1 |               0 |
 ouser                                        |     5 | PHYSICAL            |      -1 |               3 |
 v                                            |     9 | PHYSICAL            |      -1 |             809 |
----------------------------------------------+-------+---------------------+---------+-----------------+
 TOTAL = 13                                                                 |         |            7868 |
----------------------------------------------------------------------------+---------+-----------------+

CLASSES
----------------------------------------------+------------------------------------+------------+----------------+
 NAME                                         | SUPERCLASS                         | CLUSTERS   | RECORDS        |
----------------------------------------------+------------------------------------+------------+----------------+
 _studio_bookmark                             |                                    | 12         |              0 |
 E                                            |                                    | 10         |              0 |
 followed_by                                  | E                                  | 11         |           7047 |
 OFunction                                    |                                    | 7          |              0 |
 OIdentity                                    |                                    | -          |              0 |
 ORestricted                                  |                                    | -          |              0 |
 ORIDs                                        |                                    | 6          |              0 |
 ORole                                        | OIdentity                          | 4          |              3 |
 OSchedule                                    |                                    | 8          |              0 |
 OTriggered                                   |                                    | -          |              0 |
 OUser                                        | OIdentity                          | 5          |              3 |
 V                                            |                                    | 9          |            809 |
----------------------------------------------+------------------------------------+------------+----------------+
 TOTAL = 12                                                                                                 7862 |
----------------------------------------------+------------------------------------+------------+----------------+

INDEXES
----------------------------------------------+------------+-----------------------+----------------+------------+
 NAME                                         | TYPE       |         CLASS         |     FIELDS     | RECORDS    |
----------------------------------------------+------------+-----------------------+----------------+------------+
 dictionary                                   | DICTIONARY |                       |                |          0 |
 ORole.name                                   | UNIQUE     | ORole                 | name           |          3 |
 OUser.name                                   | UNIQUE     | OUser                 | name           |          3 |
----------------------------------------------+------------+-----------------------+----------------+------------+
 TOTAL = 3                                                                                                     6 |
-----------------------------------------------------------------------------------------------------------------+

データベースをdisuconnectします。


orientdb {GratefulDeadConcerts}> disconnect

Disconnecting from the database [GratefulDeadConcerts]...OK
orientdb> exit

-bash-4.1$

exitでコンソールから抜けます。

とりあえず、インストールはここまでです。

データベース管理者ユーザについて(rootのパスワード変更とadminの追加)

初めてOrientDBサーバーを起動すると、orientdb-server-config.xmlに以下の行が追加されます。

これはデフォルトユーザとしてのrootと自動生成されたパスワードです。

  ...
    <users>
        <user resources="*" password="E60AEAB35A4B41F34B1B8E0E974D23E19BB1BECBADAC05A47641C598734A4698" name="root"/>
        <user resources="connect,server.listDatabases,server.dblist" password="guest" name="guest"/>
    </users>
  ...

非常に長いパスワードになっているので、停止状態で変更しておきましょう。
またデータベースを操作するスーパーユーザとして”admin”ユーザを追加しておきます。
“guest”ユーザは削除しておいたほうが良いでしょう。

“root”ユーザは起動後の停止における認証にも使用されます。起動中は”root”ユーザのパスワードは変更しないでください。

もし、/opt/orientdb/bin/orientdb.sh stopで停止できなくなったらプロセスをkillしてもサーバーは正常(ちゃんとデータベースをクローズして)に停止します。

  ...
    <users>
        <user resources="*" password="パスワード" name="root"/>
        <user resources="*" password="パスワード" name="admin"/>
    </users>
  ...

うまくいかないとき

自分のホスト名でipアドレスが解決できないとshutdownに失敗します。
hostsに書き加えて下さい。

チュートリアル12 : データベースを作成する(centos)に続きます。