Configuring Hue for an External Database
By default, Hue uses an embedded database, SQLite 3.6, but you can configure Hue to use any of the following external databases:
Using Hue with Oracle
To set up Hue to use an Oracle database:
Create a new user in Oracle and grant privileges to manage this database using the Oracle database admin utility:
# sqlplus sys/root as sysdba CREATE USER $HUEUSER IDENTIFIED BY $HUEPASSWORD default tablespace “USERS”temporary tablespace “TEMP”; GRANT CREATE TABLE, CREATE SEQUENCE, CREATE PROCEDURE, CREATE TRIGGER, CREATE SESSION, UNLIMITED TABLESPACE TO $HUEUSER;
Where $HUEUSER is the Hue user name and $HUEPASSWORD is the Hue user password.
Open the
/etc/hue/conf/hue.ini
file and edit the [[database]] section (modify for your Oracle setup).[[database]] engine=oracle host=$DATABASEIPADDRESSORHOSTNAME port=$PORT user=$HUEUSER password=$HUEPASSWORD name=$DBNAME
Install the Oracle instant clients and configure cx_Oracle.
Download and extract the instantclient-basic-linux and instantclient-sdk-linux Oracle clients from Oracle's download site.
Set your ORACLE_HOME environment variable to point to the newly downloaded client libraries.
Set your LD_LIBRARY_PATH environment variable to include ORACLE_HOME.
Create symbolic link for library expected by cx_Oracle:
ln -sf libclntsh.so.11.1 libclntsh.so
Install the cx_Oracle python module. Confirm that python-setuptools are present on Hue node, for example,
rpm -qa | grep python-setuptools
.If the python-setuptools are not present, install them, using the following command:
yum install python-setuptools
Install the cx_Oracle module:
/usr/lib/hue/build/env/bin/pip install cx_Oracle
Upgrade Django south:
/usr/lib/hue/build/env/bin/pip install south --upgrade
Synchronize Hue with the external database to create the schema and load the data:
/usr/lib/hue/build/env/bin/hue syncdb --noinput
/usr/lib/hue/build/env/bin/hue migrate
Populate /usr/lib64 with Oracle instant-client library files.
Copy the *.so.* files from oracle instantclient directory path to
/usr/lib64
.Start Hue.
/etc/init.d/hue start
Using Hue with MySQL
To set up Hue to use a MySQL database:
Create a new user in MySQL, and grant privileges to it to manage the database using the MySQL database admin utility:
# mysql -u root -p< CREATE USER $HUEUSER IDENTIFIED BY '$HUEPASSWORD'; GRANT ALL PRIVILEGES on *.* to ‘$HUEUSER’@’localhost’ WITH GRANT OPTION; GRANT ALL on $HUEUSER.* to ‘$HUEUSER’@’localhost’ IDENTIFIED BY $HUEPASSWORD; FLUSH PRIVILEGES;
where $HUEUSER is the Hue user name and $HUEPASSWORD is the Hue user password.
Create the MySQL database for Hue:
# mysql -u root -p
CREATE DATABASE $DBNAME;
Open the
/etc/hue/conf/hue.ini
file and edit the [[database]] section (modify for your MySQL setup).[[database]] engine=mysql host=$DATABASEIPADDRESSORHOSTNAME port=$PORT user=$HUEUSER password=$HUEPASSWORD name=$DBNAME
Synchronize Hue with the external database to create the schema and load the data.
/usr/lib/hue/build/env/bin/hue syncdb --noinput
Start Hue.
/etc/init.d/hue start
Using Hue with PostgreSQL
To set up Hue to use a PostgreSQL database:
Create a database in PostgreSQL using the PostgreSQL database admin utility.
sudo -u postgres psql
CREATE DATABASE $DBNAME;
Exit the database admin utility.
\q <enter>
Create the Hue user.
sudo -u postgres psql -d $DBNAME
CREATE USER $HUEUSER WITH PASSWORD '$HUEPASSWORD';
where $HUEUSER is the Hue user name and $HUEPASSWORD is the Hue user password.
Open the
/etc/hue/conf/hue.ini
file and edit the [[database]] section (modify for your PostgreSQL setup).[[database]] engine=postgresql_psycopg2 host=$DATABASEIPADDRESSORHOSTNAME port=$PORT user=$HUEUSER password=$HUEPASSWORD name=$DBNAME
Install the PostgreSQL database adapter for Python (psycopg2). For RHEL/CentOS/Oracle Linux:
yum install python-devel -y yum install postgresql-devel -y cd /usr/lib/hue source build/env/bin/activate pip install psycopg2
Synchronize Hue with the external database to create the schema and load the data:
/usr/lib/hue/build/env/bin/hue syncdb --noinput
Start Hue:
/etc/init.d/hue start