Cassandraインストール後にOpsCenter入れたらcqlshが動かなくなった件の対応

2014-03-10
 

Cassandra管理用WebアプリケーションのOpsCenter・・・!

OpsCenter_dashboard

便利そうだったのでCassandraと同じサーバにインストールしてみたのですが、OpsCenterの「Data Explorer」ビューにエラーが表示されてしまいました(´・_・`)

OpsCenter_error

Note: The Data Explorer feature in Ops Center is in the process of being deprecated in favor of DataStax DevCenter, a visual CQL tool. You can find more information about DevCenter and a link to download at http://www.datastax.com/download/clientdrivers

とりあえず、接続確認します。
Cassandra&OpsCenterをインストールしたサーバ上でコマンドラインからcqlshを実行してみました。
すると下記のようなエラーがでます。

% cqlsh
Traceback (most recent call last):
   File "bin/cqlsh", line 115, in <module>
     from cqlshlib import cqlhandling, cql3handling, pylexotron
ImportError: No module named cqlshlib

Cassandra2.0.xをインストールした時にはPythonのバージョンが2.6だったため、
必要なモジュール類がpython2.6用のディレクトリに配置されていたのですが、
OpsCenterのインストール時にpythonのバージョンが2.7にあがり、2.6用のcqlshlibが読みなくなったのが原因のようです。

なので、python2.7用のcqlshを新たにインストールしてあげれば良さそうです。

1. 必須ライブラリのインストール

まずは、pythonのヘッダファイルやlibevなどを必要なライブラリをインストールします。

% yum install libev libev-devel python-devel

2. setuptoolsとpipのインストール

setuptoolsとpipについてはこちらのサイトを参考にさせて頂きました。

2-1. setuptools

setuptoolsはPyPI にインストール方法が載っていました。

% wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python

これだけです。

easy_installが使えるようになります。

% easy_install --help

2-2. pip

setuptoolsがあればpipのインストールもかんたんです。

% easy_install pip
:

# インストール済みのモジュール一覧を表示します
% pip freeze
iniparse==0.4
pyOpenSSL==0.12
pycurl==7.19.0
pygpgme==0.1
urlgrabber==3.9.1
wsgiref==0.1.2
yum-metadata-parser==1.1.4

pip freezeでインストール済みモジュールの確認を行うと、やはりcqlshがインストールされていません。

3. cqlshの再インストール

% pip install cqlsh

cqlshを実行するとCassandraに接続できます(*゚▽゚ノノ゙☆パチパチ

% cqlsh localhost
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.5 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>