S-JIS[2012-09-29] 変更履歴

HttpFSインストール

HttpFSのインストール方法。


CDH3版のインストール

CentOSにHttpFSをインストールする方法。(CDH3が入っている前提)

HttpFSは基本的にHadoop2.0(旧Hadoop0.23)(CDH4)を対象としている。
CDH3にもバックポートされているが、現時点の最新版であるCDH3u5には含まれていない(yumでダウンロードできない)。 ソースからビルドする必要がある。

  1. GitHubからソースをクローンする。
    $ git clone git://github.com/cloudera/httpfs.git
    $ ls
    httpfs
  2. パッケージ(アーカイブファイル)を作成する。
    (README.txtには「mvn package -Pdist」を実行するよう書かれているのだが、テストが失敗するので(苦笑)、テストはスキップする)
    $ cd httpfs
    $ mvn package -Pdist -Dmaven.test.skip=true
    $ ls target/*.tar.gz
    target/hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT.tar.gz
  3. プロキシーにするサーバー上で、アーカイブを展開する
    (プロキシーにするサーバーにもHadoopがインストールされている必要がある。とりあえず今回はNameNodeにインストールした)
    そして、HttpFSを実行するユーザー(今回はユーザーを新たに用意するのが面倒なのでhdfsにする)が読み書きできるようにする。
    # cd /usr/lib
    # tar xf hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT.tar.gz
    # ls -d had*
    hadoop  hadoop-0.20  hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT
    # chown -R hdfs:hdfs hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT 
  4. プロキシーサーバー上のHadoopのコンフィグファイルにユーザー権限の設定をする。
    proxyuser.hdfs」 の「hdfs」は、HttpFSを起動するUNIXユーザー。今回はhdfsユーザーにしている。
    (アクセスを許可するホストやグループの設定は、今回はひとまず全部通すように「*」にしておく)
    $ vi /etc/hadoop/conf/core-site.xml
    	<property>
    		<name>hadoop.proxyuser.hdfs.hosts</name>
    		<value>*</value>
    	</property>
    	<property>
    		<name>hadoop.proxyuser.hdfs.groups</name>
    		<value>*</value>
    	</property>
  5. 設定ファイルを修正したら、Hadoopを再起動する。
    (今回はNameNodeのコンフィグファイルしか書き換えていないので、namenodeデーモンだけで大丈夫だった)
    # /etc/init.d/hadoop-0.20-namenode restart
  6. HttpFSのコンフィグファイルに、Hadoopのコンフィグファイル(ディレクトリー)の場所を指定する。
    (これを指定しないと、実際にアクセスされる場所がローカルファイルシステム(Hadoopのスタンドアローンモードと同様)になってしまう)
    $ vi /usr/lib/hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT/etc/hadoop/httpfs-site.xml
    	<property>
    		<name>httpfs.hadoop.config.dir</name>
    		<value>/etc/hadoop/conf</value>
    	</property>
  7. HttpFSを起動する。
    Tomcatが起動し、その上で動く)
    # su - hdfs
    $ cd /usr/lib/hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT
    $ sbin/httpfs.sh start
  8. ブラウザーでアクセスしてみる。
    http://プロキシーサーバー:14000
    ↓以下のようなメッセージが表示されればひとまず成功。
    HttpFs service, service base URL at /webhdfs/v1.

REST API


ポート番号

HttpFSにアクセスする為のポート番号は、デフォルトでは14000。[2012-10-02]

変えたい場合は、環境変数HTTPFS_HTTP_PORTで指定する。

/usr/lib/hadoop-hdfs-httpfs-0.20.2-cdh3u5-SNAPSHOT/etc/hadoop/httpfs-env.sh:

# The HTTP port used by HttpFS
#
export HTTPFS_HTTP_PORT=14000

HttpFSへ戻る / Hadoopへ戻る / 技術メモへ戻る
メールの送信先:ひしだま