Amazon

2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最近のトラックバック

無料ブログはココログ

Amazon2

« Neo4jを.NET(C#)から操作する | トップページ | Ubuntu16.04Serverをインストールしたらやる事 »

2017年10月16日 (月)

Ubuntu16.04にDockerを利用してNeo4jをインストールする<一台のサーバで複数のインスタンスを起動する>

さて、Neo4jネタの延長戦です。前回に最終回って書いた気がしますがもうちょっとだけ遊んでみます。
今回はDockerを利用してNeo4jをインストールします。何故普通にインストールしたのに
わざわざDockerを使用するのかと言うと。同一のサーバーで複数インスタンスを起動したいからです。





前回も終わりの方で「唯一気になるのは、複数のデータベースを作れない事。それだけは非常に残念です」と、
書きました。これって実際に何かに使用する際には非常に大切な事だと思うので、もう少し検討してみました。

Neo4jは一つのインスタンスに複数のデータベースを持つ事ができない仕様です。その様な
運用がしたい場合は、一台のサーバーに複数のインスタンスを立てる事ができるようになっている
らしいですが、複数のデータベースを持つ必要があるのであれば、一台のサーバで複雑な設定をするよりも
別の運用方法があるのではないかと思います。

今時であれば物理的なサーバーは一台であっても、
  ・複数の仮想マシン(VM)を利用してNeo4jのインスタンスを複数用意する
  ・複数のコンテナを利用してNeo4jのインスタンスを複数用意する

等と言った構成も可能です。

複数の仮想マシンを用意する方が必要とするリソース(CPU/メモリ)が多いし、管理も面倒なので、
今回はUbuntu 16.04 LTSとDockerを使用してさらっとNeo4jのサーバーを複数立ててみることにします。



・Dockerの導入

公式サイト : https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description
公式インストール手順 : https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-repository

今回はDockerの導入記事ではないのでさくっと。。。以下のコマンドを実行してください。


必須パッケージのインストール




Dockerリポジトリのgpgキーの追加




Docker CE StatbleのDockerリポジトリの設定
Stableなのは、こういうところ(やりたい所と違う所)であまり苦労したくないから。。。




Docker CEのインストール




動作確認



ok! 簡単ですね! 続いて本題です。


・Neo4jの導入

こちら Neo4j with Docker の手順に従います。
基本的にはdocker runするだけですがその前にちょっと準備をしましょう。


ディレクトリの準備

データ/ログが保存される場所を準備します。二つインスタンスを立てるつもりですので、
二か所ずつ用意します。適当にデータ用とログ用を用意してください。




Dockerを利用して起動

Dockerを使用しますので、インストールと言うよりは起動と言うイメージになります。
初回起動時はDockerイメージを自動的にダウンロードして起動しますので、インストールと言う
作業は不要です。


下記の設定をして起動します。
  ・HTTP/Boltのポートの指定
    一つ目のインスタンスは HTTP/Bolt を 17474/17687 に、
    二つ目のインスタンスは HTTP/Bolt を 27474/27687 に設定します。
  ・利用するメモリの指定
    利用する仮想マシンの都合上pagecache/heap maxsizeをそれぞれ1GBにします


一つ目のインスタンスの起動。docker runコマンドを実行します。



起動後に http://[★IPアドレス★]:17474/browser/ にアクセスすると簡単に起動します。
初期パスワードはneo4j/neo4jです。
ホストのポート番号(bolt)は最初7687が表示されていますので、17687を設定してください。

Neo4j_docker_01



とりあえず、以下のNodeを作成して検索します。



Neo4j_docker_02



続いて、二つ目のインスタンスを起動します。




起動後に http://[★IPアドレス★]:27474/browser/ にアクセスすると簡単に起動します。
そして、二つ目のインスタンスを起動したので当然ですが、また初期パスワードを聞かれます。
neo4j/neo4jを指定してください。
ホストのポート番号(bolt)は最初7687が表示されていますので、27687を設定してください。

Neo4j_docker_03



起動後にいきなり全ノードを検索しても…もちろん何もありません。



Neo4j_docker_04



ノードを一つ追加して検索すると、勿論表示されます。



Neo4j_docker_05



そして一つ目のインスタンスから参照すると勿論instance2ではなく最初に登録した
instance1のNodeが表示されます! これで、一台のサーバーでNeo4jのインスタンスを複数起動する事が
できました。Dockerを使うと言うちょっとずるいやり方かもしれませんが、非常にお手軽です!

Neo4j_docker_06



おまけにこちらで紹介しているUnitテストも実行してみましたが、もちろんそれぞれの
インスタンスでさくっと動作しました!



・Neo4jの停止

docker stopを使用して停止します。まずdocker psでCONTAINER IDを調べます。



そして、docker stop で停止します。



これだけです。これもまたシンプルです。

今回の構成をとった場合、データが保存される場所とログが保存される場所も非常に明確に設定されますし
Dockerさえ理解していれば、Neo4jのあれこれも特にみる必要がありません。正直インスタンスを一つしか
立てない場合でも、Dockerを使った方が気楽だったりします。





さて、Neo4jで複数インスタンスを起動する事ができました。これで、複数のデータベースを持つ事が出来ないと言う
欠点を補う事ができ、目的別にインスタンスを立てたり停止したりする事も可能です。これで、さらに
使い易くなったのでは無いでしょうか。






今回の記事も早いPCで実験&メモを作った後にAthlon5350のマシンに移動してまとめ作業をしています。
別に省エネの為って訳ではないのですが、動作音が非常に静かなPCの為性能が足りている作業はこっちで
やりたくなると言うところです。
そろそろ3年間使っているこのPC。消費電力30W以内・MINI-ITX・DDR4 の条件を満たす環境が手に入れば
そろそろバージョンアップしたいのですが、意外とこの条件を満たす物が無いんですよね。。。










« Neo4jを.NET(C#)から操作する | トップページ | Ubuntu16.04Serverをインストールしたらやる事 »

データサイエンティスト・データ分析」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1680410/71975246

この記事へのトラックバック一覧です: Ubuntu16.04にDockerを利用してNeo4jをインストールする<一台のサーバで複数のインスタンスを起動する>:

« Neo4jを.NET(C#)から操作する | トップページ | Ubuntu16.04Serverをインストールしたらやる事 »