[ubuntu server][11.10][MongoDb] install

serverにインスコ

$ sudo apt-get install mongodb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  binutils cpp-4.4 g++-4.4 gcc-4.4 gcc-4.4-base libboost-dev
  libboost-filesystem1.46.1 libboost-program-options1.46.1
  libboost-system1.46.1 libboost-thread1.46.1 libboost1.46-dev libc-dev-bin
  libc6-dev libgomp1 libmozjs185-1.0 libmpfr4 libnspr4 libpcrecpp0
  libstdc++6-4.4-dev linux-libc-dev manpages-dev mongodb-clients mongodb-dev
  mongodb-server
提案パッケージ:
  binutils-doc gcc-4.4-locales g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg
  gcc-4.4-multilib libmudflap0-4.4-dev libgcc1-dbg libgomp1-dbg
  libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7 libboost1.46-doc
  libboost-date-time1.46-dev libboost-filesystem1.46-dev
  libboost-graph1.46-dev libboost-iostreams1.46-dev libboost-math1.46-dev
  libboost-program-options1.46-dev libboost-python1.46-dev
  libboost-random1.46-dev libboost-regex1.46-dev
  libboost-serialization1.46-dev libboost-signals1.46-dev
  libboost-system1.46-dev libboost-test1.46-dev libboost-thread1.46-dev
  libboost-wave1.46-dev doxygen docbook-xml docbook-xsl default-jdk fop
  glibc-doc libstdc++6-4.4-doc
推奨パッケージ:
  gcc c-compiler
以下のパッケージが新たにインストールされます:
  binutils cpp-4.4 g++-4.4 gcc-4.4 gcc-4.4-base libboost-dev
  libboost-filesystem1.46.1 libboost-program-options1.46.1
  libboost-system1.46.1 libboost-thread1.46.1 libboost1.46-dev libc-dev-bin
  libc6-dev libgomp1 libmozjs185-1.0 libmpfr4 libnspr4 libpcrecpp0
  libstdc++6-4.4-dev linux-libc-dev manpages-dev mongodb mongodb-clients
  mongodb-dev mongodb-server
アップグレード: 0 個、新規インストール: 25 個、削除: 0 個、保留: 0 個。
49.8 MB のアーカイブを取得する必要があります。
この操作後に追加で 201 MB のディスク容量が消費されます。
続行しますか [Y/n]? y

ひととおり終わったあと

$ mongo
MongoDB shell version: 1.8.2
Sat Jan 14 09:10:55 *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
connecting to: test
> exit
bye

utf8サポなして・・・
公式のとおりにやれてか?

$ sudo apt-get remove mongodb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libboost-filesystem1.46.1 libmpfr4 g++-4.4 libboost-system1.46.1
  mongodb-clients gcc-4.4-base libgomp1 libboost-program-options1.46.1
  libmozjs185-1.0 gcc-4.4 libpcrecpp0 libboost1.46-dev libboost-thread1.46.1
  libnspr4 mongodb-server libc6-dev cpp-4.4 linux-libc-dev manpages-dev
  libboost-dev mongodb-dev libc-dev-bin libstdc++6-4.4-dev
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージは「削除」されます:
  mongodb
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 0 個。
この操作後に 53.2 kB のディスク容量が解放されます。
続行しますか [Y/n]? y
(データベースを読み込んでいます ... 現在 73596 個のファイルとディレクトリがインストールされています。)
mongodb を削除しています ...

http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.IOM0kbyXuC --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: 鍵7F0CEB10をhkpからサーバーkeyserver.ubuntu.comに要求
gpg: 鍵7F0CEB10: 公開鍵“Richard Kreuter <richard@10gen.com>”を読み込みました
gpg: 絶対的に信用する鍵が見つかりません
gpg: 処理数の合計: 1
gpg:               読込み: 1  (RSA: 1)

なんや不安なこと言われとるやん。

$ sudo apt-get update
$ sudo apt-get install mongodb-10gen
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ mongodb-10gen が見つかりません

なんじゃそりゃ

Pseudo-Distributed Operation

$ vi hadoop/conf/core-site.xml:
<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>

$ vi hadoop/conf/hdfs-site.xml:
<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

$ vi hadoop/conf/mapred-site.xml:
<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

sshの確認
パスフレーズなしでssh接続できるかどうかを確認

$ ssh localhost

If you cannot ssh to localhost without a passphrase, execute the following commands:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 

分散ファイルシステムをフォーマット

$ hadoop/bin/hadoop namenode -format

省略

11/11/10 23:25:50 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
11/11/10 23:25:50 INFO namenode.NameNode: SHUTDOWN_MSG: 

/tmpになんか吐いとるな。

Standalone Operation

http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html#Installing+Software
Standalone Operation

$ mkdir data/input
$ cp hadoop/conf/*.xml data/input/
$ hadoop/bin/hadoop jar hadoop/hadoop-*-examples.jar grep data/input data/output 'dfs[a-z.]+'
$ ls -l data/output
合計 4
-rwxrwxrwx 1 hadoop hadoop  0 2011-11-10 22:59 _SUCCESS
-rwxrwxrwx 1 hadoop hadoop 11 2011-11-10 22:59 part-r-00000
$ cat data/output/*
1	dfsadmin

で、これってどういう意味なん?

The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory. 

ってあるから、conf配下のファイルをinputにコピーして、それらを入力として正規表現grepして結果を出力するということですかね。
outputの中にファイルはなんでしょう・・・

hadoopインスコ

$ vi hadoop/conf/hadoop-env.sh
JAVA_HOME=/usr/lib/jvm/java-6-sun

$ hadoop/bin/hadoop
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
 or
  CLASSNAME            run the class named CLASSNAME

Most commands print help when invoked w/o parameters.

とりあえずコマンドが反応するようにはなった。

hadoopインスコ

http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html#Installing+Software
ssh, rsync がいるらしい。rsyncはすでに入れていた様子。なぜsshがいる?

$ sudo addgroup -gid 25000 hadoop
$ sudo adduser --uid 25000 --home /home/hadoop  --shell /bin/bash --system --group hadoop
$ sudo passwd hadoop
$ su hadoop
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist//hadoop/common/hadoop-0.21.0/hadoop-0.21.0.tar.gz
$ tar zxvf hadoop-0.21.0.tar.gz
$ ln -s hadoop-0.21.0 hadoop

事始めのさらに前

ubuntu server 準備。
過去にインスコしたインスタンス sshapachesvn、git ぐらいがはいった奴をコピーして新しいインスタンスとして使う。
ファイルにエクスポートして、インポートするときに別名で入れ込む。あとあといろいろインスタンス作るので。

で、hadoopいれようとおもったが、よく考えたらjavaが入っていないことにきづく。

http://d.hatena.ne.jp/seventhmay/20110601/1306905866

$ sudo apt-get install python-software-properties

http://hiroftp.blogspot.com/2011/05/ubuntu-1104sun-javajava.html

$ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'  
$ sudo apt-get update   
$ sudo apt-get install sun-java6-jdk