ClickHouse数据库安装配置使用

本文详细介绍了ClickHouse数据库的安装步骤,包括下载安装包、服务器配置(如设置远程连接和防火墙)、客户端连接以及示例数据的导入。还提供了常见问题的解决方案和防火墙管理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装步骤

安装包下载地址: https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
常规安装需要如下4个软件包
    clickhouse-common-static — ClickHouse编译的二进制文件。
    clickhouse-server — 创建clickhouse-server软连接,并安装默认配置服务
    clickhouse-client — 创建clickhouse-client客户端工具软连接,并安装客户端配置文件。
    clickhouse-common-static-dbg — 带有调试信息的ClickHouse二进制文件

最小化安装需要其中3个
    clickhouse-common-static
    clickhouse-server
    clickhouse-client
    
服务器新建一个目录,上传rpm安装包到该目录
    安装命令: rpm -ivh *.rpm
    查看命令: rpm -qa|grep clickhouse
    //卸载命令: rpm -e xxx.rpm
    
修改配置文件,把如下标签打开,允许远程连接
    vim /etc/clickhouse-server/config.xml
    <listen_host>::</listen_host>
    
启动并查看状态
    systemctl start clickhouse-server 
    systemctl status clickhouse-server 

启动客户端
    无密码连接: clickhouse-client
    有密码连接: clickhouse-client --user=default --password
    
    >show databases;
    >show tables;
    
防火墙打开相关端口
    firewall-cmd --zone=public --add-port=8123/tcp --permanent
    firewall-cmd --zone=public --add-port=9000/tcp --permanent
    firewall-cmd --reload

相关目录
    /usr/bin 
    /etc/clickhouse-server
    /etc/clickhouse-client
    /var/lib/clickhouse
    /var/log/clickhouse-server

常见问题

1.远程无法连接解决方案
vim /etc/clickhouse-server/config.xml(放开<listen_host>::</listen_host>)

2.root无法启动解决方案
chown -R root:root /var/lib/clickhouse /var/log/clickhouse-server /etc/clickhouse-server /etc/clickhouse-client
/usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml

导入示例数据

示例数据集下载
    https://clickhouse.com/docs/zh/getting-started/example-datasets
执行建表语句

--示例数据集由四个表组成:
--Menu - 有关菜单的信息,其中包含:餐厅名称,看到菜单的日期等
--Dish - 有关菜肴的信息,其中包含:菜肴名称以及一些特征。
--MenuPage - 有关菜单中页面的信息,每个页面都属于某个 Menu。
--MenuItem - 菜单项。某个菜单页面上的菜肴及其价格:指向 Dish 和 MenuPage的链接。

CREATE TABLE dish
(
    id UInt32,
    name String,
    description String,
    menus_appeared UInt32,
    times_appeared Int32,
    first_appeared UInt16,
    last_appeared UInt16,
    lowest_price Decimal64(3),
    highest_price Decimal64(3)
) ENGINE = MergeTree ORDER BY id;

CREATE TABLE menu
(
    id UInt32,
    name String,
    sponsor String,
    event String,
    venue String,
    place String,
    physical_description String,
    occasion String,
    notes String,
    call_number String,
    keywords String,
    language String,
    date String,
    location String,
    location_type String,
    currency String,
    currency_symbol String,
    status String,
    page_count UInt16,
    dish_count UInt16
) ENGINE = MergeTree ORDER BY id;

CREATE TABLE menu_page
(
    id UInt32,
    menu_id UInt32,
    page_number UInt16,
    image_id String,
    full_height UInt16,
    full_width UInt16,
    uuid UUID
) ENGINE = MergeTree ORDER BY id;

CREATE TABLE menu_item
(
    id UInt32,
    menu_page_id UInt32,
    price Decimal64(3),
    high_price Decimal64(3),
    dish_id UInt32,
    created_at DateTime,
    updated_at DateTime,
    xpos Float64,
    ypos Float64
) ENGINE = MergeTree ORDER BY id;

