forked from kryton/hue
-
Notifications
You must be signed in to change notification settings - Fork 0
Hue is a Web application for interacting with Apache Hadoop. It supports a file and job browser, Hive, Pig, Impala, Spark, Oozie, HBase, Solr, Sqoop2, ZooKeeper and more.
License
dchenbecker/hue
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Welcome to the repository for Hue. ********************************************************************* This is the development-oriented readme. If you want to write notes for end users, put them in dist/README! ********************************************************************* 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 a component includes: src/, for Python code static/, for static HTML and js resources templates/, for data to be put through a template engine docs/, for helpful notes The python code is structured simply: module/package.py 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/urls.py contains the current layout for top-level URLs. For the URLs within your application, you should make your own urls.py which will be automatically rooted at /yourappname/ in the global namespace. See apps/hello/src/hello/urls.py for an example. Development Prerequisites =========================== 1) On your host system, you need to have the python "virtualenv" package installed. 2) Also, you'll need some library development packages installed on your system: Debian: gcc libldap2-dev libmysqlclient-dev libsasl2-dev libsqlite3-dev libssl-dev libxml2-dev libxslt-dev python-dev python-setuptools CentOS: cyrus-sasl-devel gcc libxml2-devel libxslt-devel mysql mysql-devel openldap-devel openssl python-devel python-setuptools sqlite-devel python-simplejson (for the crepo tool) 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 crepo.py from that distribution. You can clone crepo from git://github.com/cloudera/crepo.git somewhere else on your system. Getting Started =============== 1) git clone http://github.com/cloudera/hue.git ; cd hue [ you've assumedly already done this, since you're reading this file! ] 2) make apps 3) Start the server build/env/bin/desktop runserver_plus Setting up Hadoop ===================== In order to start up a pseudodistributed cluster with the plugins enabled, run ./tools/scripts/configure-hadoop.sh 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/ FAQ === Q: What does "Exception: no app!" mean? A: 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 Q. What do I do if I get "There was an error launching ..."? A. Turn on debugging by issuing "dbug.cookie()" in a Firebug console. Django Conventions ================== If you need to name your urls (http://docs.djangoproject.com/en/dev/topics/http/urls/#naming-url-patterns) 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. We recently moved to Django 1.1, which supports the notion of URL namespaces: http://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces We have yet to move over our URLs to this construct. Brownie points for the developer who takes this on. (TODO) Using and Installing Thrift =========================== Thrift's runtime libraries are checked into thirdparty/, as appropriate. Right now, we check in the generated code. To generate the code, you'll need the thrift binary. We keep a private copy of the Thrift tree, because Thrift tends to be mired in a version-less morass. Compile it like so: 1) git clone http://github.com/dreiss/thrift.git 2) cd thrift 4) ./bootstrap.sh 5) ./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. 6) 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 ../../../
About
Hue is a Web application for interacting with Apache Hadoop. It supports a file and job browser, Hive, Pig, Impala, Spark, Oozie, HBase, Solr, Sqoop2, ZooKeeper and more.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 60.5%
- C 25.0%
- Java 7.7%
- JavaScript 3.1%
- CSS 1.4%
- XSLT 0.6%
- Other 1.7%