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…