WebHDFSのインストール・設定について。
|
WebHDFSは、Hadoop1.0.0(CDH3u5)以降であれば一緒に入っているので、個別のインストールは不要。
ただしデフォルトでは無効になっているので、有効にしてやる必要がある。
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
この設定は、Hadoopクラスターの全ノードに対して行う。
Hadoopクラスター稼働中に設定を変更した場合は、namenodeデーモン及び全データノードのdatanodeデーモンを再起動する必要がある。
※CDH3の場合 # /etc/init.d/hadoop-0.20-namenode restart # /etc/init.d/hadoop-0.20-datanode restart
REST APIで接続する先はNameNode、ポート番号はHDFSのポート(CDH3のデフォルトでは50070)になる。
Amazon Elastic MapReduce(EMR)でも、Hadoopのバージョンを1.0.3にすればWebHDFSを使うことが出来る。
elastic-mapreduce --create --alive \ --name hishidama-emr-webhdfs \ --hadoop-version 1.0.3 \ --ami-version latest \ --enable-debugging \ --master-instance-type m1.small \ --slave-instance-type m1.small \ --num-instances 4 \ --bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop --args "-s,dfs.webhdfs.enabled=true"
REST APIで接続する先はNameNode、ポート番号は9101になる。
(なお、EMRの場合はREST APIのURIで「user.name
」を指定しなくても大丈夫なようだ)
EMRのHadoopクラスター外部からアクセスしたい場合は、セキュリティーグループの設定でポートを開けておく(接続可能にする)必要がある。
セキュリティーグループ | TCPポート (inbound) |
備考 |
---|---|---|
ElasticMapReduce-master | 9101 | |
ElasticMapReduce-slave | 9102 | 実際のデータ転送はデータノードに対して直接行う為。 |