Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Hue is a browser-based desktop interface for interacting with Hadoop. It supports a file browser, job tracker interface, cluster health monitor, and more.

branch: master

Release notes for HUE 1.0.

latest commit 858b3014ca
bc Wong authored August 12, 2010
Octocat-spinner-32 apps HUE-151. Beeswax query wait doesn't refresh August 12, 2010
Octocat-spinner-32 desktop HUE-155. desktop.conf circular import i18n August 12, 2010
Octocat-spinner-32 dist HUE-59. i18n support in filebrowser July 29, 2010
Octocat-spinner-32 docs Release notes for HUE 1.0. August 13, 2010
Octocat-spinner-32 example-hadoop-confs HUE-15. Explicitly specifying default for jobtracker.thrift.address f… July 11, 2010
Octocat-spinner-32 ext HUE-146. dbug.* methods don't work with string formatting August 12, 2010
Octocat-spinner-32 tools HUE-54. beeswax can't handle unicode data August 10, 2010
Octocat-spinner-32 .gitattributes hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 .gitignore HUE-92. When saving a Beeswax query that is > 64 chars an error is pr… August 02, 2010
Octocat-spinner-32 .jslintrc hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 LAST_COMMIT hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 LICENSE.txt hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 Makefile HUE-125. `supervisor -d' creates world writable logs August 09, 2010
Octocat-spinner-32 Makefile.sdk HUE-22. Allow relcoation of a Hue installation July 13, 2010
Octocat-spinner-32 Makefile.tarball HUE-40. virtualenv_support missing setuptools for py2.6 July 19, 2010
Octocat-spinner-32 Makefile.vars HUE-10. Makefile.vars: DESKTOP_PLUGIN_DIR incorrect July 07, 2010
Octocat-spinner-32 Makefile.vars.priv hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 NOTICE.txt hue (formerly Cloudera Desktop) from internal commit 4694ac0 June 27, 2010
Octocat-spinner-32 README.rst HUE-152. Make the new lines viewable. August 12, 2010
Octocat-spinner-32 README.testing HUE-87. Incorporating review feedback, adding access to 'last access … August 02, 2010

Welcome to the repository for Hue


This is the development-oriented readme. If you want to write notes for end users, please put them in dist/README.

Hue is both a web UI for Hadoop and a framework to create interactive web applications. It features a FileBrowser for accessing HDFS, JobSub and JobBrowser applications for submitting and viewing MapReduce jobs, a Beeswax application for interacting with Hive. On top of that, the web frontend is mostly built from declarative widgets that require no JavaScript and are easy to learn.

File Layout

The "core" stuff is in desktop/core/, whereas installable apps live in apps/. Please place third-party dependencies in the app's ext-py/ directory.

The typical directory structure for inside an application includes:

for Python code
for configuration (.ini) files to be installed
for static HTML and js resources
for data to be put through a template engine
for helpful notes

The python code is structured simply as module/, where module may be "filebrowser" or "jobsub". Because it is unlikely that there are going to be huge conflicts, we're going without a deep nested hierarchy.

URL Layout

core/src/desktop/ contains the current layout for top-level URLs. For the URLs within your application, you should make your own which will be automatically rooted at /yourappname/ in the global namespace. See apps/hello/src/hello/ for an example.

Development Prerequisites

  1. On your host system, you need to have the python "virtualenv" package installed.

  2. Also, you'll need these library development packages installed on your system:

    • gcc
    • libmysqlclient-dev
    • libsqlite3-dev
    • libxml2-dev
    • libxslt-dev
    • python-dev
    • python-setuptools
    • gcc
    • libxml2-devel
    • libxslt-devel
    • mysql
    • mysql-devel
    • python-devel
    • python-setuptools
    • python-simplejson (for the crepo tool)
    • sqlite-devel
    MacOS (mac port):
    • liblxml
    • libxml2
    • libxslt
    • mysql5-devel
    • simplejson (easy_install)
    • sqlite3
  3. You need to have crepo installed, and preferably on your path. If it is not on your path, set the environment variable CREPO to point to from that distribution. You can clone crepo from somewhere else on your system.

Getting Started

To build and get the core server running:

$ export HADOOP_HOME=<path-to-hadoop-home>
$ git clone
$ cd hue
$ make apps
$ build/env/bin/hue runserver_plus

To start the helper daemons:

$ build/env/bin/hue beeswax_server
$ build/env/bin/hue jobsubd

Now Hue should be running on http://localhost:8000.

Setting up Hadoop

In order to start up a pseudodistributed cluster with the plugins enabled, run:

$ ./tools/scripts/ all

After doing so, running jps should show all the daemons running (NN, JT, TT, DN) and you should be able to see the web UI on http://localhost:50030/ and http://localhost:50070/.


1: What does "Exception: no app!" mean?

Your template has an error in it. Check for messages from the server that look like:

INFO:root:Processing exception: Unclosed tag 'if'. Looking for one of: else, endif
2: What do I do if I get "There was an error launching ..."?
Turn on debugging by issuing dbug.cookie() in a Firebug console.

Django Conventions

If you need to name your urls ( because there's ambiguity in the view, be sure to prefix the name with the application name. The url name namespace is global. So jobsub.list is fine, but list is not.

Hue is using Django 1.1, which supports the notion of URL namespaces: We have yet to move over our URLs to this construct. Brownie points for the developer who takes this on.

Using and Installing Thrift

Right now, we check in the generated thrift code. To generate the code, you'll need the thrift binary. Compile it like so:

$ git clone
$ cd thrift
$ ./
$ ./configure --with-py=no --with-java=no --with-perl=no --prefix=$HOME/pub

We exclude python, java, and perl because they don't like to install in prefix. If you look around at configure's --help, there are environment variables that determine where those runtime bindings are installed.

$ make && make install

When preparing .thrift files, you can use she-bangs to generate the python bindings like so:

#!/usr/bin/env thrift -r --gen py:new_style -o ../../../


This file is in reStructuredText. You may run rst2html README.rst > README.html to produce a HTML.

Something went wrong with that request. Please try again.