解压示例数据
    tar xvf 2021_08_01_07_01_17_data.tgz
导入示例数据
    clickhouse-client --format_csv_allow_single_quotes 0 --input_format_null_as_default 0 --query "INSERT INTO dish FORMAT CSVWithNames" < Dish.csv
    clickhouse-client --format_csv_allow_single_quotes 0 --input_format_null_as_default 0 --query "INSERT INTO menu FORMAT CSVWithNames" < Menu.csv
    clickhouse-client --format_csv_allow_single_quotes 0 --input_format_null_as_default 0 --query "INSERT INTO menu_page FORMAT CSVWithNames" < MenuPage.csv
    clickhouse-client --format_csv_allow_single_quotes 0 --input_format_null_as_default 0 --date_time_input_format best_effort --query "INSERT INTO menu_item FORMAT CSVWithNames" < MenuItem.csv
 

防火墙管理

Centos7 使用 firewall-cmd 命令 开放及查看端口开放情况

1、开放端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent   # 开放5672端口
firewall-cmd --zone=public --remove-port=8888/tcp --permanent  #关闭5672端口
firewall-cmd --reload   # 配置立即生效

2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

3.、防火墙启动/关闭/重启/状态
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl restart firewalld.service
systemctl status firewalld.service

4、查看防火墙状态
 firewall-cmd --state
 
5、查看监听的端口
netstat -lnpt
PS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools

6、检查端口被哪个进程占用
netstat -lnpt |grep 8888

### 不同操作系统上安装ClickHouse的方法 #### openEuler上的安装过程 在openEuler操作系统上安装ClickHouse能够帮助用户建立高效的本地数据存储与查询环境。为了实现这一点,需先配置好系统的软件包管理器YUM仓库,之后利用`yum install clickhouse-server clickhouse-client`来完成服务器端以及客户端组件的下载和设置工作[^1]。 对于那些希望获取最新版本或是特定构建版次的人而言,则可以通过编译源码的方式来进行部署。这通常涉及到克隆官方GitHub项目库至本地机器并按照给定说明执行一系列编译指令以生成可执行文件。 ```bash git clone https://github.com/ClickHouse/ClickHouse.git cd ClickHouse make program sudo make install ``` #### Linux通用发行版(如Ubuntu、CentOS) 大多数Linux发行版支持通过其默认或第三方APT/YUM/APT-RPM等包管理系统轻松安装ClickHouse。例如,在基于Debian/Ubuntu系统中,可通过添加官方APT仓库地址到/etc/apt/sources.list.d/clickhouse.list文件内,并运行更新命令加上具体的安装语句: ```bash echo "deb http://repo.clickhouse.tech/stable/deb/ ./" | sudo tee /etc/apt/sources.list.d/clickhouse.list curl -s https://packages.clickhouse.com/deb/keys/appsign.pub | apt-key add - apt-get update && apt-y clickhouse-server clickhouse-client ``` 而在RedHat/CentOS环境下则应采用对应的YUM方式: ```bash cat <<EOF | sudo tee /etc/yum.repos.d/clickhouse.repo [clickhouse] name=clickhouse baseurl=https://packagecloud.io/clickhouse/release/el/7/\$basearch/ enabled=1 gpgcheck=0 protect=1 EOF yum clean all yum install clickhouse-server clickhouse-client ``` #### macOS下的安装指南 Mac OS X 用户可以选择Homebrew作为最简便快捷的方式来获得最新的稳定版ClickHouse二进制分发包。只需打开终端窗口输入简单的homebrew安装命令即可自动完成整个流程: ```bash brew tap altinity/homebrew-clickhousedb brew install clickhousedb ``` 此外,Docker容器化技术也为跨平台移植提供了极大的便利性,无论是在Windows Subsystem for Linux (WSL), Mac还是其他任何支持docker引擎的操作系统之上都能无缝运行预打包好的镜像实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值