ClickHouse官方文档翻译_操作-故障排除

Posted by Lance Lee on Thursday, August 20, 2020

TOC

故障排除

  • 安装
  • 连接服务器
  • 查询处理
  • 查询处理效率

安装

无法使用Apt-get从ClickHouse库中获取Deb

  • 检查防火墙设置
  • 如果由于一些原因不能访问仓库,下载开始使用文章中描述的包,然后使用sudo dpkg -i <packages>命令手动安装。还需要tzdata包。

连接服务器

可能的问题:

  • 服务器未运行。
  • 意外的或错误的配置参数。

服务器未运行

检查服务器是否运行

命令:

$ sudo service clickhouse-server status

如果服务器未运行,使用下面命令启动服务器:

$ sudo service clickhouse-server start
检查日志

clickhouse-server主要日志默认在/var/log/clickhouse-server/clickhouse-server.log

如果服务器成功启动,应看到字符串:

  • <Information> Application: starting up. - 服务器启动
  • <Information> Application: Ready for connections. - 服务器正在运行并准备连接。

如果clickhouse-server由于配置错误启动失败,应该看到到带有错误描述的<Error>字符串。例如:

2019.01.11 15:23:25.549505 [ 45 ] {} <Error> ExternalDictionaries: Failed reloading 'event2id' external dictionary: Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused, e.what() = Connection refused

如果在文件末尾没有看到错误,从下面字符串开始浏览整个文件:

<Information> Application: starting up.

如果试图在服务器上启动第二个clickhouse-server实例,可以看到下面日志:

2019.01.11 15:25:11.151730 [ 1 ] {} <Information> : Starting ClickHouse 19.1.0 with revision 54413
2019.01.11 15:25:11.154578 [ 1 ] {} <Information> Application: starting up
2019.01.11 15:25:11.156361 [ 1 ] {} <Information> StatusFile: Status file ./status already exists - unclean restart. Contents:
PID: 8510
Started at: 2019-01-11 15:24:23
Revision: 54413

2019.01.11 15:25:11.156673 [ 1 ] {} <Error> Application: DB::Exception: Cannot lock file ./status. Another server instance in same directory is already running.
2019.01.11 15:25:11.156682 [ 1 ] {} <Information> Application: shutting down
2019.01.11 15:25:11.156686 [ 1 ] {} <Debug> Application: Uninitializing subsystem: Logging Subsystem
2019.01.11 15:25:11.156716 [ 2 ] {} <Information> BaseDaemon: Stop SignalListener thread

查看system.d日志

如果在clickhouse-server日志没有找到任何有用的信息或者那里没有任何日志,你可以使用下面命令查看system.d日志:

$ sudo journalctl -u clickhouse-server

使用交互模式启动clickhouse-server

$ sudo -u clickhouse /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml

命令将服务器作为带有自动启动脚本标准参数的交互应用启动。在这个模式下clickhouse-server会在控制台打印所有事件信息。

配置参数:

检查:

  • Docker设置。

如果在Docker的IPv6网络运行ClickHouse,确保设置了network=host

  • 端点设置。

检查listen_hosttcp_port设置 ClickHouse服务器默认只接收本地连接。

  • HTTP协议设置。

检查HTTP API的协议设置。

  • 安装连接设置。 检查:
    • tcp_port_secure设置。
    • SSL证书的设置。 连接时使用合适的参数。例如,clickhouse_client使用port_secure参数。
  • 用户设置。

可能使用错误的用户名和密码。

查询处理

如果ClickHouse不能处理查询,会向客户端发送一个错误描述。在clickhouse-client控制台可以获取到错误描述。如果使用HTTP接口,ClickHouse会在响应体中发送错误描述。例如:

$ curl 'http://localhost:8123/' --data-binary "SELECT a"
Code: 47, e.displayText() = DB::Exception: Unknown identifier: a. Note that there are no tables (FROM clause) in your query, context: required_names: 'a' source_tables: table_aliases: private_aliases: column_aliases: public_columns: 'a' masked_columns: array_join_columns: source_columns: , e.what() = DB::Exception

如果带有stack-trace参数启动clickhouse-client,ClickHouse会返回服务器错误描述的堆栈跟踪信息。

可以看到断开连接的消息。在这种情况下,可以重复查询。如果每次执行查询时连接都中断,检查服务器日志中的错误。

查询处理效率

如果发现ClickHouse运行的太慢,需要为查询分析服务器资源和网络的负载。

可以使用clickhouse-benchmark工具来分析查询。它显示每秒处理的查询数、每秒处理的行数以及查询处理时间的百分位数。

「如果这篇文章对你有用,请支持一下哦」

Attack On Programmer

如果这篇文章对你有用,请支持一下哦

使用微信扫描二维码完成支付