#blog2navi() Cloudera-ImpaladにODBCで接続する-ubuntu †概要 †ネット上に、ODBCからImpalaに接続する場合まともな資料が無いので、自分が、ODBC接続した際に、試した方法を書いて見る。 ネット上にまともな資料は無く、唯一、clouderaの資料があるだけだ。 clouderaの資料はこちらからダウンロードする のInstalling and Using Cloudera Impala のConfiguring Impala to Work with ODBCの項目を参考にすること。 使用OSは、ubuntu-server 12.04 32bit 事前準備 †hadoop-imapladの準備 †Clouderaの提供しているVMをおとしてくる。 こちら からVMwareを落としてくる。この環境につなぐことを想定。接続元は32bitなので。 落としたVMを普通に起動すれば、Impalaを含むすべてのシステムがたちあがる。 SELinuxが有効になっている場合には、それを切って置く。
Ubuntuの準備 †
ODBC Driverの準備 †ODBCドライバーを準備する。 https://ccp.cloudera.com/display/SUPPORT/Downloads のページから、Cloudera Connector for MicroStrategyを利用する。 落とした後、 tar -zxf ClouderaHiveODBC-v1.20.tar.gz -C /usr として、/usr/lib以下にodbc のライブラリを置く。 実際に、依存ライブラリを入れる。 †$cd /usr/lib $ldd libhiveodbc.so.1 をして、libhiveodbc.so.1に足りないライブラリが無いか探す。ubuntu32bitの場合は、libssl.so.6が無いと言われる。その場合は、opensslを入れて、 libssl.so.6 -> /lib/i386-linux-gnu/libssl.so.1.0.0 この様な感じで、シンボリックリンクを貼る。 odbc.ini,odbcinst.iniの準備 †接続もとの/etc/以下に、odbc.ini,odbcinst.iniを準備する。 私の環境のodbc.iniは以下の通り。
shibacow@ubuntu:/usr/lib$ odbcinst -q -s [IMPALA-SERVER] shibacow@ubuntu:/usr/lib$ odbcinst -q -d [ODBC Drivers] [Hive Driver] となることを確認しよう。 接続プログラムの準備 †odbc.iniとodbcinst.iniの準備が済んだので、そのodbc.iniとodbcinst.iniを最初に見るように設定しよう。 /.bashrcに export ODBCINI=/etc/odbc.ini export ODBCSYSINI=/etc を追加して、source ~/.bashrcをする。 phpとpythonの準備 †sudo aptitude install python-pyodbc sudo aptitude install php php-odbc php-cli をインストール。 確認のプログラム †php版の確認プログラムは https://gist.github.com/shibacow/5517129 python版の確認プログラムはこちら https://gist.github.com/shibacow/5517142 になる。 デバックの強い味方 †
はまりどころ。 †TSSocketがlocalhostの10000portに接続しようとする。 †次のエラー Thrift: Sat May 4 20:19:31 2013 TSocket::open() connect() <Host: localhost Port: 10000>Connection refused DBOpenConnection: connect() failed: Connection refused Traceback (most recent call last): File "./python_impala.py", line 13, in <module> if __name__=='__main__':main() File "./python_impala.py", line 5, in main con=pyodbc.connect('DSN=IMPALA-SERVER;UID=;PWD=;Database=Default;') pyodbc.Error: ('08S01', '[08S01] [unixODBC][SQLite]Communication link failure (- 1) (SQLDriverConnectW)')
Default TExceptionエラー †
Category: [UNIX,Hadoop,Impala] - 19:20:51
&blog2trackback();
#blog2navi() |