массово ошибки:
2021.08.26 16:15:18.046991 [ 197463 ] {} <Error> DDLWorker: ZooKeeper error: Code: 999, e.displayText() = Coordination::Exception: No node, Stack trace (when copying this message, always include the lines below):
0. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error, int) @ 0xf87ee03 in /usr/bin/clickhouse
1. Coordination::Exception::Exception(Coordination::Error) @ 0xf87f2ce in /usr/bin/clickhouse
2. DB::DDLWorker::createStatusDirs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<zkutil::ZooKeeper> const&) @ 0xe88509e in /usr/bin/clickhouse
3. DB::DDLWorker::processTask(DB::DDLTask&) @ 0xe88afd7 in /usr/bin/clickhouse
4. DB::DDLWorker::enqueueTask(std::__1::unique_ptr<DB::DDLTask, std::__1::default_delete<DB::DDLTask> >) @ 0xe88a20d in /usr/bin/clickhouse
5. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8505178 in /usr/bin/clickhouse
6. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x850712f in /usr/bin/clickhouse
7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x850274f in /usr/bin/clickhouse
8. ? @ 0x85061e3 in /usr/bin/clickhouse
9. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
10. __clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
(version 21.2.10.48 (official build))
zookeeper тоже жив. Подскажите, пожалуйста, в чем может быть проблема?
кажется это нормально, если это в течении пары минут такое. При старте начинается чистка старых DDDL заданий, и получается что несколько серверов пытаются удалить одно и тоже, и последние обламываются.
Проблема в том, что это не прекращается. Когда рестартанула нода, то ЗК переключил её на свою другую ноду. При повторном рестарте ноды КХ проблема продолжается.
а каким образом можно синхронизировать DDDL вручную? т.к. ошибка не пропадает вот уже несколько часов... и не понятно из-за чего такое поведение
значит это другая проблема. Других проблем нет? Только ругань в логах? У вас ЗК вообще в ансамбле ?
увы, не знаю, 3 ноды. Если я правильно понял вопрос (про ansible?) то нет (clickhouse - да). Нашли еще, что есть таски, которые не выполняются в system.distributed_ddl_queue. Еще в логах видим ошибку связанную с таской query-0000001413. Но нигде ее найти не можем, ни файла, ни записи в таблицах. (system.zookeeper / system.distributed_ddl_queue). Ситуация была примерно такая: нода кх упала по памяти, после растарта ЗК решил переключить ее на свою другую ноду и посыпались ошибки как я указывал выше.
ЗК ничего не решает. Просто КХ решил подключится к другой ноде. Кластер в ЗК называется ансамбль (ensemble) проверьте статус на всех ЗК echo stat | nc ip_zk 2181 надо иметь один лидер и 2 фоловера
# echo stat | nc localhost 2181 stat is not executed because it is not in the whitelist. поэтому так: echo mntr | nc localhost 2181 | grep 'leader' zk_server_state leader zk_leader_uptime 37520695236 echo mntr | nc localhost 2181 | grep 'follow' zk_synced_followers 2 zk_synced_non_voting_followers 0 zk_avg_follower_sync_time 22.0 zk_min_follower_sync_time 22 zk_max_follower_sync_time 22 zk_cnt_follower_sync_time 1 zk_sum_follower_sync_time 22 похоже на правду
Посмотрите по логу, что пытался сделать поток, который получил ошибку No node
есть запись только: 97158 197463 ? 03:36:30 DDLWorkerExec и в логах вижу сообщение только от одного этого потока и больше ничего /var/log/clickhouse-server/clickhouse-server.log message 2021.08.27 13:24:02.649745 [ 197463 ] {} <Error> DDLWorker: ZooKeeper error: Code: 999, e.displayText() = Coordination::Exception: No node, Stack trace (when copying this message, always include the lines below): 0. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error, int) @ 0xf87ee03 in /usr/bin/clickhouse 1. Coordination::Exception::Exception(Coordination::Error) @ 0xf87f2ce in /usr/bin/clickhouse 2. DB::DDLWorker::createStatusDirs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<zkutil::ZooKeeper> const&) @ 0xe88509e in /usr/bin/clickhouse 3. DB::DDLWorker::processTask(DB::DDLTask&) @ 0xe88afd7 in /usr/bin/clickhouse 4. DB::DDLWorker::enqueueTask(std::__1::unique_ptr<DB::DDLTask, std::__1::default_delete<DB::DDLTask> >) @ 0xe88a20d in /usr/bin/clickhouse 5. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8505178 in /usr/bin/clickhouse 6. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x850712f in /usr/bin/clickhouse 7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x850274f in /usr/bin/clickhouse 8. ? @ 0x85061e3 in /usr/bin/clickhouse 9. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so 10. __clone @ 0xfe8dd in /usr/lib64/libc-2.17.so (version 21.2.10.48 (official build)) В содержимом tcp пакета постоянно ловим: 13:22:27.614459 IP 172.* > 172.*: Flags [P.], seq 679570:679789, ack 169641, win 8192, length 219 E...0D@.@..l...n....K .....D.'.MP. ..G.......U.e................2/clickhouse/task_queue/ddl/query-0000001413/active................world....anyone................4/clickhouse/task_queue/ddl/query-0000001413/finished................world....anyone............. 13:22:27.614906 IP 172.* > 172.* Flags [P.], seq 679789:679915, ack 169696, win 8192, length 126 E...0E@.@......n....K .......'..P. ..?.....z.U.f.......K/clickhouse/task_queue/ddl/query-0000001413/active/nl%2Dzia%2Einternal:9000................world....anyone.... в логах нашли запись по этой таске: SELECT query FROM system.query_log WHERE query LIKE ‘%query-0000001413%’ ORDER BY event_time DESC ; ┌─query──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ /* ddl_entry=query-0000001413 */ CREATE TABLE IF NOT EXISTS shard.kafka_geo_groups_with_dates_events UUID ‘8338c429-c58a-4286-a0d7-5bb067368989’ (`data` String) ENGINE = Kafka SETTINGS kafka_broker_list = ‘kafka0.*:9092, kafka1.*:9092, kafka2.*:9092, kafka3.*:9092, kafka4.*:9092’, kafka_topic_list = ‘panel_table_changed_v1’, kafka_group_name = ‘clickhouse_kafka_geo_groups_with_dates_events_final’, kafka_format = ‘JSONAsString’, kafka_num_consumers = 1 │ │ /* ddl_entry=query-0000001413 */ CREATE TABLE IF NOT EXISTS shard.kafka_geo_groups_with_dates_events UUID ‘8338c429-c58a-4286-a0d7-5bb067368989’ (`data` String) ENGINE = Kafka SETTINGS kafka_broker_list = ‘kafka0.*:9092, kafka1.*:9092, kafka2.*:9092, kafka3.*:9092, kafka4.*:9092’, kafka_topic_list = ‘panel_table_changed_v1’, kafka_group_name = ‘clickhouse_kafka_geo_groups_with_dates_events_final’, kafka_format = ‘JSONAsString’, kafka_num_consumers = 1 │
У вас какой level в clickhouse-server.log? Вот это запустите select * from system.zookeeper where path=‘clickhouse/task_queue/ddl/query-0000001413/‘
вот этот номер в логе ищите [ 197463 ]
select * from system.zookeeper where path='clickhouse/task_queue/ddl/query-0000001413/' SELECT * FROM system.zookeeper WHERE path = 'clickhouse/task_queue/ddl/query-0000001413/' Query id: 84544fba-5500-4948-bc1f-4bed8d2ba876 0 rows in set. Elapsed: 0.004 sec. Received exception from server (version 21.2.10): Code: 999. DB::Exception: Received from localhost:9000. DB::Exception: No node, path: /clickhouse/task_queue/ddl/query-0000001413.
а что если WHERE path = '/clickhouse/task_queue/ddl/query-0000001413/'
а вообще есть что-нибудь в /clickhouse/task_queue/ddl ? WHERE path = '/clickhouse/task_queue/ddl'
# grep '197463' /var/log/clickhouse-server/clickhouse-server.err.log | tail -5 2021.08.27 13:56:08.024543 [ 197463 ] {} <Error> DDLWorker: ZooKeeper error: Code: 999, e.displayText() = Coordination::Exception: No node, Stack trace (when copying this message, always include the lines below)
полный трейс 2021.08.27 14:16:26.831184 [ 197463 ] {} <Error> DDLWorker: ZooKeeper error: Code: 999, e.displayText() = Coordination::Exception: No node, Stack trace (when copying this message, always include the lines below): 0. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error, int) @ 0xf87ee03 in /usr/bin/clickhouse 1. Coordination::Exception::Exception(Coordination::Error) @ 0xf87f2ce in /usr/bin/clickhouse 2. DB::DDLWorker::createStatusDirs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<zkutil::ZooKeeper> const&) @ 0xe88509e in /usr/bin/clickhouse 3. DB::DDLWorker::processTask(DB::DDLTask&) @ 0xe88afd7 in /usr/bin/clickhouse 4. DB::DDLWorker::enqueueTask(std::__1::unique_ptr<DB::DDLTask, std::__1::default_delete<DB::DDLTask> >) @ 0xe88a20d in /usr/bin/clickhouse 5. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8505178 in /usr/bin/clickhouse 6. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x850712f in /usr/bin/clickhouse 7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x850274f in /usr/bin/clickhouse 8. ? @ 0x85061e3 in /usr/bin/clickhouse 9. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so 10. __clone @ 0xfe8dd in /usr/lib64/libc-2.17.so (version 21.2.10.48 (official build))
Какой последний номер?
последний query-0000001493 первый query-0000001438
Чудеса. А после рестрта на другой ругается? При рестарте кх пишет дофига про это. Нужен лог в режиме трейс при рестарте
Обсуждают сегодня