如何在cassandra.yaml上使用系统环境变量

时间:2014-10-25 21:31:28

标签: ubuntu cassandra environment-variables yaml

我使用Cassandra相当新,我遇到了以下问题:

在cassandra.yaml文件中,有data_file_directories,commitlog_directory和saved_caches_directory参数。我想在其上使用我的$ HOME环境变量,因此我的项目将不依赖于此。

有人对如何做到这一点有任何建议吗?

我正在使用ubuntu,仅供参考。

1 个答案:

答案 0 :(得分:0)

Java正在读取配置文件,而不是shell。传递非多平台环境变量很棘手,因此使用完整路径。

我不清楚“所以我的项目不会依赖于此”实际上指的是 - 同一台机器上的多个Cassandra实例?请参阅CCM:https://github.com/pcmanus/ccm

既然你提到你正在使用Ubuntu,我认为你安装了deb包。 deb包被设置为由'cassandra'用户运行,其中/ var / lib / cassandra和/ var / log / cassandra作为默认数据和日志位置,由正确的用户拥有。通过deb软件包进行的这种“系统”安装最好按原样使用,坚持完整路径。您当然可以在配置文件上使用类似sed的内容来更改所需内容,使用shell中的$ HOME设置所需的完整路径,但是您还需要在init脚本中更改用户,并找出你在路上发现的其他错误。

你能做的最简单的事情是什么?在$ HOME中通过tarball运行Cassandra 2.1。版本2.1已更新为默认为将数据和日志写入$ CASSANDRA_HOME(提取的tarball目录),而不是/ var / {lib,log} / cassandra。

  • http://cassandra.apache.org/download/下载apache-cassandra-2.1。* - bin.tar.gz(当前版本)
  • tar xzf apache-cassandra-2.1.*-bin.tar.gz
  • cd apache-cassandra-2.1.*/
  • ./bin/cassandra
  • 使用您的数据库执行您需要的工作
  • pkill -f CassandraDaemon停止Cassandra