ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

MongoDBをインストールしてみよう

NoSQLデータベースMongoDB

  1. 名前の由来は"humongous"からだそう
  2. NoSQLデータベースとしてBSON(Binary JSON)形式で保存される
  3. レプリケーション:3台セットで1つや2つ壊れても修復出来る機能
  4. シェーディング:パフォマンスの向上、負荷の軽減、大きいデータ対応の分散処理
  5. ホットデータに特化
  6. 全体テーブルスキャンなどには不向き

最近のBaaSもいい、RDBMS等の全体システムとは別で軽いサービスの構築に向いているのが増えている気がする。
まあ、トレンドだろうな

インストール

OS毎にダウンロードと解凍でインストールは完了

$ curl http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.4.5.tgz | tar xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 96.8M  100 96.8M    0     0  9127k      0  0:00:10  0:00:10 --:--:-- 8267k
  1. ダウンロードページ:http://www.mongodb.org/downloads
  2. MongoDBマニュアル:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

起動

取り敢えず、dataとlogフォルダーを作成し、mongodを実行するだけ
bin/mongod --fork --dbpath ./data --logpath ./log/mongod.log --rest

$ bin/mongod --fork --dbpath ./data --logpath ./log/mongod.log --rest
about to fork child process, waiting until server is ready for connections.
forked process: 901
all output going to: /Users/haronoid/mongodb-osx-x86_64-2.4.5/./log/mongod.log
child process started successfully, parent exiting
  1. 起動ファイルはbin/mongod
  2. fork : プロセスをforkしてバックグラウンドで実行する
  3. dbpath : dbファイルのパスを指定
  4. logpath : logファイルを置くパスとファル名を指定
  5. rest : REST APIを有効化する

設定はファイルに指定も可能

$ mongod -f mysetting.conf

mongoDBはdefaultで27017ポートで起動するらしい
リモートやローカルでの接続は27017ポートへの接続で可能になる

停止

kill -2またはkill -15で簡単に停止が可能らしい(無理やりぽいけど)
他にuse admin; db.shutdownServer(); 命令でも可能

DBへのアクセス

bin/mongoで実行

 bin/mongo
MongoDB shell version: 2.4.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
Server has startup warnings: 
Sat Jul  6 21:11:33.680 [initandlisten] 
Sat Jul  6 21:11:33.680 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

何か警告が出た。
調べてみるとソフトリソース制限で最大ファイル数が256になっている模様

$ sudo launchctl limit
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        6291456        unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     266            532            
    maxfiles    256            unlimited
  1. 確かにmaxfilesが256になっている

OS Xは基本brew install mongodbでインストールするらしい、
そこには特にこの対応がない、linuxの場合は有ったけど
取り敢えず、保留にする。

Webでのアクセス

http://localhost:28017/で確認が可能