TECHIES WORLD

For Techs.... Techniques.... Technologies....

BashLinuxPHP

How to connect to Cloudera Impala using PHP ODBC

This article explains the configurations required to connect to Cloudera Impala using PHP ODBC.

Step1: Login to the server as root via ssh.

Step2: load the Impala ODBC drivers from "https://www.cloudera.com/downloads/connectors/impala/odbc/2-6-10.html".

We can select the package according to the OS distribution of the server.

Step3: Install the downloaded package.

For RHEL/Centos Systems,

#rpm -ivh clouderaimpala_*.rpm

For Debian/Ubuntu Systems,

#dpkg -i clouderaimpala_*.deb

Step4: Install the unixODBC package.

For RHEL/Centos Systems,

#yum install unixODBC

For Debian/Ubuntu Systems,

#apt install unixodbc 

Step5: Open the impala-odbc configuration file.

#vi /opt/cloudera/impalaodbc/lib/64/cloudera.impalaodbc.ini

Step6: Comment out the following line.

ODBCInstLib=libiodbcinst.so

Step7: Add the following line and save the file.

ODBCInstLib=libodbcinst.so

Step8: Open the odbc configuration file.

#vi /opt/cloudera/impalaodbc/Setup/odbc.ini

Step9: Update the values of the following variables and save the file.

HOST=
PORT=
Database=

Step10: Install the php-odbc module.

For RHEL/Centos Systems,

#yum install php-odbc

For Debian/Ubuntu Systems,

#apt-get install php-odbc

Step11: Restart Apache service.

For RHEL/Centos Systems,

#systemctl restart httpd

For Debian/Ubuntu Systems,

#systemctl restart apache2

Step12: Save the following PHP code to a file and execute the same to verify the connection to impala.

<?php

putenv('ODBCSYSINI=/opt/cloudera/impalaodbc/Setup/');
putenv('ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini');
putenv('SIMBAINI=/opt/cloudera/impalaodbc/Setup/cloudera.odbc.ini');


function commands($query){
    $connection= odbc_connect("DSN=NAME;", '', '');
    $rs=odbc_exec($connection, $query);
    return $rs;
}

print_r(commands("SHOW DATABASES"));

?>

Where NAME need to be replaced with the DSN tag under which we have configured the impala host details in in "/opt/cloudera/impalaodbc/Setup/odbc.ini".

That's all…