我是cassandra的新手,需要帮助在Unix机器上启动cassandra服务器。我有一个cassandra安装,并在执行./bin/cassandra -f时遇到以下错误 -
./ bin / cassandra:test:unknown operator>
另一个错误是在同一目录中执行cqlsh。
cqlsh:第21行的语法错误:`print'意想不到
我的环境中有jdk 1.8和python 2.4.4。我也尝试使用tcsh和bash。
请提供建议并欣赏解决方案。
答案 0 :(得分:1)
将TCSH更改为Bash并编辑cassandra脚本解决了它。
处理solaris的最佳参考 - https://blogs.oracle.com/partnertech/entry/how_to_build_and_run
答案 1 :(得分:0)
肯定有一些技巧让Cassandra在某些品牌的UNIX上运行。了解您正在尝试运行的Cassandra版本也很有帮助。
首先,你绝对应该从Bash运行它。
./bin/cassandra: test: unknown operator >
接下来,发生这种情况是因为conf/cassandra-env.sh
正在尝试检查您的Java版本。根据您拥有的Cassandra版本,它会尝试执行以下操作:
if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ]
在Linux上的Bash工作正常。但对于某些品牌的UNIX,运营商可能无法以相同的方式工作。老实说,只要你知道你的Java版本是好的,你就应该能够编辑conf/cassandra-env.sh
并注释掉那些支票。
cqlsh: syntax error at line 21: `print' unexpected
由于这一行而发生此错误:
python -c 'import sys; sys.exit(not (0x020700b0 < sys.hexversion < 0x03000000))' 2>/dev/null \
&& exec python "`python -c "import os;print(os.path.dirname(os.path.realpath('$0')))"`/cqlsh.py" "$@"
这可能是因为cqlsh包装器脚本无法在您的计算机上找到合适的Python版本。我不知道cqlsh能够使用Python 2.4,所以我尝试将其升级到2.7。
简而言之,如果你可以使用Linux来运行Cassandra,那么你将有更好的成功机会。即使你解决了这些错误,我的赌注是你会受到更多的打击,所以现在更换Linux可能会更容易。