Datastax Cassandra不需要root用户权限

6

我正在尝试在Redhat Linux上安装并运行Datastax Cassandra社区版,但我没有root权限。我将tar文件提取到我的主目录中,但是我无法执行./cassandra

我在一台HPC集群上进行此操作,并想在我的主目录中安装Cassandra,并将数据保存在我们提供的临时空间中(主目录没有足够的空间来容纳整个数据)

如果有任何帮助,我将不胜感激!谢谢!


1
为什么您不能执行Cassandra?您收到了什么错误消息?完全可以将Cassandra作为非root用户运行。 - Raedwald
1
从您的Cassandra的bin目录中,您能否运行并发布以下命令的输出:ls -al cassandra - Aaron
4个回答

10

DataStax社区版安装文档中得知,唯一需要执行的其他步骤是创建数据和日志目录:

$ sudo mkdir /var/lib/cassandra
$ sudo mkdir /var/log/cassandra
$ sudo chown -R  $USER: $GROUP /var/lib/cassandra
$ sudo chown -R  $USER: $GROUP /var/log/cassandra

如果您使用的是不同的位置,那没关系。只需确保创建目录并分配所有者(如上所述),并在(data_file_directories、commitlog_directories、saved_caches_directory)和log4j-server.properties中设置适当的值。

更详细的结果日志将确认这是否是问题的原因。


1

是的,您可以在没有root或sudo权限的情况下运行Cassandra。将Cassandra tar文件解压缩到您的本地用户目录中,将cassandra.yaml配置为单节点。然后您可以从bin目录中以前台或后台方式运行Cassandra,并使用cql shell登录。

bin/cassandra -f OR bin/cassandra AND cqlsh


1

这是针对Cassandra 2.1x版本的。 你可以在没有root或sudo权限的情况下运行Cassandra,除了解压tar文件外,你还需要修改conf/logback.xml以将日志重定向到你的主目录或其他你可以写入的地方。

    <file>/home/xxxx/system.log</file>
     <fileNamePattern>/home/xxxx/system.log.%i.zip</fileNamePattern>

唯一的小问题是不以根用户身份运行-ULIMIT -l(RLIMIT上锁定的最大内存)将需要增加,而我无法使用我的帐户增加它。但这并不会阻止其运行。


0
在我看来,几乎所有用Java编写的Apache项目都不需要root权限。Cassandra也有同样的特点。
首先,从http://cassandra.apache.org/download/下载apache-cassandra-bin.tar.gz。记住不要使用.deb或.rpm或其他格式。
其次,运行tar -xzf cassandra-bin.tar.gz将其解压到任何文件夹中,假设该文件夹是$cassandra_home
第三步,只需进入$cassandra_home/bin,运行./cassandra,完成!数据存储在$cassandra_home/data中,日志存储在$cassandra_home/logs中。
如果您想设置数据和日志的位置:
首先,进入$cassandra_home/conf,修改cassandra.yaml文件。 将这些目录设置为您具有读写访问权限的文件夹:
  • data_file_directories:
  • commitlog_directory:
  • cdc_raw_directory:
  • hints_directory:
  • saved_caches_directory:

(不同版本Cassandra可能具有不同的参数。您可以在yaml文件中搜索director。)

其次,如果您想启用日志记录,请修改日志文件位置,修改 $cassandra_home / conf / logback.xml (或log4j或其他),并将日志文件夹设置为另一个位置。

尽情享受吧!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接