grep cassandra

问题描述 投票:0回答:1
docker run -d --name cassandra-node --publish 9042:9042 cassandra

Connect to the container: docker exec -it cassandra-node bash(Connected to Test Cluster at 127.0.0.1:9042)

Keyspace creation

Create Keyspace: CREATE KEYSPACE first_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1}

  • Connect to Keyspace: USE first_keyspace
  • Create table: CREATE TABLE first_keyspace.user (USERID int PRIMARY KEY, USERNAME text, CITY text);
  • Insert data:
  • INSERT INTO USER (USERID, USERNAME, CITY) VALUES (1, 'JOHN','PARIS');INSERT INTO USER (USERID, USERNAME, CITY) VALUES (2, 'ABD','SAFRICA');Fetch data: select * from user;

Problem statement in details

  • Wants to create a new Docker Container (Using Dockerfile) for CQL (cqlsh) which would perform below tasks:
  • Connect to Cassandra cluster which running as Docker container (cassandra-host)
  • Perform all task Add
  • 我正试图为以下内容创建一个新的docker容器。
  • Cassandra CQL
  • 它连接到作为另一个docker容器运行的Cassandra集群。

目前的情况。

我创建了一个新的Cassandra镜像 "cassandra "和名为 "container-node "的容器,执行以下命令。

  1. docker pull cassandra
  2. docker images更新删除功能读取自 来源:sql.sql 文件。

我想知道我可以从哪里开始.任何帮助,指针将是感激。

docker cassandra cql cqlsh
1个回答
1
投票

不知道cassandra是否支持.sql文件。我想这是一个印刷错误。

从.cql文件加载数据的命令是这样的。

bin/cqlsh --file 'file_name'

所有你需要做的是在容器中运行这样的命令。但在此之前,你需要确保该文件在容器内是可以访问的。两种方法是在创建镜像的时候把文件复制到容器里面(针对init脚本那种需求)和卷映射(针对其他需求)。示例Docker文件。

FROM cassandra
COPY some-file.cql /home/some-file.cql
CMD["cqlsh","<cassandra-docker-container-ref>","-f","/home/some-file.sql"]

这里 cassandra-docker-container-ref 可以是你的cassandra docker服务器的id或名称。我建议使用name。

用这样的命令来构建镜像。

docker build -t cassandra-seed-script .

并运行图像作为一个容器 并立即删除它。

docker run -it --rm cassandra-seed-script 

如果你需要定期执行,并与不同的cql文件,卷映射容器中的位置与主机,并使命令动态(或传递命令,同时启动一个容器)。

© www.soinside.com 2019 - 2024. All rights reserved.