CentOS 6 で CDH5 を使ってみる

Hadoop と HBase をそれぞれインストールし、動かしてみたが、
良くわからないエラーが出るため、CDH5 でインストールしてみる。
エラー原因は、恐らく Hadoop と HBase のバージョンが合っていないため・・・だと思っている

ntpd, java(SE), maven はインストール済みとする
#OS設定
###ファイルディスクリプタ数
HBase が 1 プロセスから大量にファイル・ソケットをオープンするため、
ファイルディスクリプタ数を上げておく
/etc/security/limits.conf に追加
```vim
 root soft nofile 65536
 root hard nofile 65536
 * soft nofile 65536
 * hard nofile 65536
```
###カーネル設定
HBase が使用するメモリをディスクに追い出されにくくする
/etc/sysctl.conf に追加
```vim
kernel.panic_on_oops = 1
kernel.panic = 1
vm.swappiness = 0
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
```
※[参考](http://research.preferred.jp/2011/05/setup_hbase/)にさせて頂きました(ありがとうございます)

###hosts 設定
ホスト名を example.com とする
/etc/hosts に追加
```vim
[IP]  example example.com localdomain
```

#CDH5 のリポジトリ設定
```shell-session
 # wget -P /usr/local/src/ http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm
 # rpm -ivh /usr/local/src/cloudera-cdh-5-0.x86_64.rpm
 # rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
```
#Hadoop 設定
###yum でインストール
```shell-session
 # yum install hadoop-conf-pseudo
```
###hdfs 初期化
```shell-session
 # sudo -u hdfs hdfs namenode -format
```
###hadoop 起動
```shell-session
 # /etc/init.d/hadoop-hdfs-namenode start
 # /etc/init.d/hadoop-hdfs-datanode start
 # /etc/init.d/hadoop-yarn-resourcemanager start
 # /etc/init.d/hadoop-yarn-nodemanager start
 # /etc/init.d/hadoop-mapreduce-historyserver start
```
ブラウザで確認(今回は 1台構成なので、IP は全て同じ)
http://[Namenode_IP]:50070 <- HDFS
http://[ResourceManager_IP]:8088 <- ResourceManager
http://[NodeManager_IP]:8042 <- NodeManager

サンプルを動かしてみる
```shell-session
 # sudo -u hdfs hadoop fs -mkdir -p /user/hdfs
 # sudo -u hdfs hadoop fs -chown hdfs /user/hdfs
 # sudo -u hdfs hadoop fs -put /usr/share/dict/words words
 # sudo -u hdfs hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount words output
```

動いているか確認
```shell-session
 # sudo -u hdfs hadoop fs -cat /user/hdfs/output/part-r-00000
```

こんなのが表示されれば、オッケー
```text
・
・
・
zymurgy 1
zythem  1
zythum  1
zyzzyva 1
zyzzyvas        1
```

#HBase 設定
###yum でインストール
```shell-session
 # yum -y install hbase hbase-{doc,master,regionserver,thrift} zookeeper-server
```
###HBase 起動
HDFS に HBase 用のディレクトリ作成
```shell-session
 # sudo -u hdfs hadoop fs -mkdir /hbase
 # sudo -u hdfs hadoop fs -chown hbase /hbase
```

HBase の保存先を設定
/etc/hbase/conf/hbase-site.xml に記述
```xml
<?xml version="1.0"?>                                                                                                                                                                                                                        
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration>                                                                                                                                                                                                                              
    <property>                                                                                                                                                                                                                               
        <name>hbase.cluster.distributed</name>                                                                                                                                                                                               
        <value>true</value>                                                                                                                                                                                                                  
    </property>                                                                                                                                                                                                                              
    <property>                                                                                                                                                                                                                               
        <name>hbase.rootdir</name>                                                                                                                                                                                                           
        <value>hdfs://127.0.0.1:8020/hbase</value>                                                                                                                                                                                           
    </property>                                                                                                                                                                                                                              
</configuration>
```

zookeeper-server を初期化
```shell-session
 # /etc/init.d/zookeeper-server init
```

次に、zookeeper-server, hbase-master, hbase-regionserver の順に起動
```shell-session
 # /etc/init.d/zookeeper-server start
 # /etc/init.d/hbase-master start
 # /etc/init.d/hbase-regionserver
```

hbase のテスト
```shell-session
 # hbase shell
```

ステータスを確認し、テーブル作成
```hbase
 hbase(main):001:0> status
 1 servers, 0 dead, 3.0000 average load
 hbase(main):002:0> create "tbl1", "test1"
 0 row(s) in 1.5590 seconds
 => Hbase::Table - tbl1
 hbase(main):003:0> exit
```

動いた！
とりあえず、Hadoop, HBase のインストールまで完了
細かい設定とか調べないとなー