我有一个由 Clickhouse 的两个节点组成的集群。两个实例都位于 docker 容器中。主机之间的所有通信均已成功检查 - ping、telnet、wget 工作正常。在 Zookeeper 中,我可以在ddl brunch 下看到我触发的查询。
每次执行“在集群上创建数据库”语句时都会超时。问题是什么?有人有什么想法吗?
有配置文件的片段。
版本 20.10.3.30
<remote_servers>
<history_cluster>
<shard>
<replica>
<host>10.3.194.104</host>
<port>9000</port>
</replica>
<replica>
<host>10.3.194.105</host>
<port>9000</port>
</replica>
</shard>
</history_cluster>
</remote_servers>
<zookeeper>
<node index="1">
<host>10.3.194.106</host>
<port>2181</port>
</node>
</zookeeper>
Run Code Online (Sandbox Code Playgroud)
“宏”部分
<macros incl="macros" optional="true" />
Run Code Online (Sandbox Code Playgroud)
日志片段
2020.11.20 22:38:44.104001 [ 90 ] {68062325-a6cf-4ac3-a355-c2159c66ae8b} <Error> executeQuery: Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000013 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are …
Run Code Online (Sandbox Code Playgroud) 我在 bash 方面没有经验,我遇到过一个让我感到困惑的案例。这是这种情况的一个例子:
f1()
{
ar+=(1)
ar+=(3)
ar+=(2)
var="var value"
echo "0"
}
f2()
{
res=$(f1)
echo -------point 1--------
for i in ${ar[@]}; do
echo "El $i"
done
echo $var
echo -------point 2--------
f1>/dev/null
for i in ${ar[@]}; do
echo "El $i"
done
echo $var
}
f2
Run Code Online (Sandbox Code Playgroud)
此脚本产生以下结果:
-------point 1--------
-------point 2--------
El 1
El 3
El 2
var value
Run Code Online (Sandbox Code Playgroud)
如您所见,函数 f1 以两种不同的方式被调用,它们给出了非常不同的含义。在第一次调用中,在 f1 中声明的数组和变量显然被破坏了。在第二种方式中,数组和变量被保存。
有没有人可以向我解释或给我一个适当手册的链接?