Hue_HDFSをGUIで操作_その1

HadoopHDFS)は基本的にはCLIで操作するのですが、GUIツールもあります。
今回はGUIツール紹介です。

Hueとは

オープンソースHadoop GUIです。読み方は”ヒュー”
HDFS操作の他、HiveのQueryEditerやPigのEditerとしても動作します。
詳しくはこちらを参照してください。

インストール

事前にPrerequisitesを各種インスールしておきます。Getting Started参照
ではHueをインストールしていきます。

$ sudo yum install git
$ git clone https://github.com/cloudera/hue.git
    ※Getting Startedではhttpになっているのでハマりました。ちーん。   
$ cd hue/
$ make apps
    ※かなりの数をdownloadするので時間がかかる。ちーん。  

Hue起動

$ build/env/bin/hue runserver 0.0.0.0:8000

外部クライアントから接続するので0.0.0.0:8000を指定。

GUI接続

http://HueのIP:8000

f:id:kashigeru:20140319230527j:plain

ユーザー名はで任意でいいみたいです。
hadoopの実行ユーザー:hadoopでログインしてみます。

Quick Start WizardのCheckConfigurationが開きmisconfigがあるみたいなことが書いてる。

f:id:kashigeru:20140320221812j:plain

が、一旦無視してHDFS操作してみようw

さて右上のFileBrowserでHDFSが操作できるみたいなのでクリック

f:id:kashigeru:20140320222730j:plain

えwエラー!!
Cannot access: /. Note: You are a Hue admin but not a HDFS superuser (which is "hdfs").
[Errno 2] File / not found

やっぱりQuick Start Wizardに戻ってCheckConfigurationを確認します。

トラッシュ

Configuration filesは/home/hadoop/hue/desktop/confだから設定を直してHueを再起動しろと。

では最初のエラー
hadoop.hdfs_clusters.default.webhdfs_url
”Current value: http://localhost:50070/webhdfs/v1 Failed to access filesystem root ”

WebHDFSにアクセスできないのか、なるほどHueはRestAPI経由でHDFSを操作するわけですな。
ファイルを修正します。

vim /home/hadoop/hue/desktop/conf/pseudo-distributed.ini
      # Use WebHdfs/HttpFs as the communication mechanism.
      # Domain should be the NameNode or HttpFs host.
      # Default port is 14000 for HttpFs.
      ## webhdfs_url=http://localhost:50070/webhdfs/v1 ←コメントアウトになってる  
   webhdfs_url=http://xx.xx.xx.xx.:50070/webhdfs/v1 ←外部クライアントからつなぐので自身のIPを設定

Hueを再起動します。
再度アクセス。うーん、エラー!!
ちなみにhttp://xx.xx.xx.xx:50070/webhdfs/v1にアクセスしてみたら。

f:id:kashigeru:20140320225249j:plain

WebHDFSが動いてないのかな。
そもそもWebhdfsの設定入れてないしなw

一旦Hadoop落とします。

$ stop-all.sh
stopping jobtracker
localhost: stopping tasktracker
stopping namenode
localhost: stopping datanode
localhost: stopping secondarynamenode

WebHDFSの設定

$ vim /usr/local/hadoop-1.2.1/conf/hdfs-site.xml
 下記を追記
  <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
  </property>

hadoop起動

$ start-all.sh
starting namenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-namenode-localhost.localdomain.out
localhost: starting datanode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-datanode-localhost.localdomain.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-secondarynamenode-localhost.localdomain.out
starting jobtracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-jobtracker-localhost.localdomain.out
localhost: starting tasktracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-tasktracker-localhost.localdomain.out
$ jps
18982 DataNode
19118 SecondaryNameNode
18868 NameNode
19211 JobTracker
19431 Jps
19327 TaskTracker

では、Hueを起動して確認してみます。
うーん、CheckConfigurationのエラー内容はかわらず。
右上のFileBrowserをクリックするとDjangoのエラーページが。前進したのかなこれは。

f:id:kashigeru:20140320231921j:plain

エラー内容
WebHdfsException at /filebrowser/
SecurityException: Failed to obtain user group information: org.apache.hadoop.security.authorize.AuthorizationException: User: hue is not allowed to impersonate hadoop (error 401)

どうも設定が足りてないみたいです。core-site.htmlにも設定が必要らしい。

vim /usr/local/hadoop-1.2.1/conf/core-site.xml
下記を追記
<property>
      <name>hadoop.proxyuser.hue.hosts</name>
          <value>*</value>
  </property>
  <property>
      <name>hadoop.proxyuser.hue.groups</name>
          <value>*</value>
</property>

再度アクセスしてみます。
キタ━━━d(゚∀゚)b━━━!!

f:id:kashigeru:20140320234656j:plain

前回のエントリHDFSにコピーしたsudati.txtも確認できる。

まとめ

結局Quick Start Wizardのhadoop.hdfs_clusters.default.webhdfs_urlのエラーはまだ出てます。
FileBrowserでエラーが出てたのはWebHDFSが有効になってなかったということですね。
GUIでの操作は次回に。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)

Hadoopオペレーション ―システム運用管理ガイド

Hadoopオペレーション ―システム運用管理ガイド

Hadoop Hacks ―プロフェッショナルが使う実践テクニック

Hadoop Hacks ―プロフェッショナルが使う実践テクニック