这几天搞cassandra 0.8.4,本来刚用了一个月,谁知道,现在这东东到了0.8.6。感觉发展挺快的。我这里说一下我在弄CQL的过程遇到的一个问题,及解决过程。希望对你有帮助。
我准备玩玩cqlsh .觉得这是熟悉CQL的快捷、有效,对以后的生产过程也会要帮助,主要是监控,排查问题方面。对开发也是有指导的吧。
于是乎我安装了cql-1.0.3.tar.gz
然后执行 cqlsh 127.0.0.1 9160
就报
Traceback (most recent call last):
File "/usr/local/bin/cqlsh", line 33, in <module>
import cql
File "/usr/local/lib/python2.7/site-packages/cql/__init__.py", line 22, in <module>
import connection
File "/usr/local/lib/python2.7/site-packages/cql/connection.py", line 18, in <module>
from cursor import Cursor
File "/usr/local/lib/python2.7/site-packages/cql/cursor.py", line 24, in <module>
from cql.cassandra.ttypes import (
File "/usr/local/lib/python2.7/site-packages/cql/cassandra/ttypes.py", line 7, in <module>
from thrift.Thrift import *
ImportError: No module named thrift.Thrift
相当杯具吧。
嗯,看了是CQL必须佩带Thrift
又下了 个thrift-0.7.0.tar.gz安装了。
发现问题依旧。
然后,python回车
>>>import sys
>>>>sys.path
['', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']
但是我安装thrift-0.7.0.tar.gz的包在/usr/lib/python2.7/site-packages/
显而易见,不在sys.path中。
>>> sys.path.append('/usr/lib/python2.7/site-packages/')
>>> sys.path
['', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/']
这样就可以发现已经包了。
>>> from thrift.Thrift import *之后不报错,说明已经找到这个thrift了。
export PYTHONPATH=/usr/lib/python2.7/site-packages
#cqlsh 127.0.0.1 9160就出现了。
cqlsh>
是吧。这样就可以了。
很多同学会在安装thrift之后,然后发现不能cqlsh 希望这对你有点帮助。。。。嘎嘎!