Quantcast
Channel: Hue, the self service open source Analytics Workbench for browsing, querying and visualizing data interactively
Viewing all articles
Browse latest Browse all 171

How to run Hue with the Apache Server

$
0
0

Hue ships out of the box with the HTTP server CherryPy, but some users have expressed interest having Apache HTTP 2 serve Hue with mod_wsgi. Their motivation is that they are more familiar with Apache or have already several Apache instances deployed.

It turns out it’s pretty simple to do. It only requires a small script, a Hue configuration option, and a configuration block inside Apache. This post describes how to have Apache serve the static content and run the Python code of Hue.

 

This script (which was just added in desktop/core/desktop/wsgi.py) enables any Web server that speaks WSGI to launch Hue and route requests to it:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "desktop.settings")

# This application object is used by the development server
# as well as any WSGI server configured to use this file.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

The next step disables booting Hue from the runcpserver command. In Cloudera Manager, go to Hue > Configuration > Service-Wide > Advanced, and add the following to the hue safety valve:

Untitled

If you are running Hue outside of Cloudera Manager, modify desktop/conf/hue.ini with:

[desktop]
  ...
  enable_server=no

The final step is to configure Apache to launch Hue by adding the following to the apache.conf:

WSGIScriptAlias / $HUE_PATH/desktop/core/src/desktop/wsgi.py
WSGIPythonPath $HUE_PATH/desktop/core/src/desktop:$HUE_PATH/build/env/lib/python2.7/site-packages
WSGIDaemonProcess $HOSTNAME home=$HUE_PATH python-path=$HUE_PATH/desktop/core/src/desktop:$HUE_PATH/build/env/lib/python2.7/site-packages threads=30
WSGIProcessGroup $HOSTNAME

<Directory $HUE_PATH/desktop/core/src/desktop>
<Files wsgi.py>
Order Deny,Allow

# If apache 2.4
Require all granted

# otherwise
#Allow from all
</Files>
</Directory>

Where $HOSTNAME should be the hostname of the machine running Hue, and $HUE_PATH is where Hue is installed. If you’re using Cloudera Manager, by default it should be either /usr/lib/hue for a package install, or /opt/cloudera/parcels/CDH/lib/hue for a parcel install.

Untitled2

 

Have any questions? Feel free to contact us on hue-user or @gethue!


Viewing all articles
Browse latest Browse all 171

Trending Articles