J4c*_*4ce 1 cql cassandra docker udf
当我尝试在 cassandra 中创建一个简单的减法函数时出现以下错误:
user defined functions are disabled in cassandra.yaml set enable user defined functions=true
Run Code Online (Sandbox Code Playgroud)
我不知道如何将其设置为 true。我该去哪里做这件事?我正在运行 cassandra 的 docker 实例,这使它变得更加困难。
您将需要修改 Dockerfile 中的 cassandra.yaml 文件。您可以创建一个单独的图层作为原始 Cassandra 图像的扩展(更多信息请参见此处)。
假设您使用的是 Cassandra 3,并且是通过软件包安装进行安装的,则其位置为:
/etc/cassandra/cassandra.yaml
Run Code Online (Sandbox Code Playgroud)
此处记录了不同安装选项(压缩包等)的其他可能位置。如果您正在运行此Docker 映像,您可能应该在/etc/cassandra中找到它。
一旦确定了安装路径,您就可以使用 sed 来更改文件。使用 Docker 的 RUN 命令运行它:
RUN sed -i -r 's/enable_user_defined_functions=false/enable_user_defined_functions=true/' /etc/cassandra/cassandra.yaml
Run Code Online (Sandbox Code Playgroud)
然后重启一个节点。
在您的docker-compose.yaml文件中,在您的环境下添加以下内容:
environment:
- CASSANDRA_ENABLE_USER_DEFINED_FUNCTIONS=true
Run Code Online (Sandbox Code Playgroud)
然后,修改docker-entrypoint.sh(你可以从这里得到它),并添加
enable_user_defined_functions
for yaml in \
broadcast_address \
broadcast_rpc_address \
cluster_name \
endpoint_snitch \
listen_address \
num_tokens \
rpc_address \
start_rpc \
enable_user_defined_functions \
Run Code Online (Sandbox Code Playgroud)
此外,您需要使用修改后的版本覆盖 docker-entrypoint.sh:
volumes:
- ./db/Cassandra/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |