MAC上的cassandra.yaml位置在哪里?

时间:2019-04-21 17:36:18

标签: database cassandra insert

我正在docker环境下工作,并执行了docker exec -it mycassandra cqlsh。然后,我正在插入数据,并且发生以下错误:

WriteTimeout - Error from server: code=1100

通过this,它告诉我我需要找出cassandra.yaml文档并修改写入时间,但是我无法在MAC上找到它。

您能告诉我如何找到它以及如何修改文档吗? 谢谢。

4 个答案:

答案 0 :(得分:1)

对于以brew install cassandra身份安装的用户,yaml文件将位于usr/local/etc/cassandra

答案 1 :(得分:0)

从提供的示例来看,数据库似乎是在容器内部执行的。因此,您要查找的cassandra.yaml将在容器启动时根据您提供的配置即时创建。

我们已使用Kubernetes设置了Cassandra容器,并根据发现的here的说明在docker中执行它们,并能够在statefulset的配置中修改cassandra.yaml文件的设置,从而更新env中的变量以了解容器的规格。

例如,要修改种子列表,集群名称和名为c-test-qa的C *集群的机架:

apiVersion: apps/v1
kind: StatefulSet
...
spec:
  serviceName: c-test-qa
  replicas: 1
  selector:
    matchLabels:
      app: c-test-qa
  template:
    metadata:
      labels:
        app: c-test-qa
    spec:
      containers:
        - name: c-test-qa
          image: cassandra:3.11
          imagePullPolicy: IfNotPresent
...
          env:
            - name: CASSANDRA_SEEDS
              value: c-test-qa-0.c-test-qa.qa.svc.cluster.local
            - name: CASSANDRA_CLUSTER_NAME
              value: "testqa"
            - name: CASSANDRA_RACK
              value: "DC1"
            - name: CASSANDRA_RACK
              value: "CustomRack1"
...

答案 2 :(得分:0)

如果您正在运行官方的cassandra映像,则可以在容器中的cassandra.yaml上找到/etc/cassandra/cassandra.yaml。如果要创建自定义cassandra.yaml文件,则可以尝试将其覆盖在Dockerfiledocker-compose.yml文件中。例如,在我的docker-compose.yml文件中,我有类似的内容:

services:
  cassandra:
    image: cassandra:3.11.4
    volumes:
    - ./cassandra.yaml:/etc/cassandra/cassandra.yaml

这会导致容器中的cassandra.yaml文件被我的本地cassandra.yaml覆盖。

我希望这会有所帮助。

答案 3 :(得分:0)

在MacOS上:

可以在以下任一位置找到

  1. Cassandra软件包安装:/etc/cassandra

  2. Cassandra tarball安装:install_location/conf

  3. DataStax Enterprise软件包安装:/etc/dse/cassandra

  4. DataStax Enterprise tarball安装:install_location/resources/cassandra/conf