Je travaille sur l'environnement docker et j'ai exécuté docker exec -it mycassandra cqlsh . Ensuite, j'insère les données et l'erreur suivante se produit:
WriteTimeout - Erreur du serveur: code = 1100
En ceci , cela me dit que je dois trouver sortez le document cassandra.yaml et modifiez l'heure d'écriture, mais je ne trouve pas cela sur mon MAC.
Pourriez-vous me dire comment puis-je le trouver et comment modifier le document? Merci.
4 Réponses :
D'après l'exemple fourni, il semble que la base de données soit exécutée depuis l'intérieur d'un conteneur. Ainsi, le cassandra.yaml que vous recherchez sera créé à la volée au démarrage du conteneur, en fonction de la configuration que vous avez fournie.
Nous avons défini Cassandra Containers avec Kubernetes, et les exécutons dans le docker, basé sur les instructions trouvées ici , et j'ai pu modifier les paramètres du cassandra.yaml dans la configuration du statefulset, en mettant à jour les variables dans env pour la spécification du conteneur.
Par exemple, pour modifier la liste de graines, le nom du cluster, et le rack du cluster C * nommé c-test-qa:
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"
...
Si vous exécutez l'image officielle de cassandra, alors cassandra.yaml peut être trouvé à /etc/cassandra/cassandra.yaml dans le conteneur. Si vous souhaitez créer un fichier cassandra.yaml personnalisé, vous pouvez essayer de l'écraser dans votre fichier Dockerfile ou docker-compose.yml . Par exemple, dans mon fichier docker-compose.yml , j'ai quelque chose comme:
services:
cassandra:
image: cassandra:3.11.4
volumes:
- ./cassandra.yaml:/etc/cassandra/cassandra.yaml
qui provoque le fichier cassandra.yaml dans le conteneur à écraser par mon cassandra.yaml local.
J'espère que cela vous aidera.
Sur MacOS:
Il se trouve dans l'un des emplacements ci-dessous:
Installations du paquet Cassandra: /etc/cassandra
Installations de l'archive tar Cassandra: install_location/conf
Installations de packages DataStax Enterprise: /etc/dse/cassandra
Installations de l'archive tar de DataStax Enterprise: install_location/resources/cassandra/conf
avons-nous des packages pour Mac? ;-) La question concerne également l'emplacement du fichier dans l'image Docker ...
pour ceux qui l'ont installé en tant que brew install cassandra , le fichier yaml sera situé dans usr/local/etc/cassandra