我正在docker环境下工作,并执行了docker exec -it mycassandra cqlsh
。然后,我正在插入数据,并且发生以下错误:
WriteTimeout - Error from server: code=1100
通过this,它告诉我我需要找出cassandra.yaml
文档并修改写入时间,但是我无法在MAC上找到它。
您能告诉我如何找到它以及如何修改文档吗? 谢谢。
答案 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
文件,则可以尝试将其覆盖在Dockerfile
或docker-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上:
可以在以下任一位置找到
: Cassandra软件包安装:/etc/cassandra
Cassandra tarball安装:install_location/conf
DataStax Enterprise软件包安装:/etc/dse/cassandra
DataStax Enterprise tarball安装:install_location/resources/cassandra/conf