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