ClickHouse深入浅出之(二) 实战篇 (安装)

x33g5p2x  于2021-12-25 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(606)

1. ClickHouse安装

1.1.关于版本和系统的选择   

操作系统:Centos-7.7

ClickHouse:  YUM在线安装,20.x

1.2.安装前的准备

1.2.1. CentOS7打开文件数限制

在/etc/security/limits.conf这个文件的末尾加入以下内容:

sudo vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc  131072
* hard nproc  131072

 

在/etc/security/limits.d/90-nproc.conf这个文件的末尾加入以下内容:

sudo vim /etc/security/limits.d/90-nproc.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc  131072
* hard nproc  131072

重启服务器之后生效,用ulimit -n 或者ulimit -a 查看设置结果

ulimit -n
ulimit -a

1.2.2. CentOS7取消SELINUX

修改 /etc/selinux/config 中的SELINUX=disabled后重启

vim /etc/selinux/config

SELINUX=disabled

1.2.3.关闭防火墙  

Centos-6 操作:

service iptables stop
service ip6tables stop

Centos-7 操作:

systemctl status firewalld.service
systemctl stop   firewalld.service

1.2.4.安装依赖 

yum install -y libtool
yum install -y *unixODBC*

1.3.安装

官网:https://clickhouse.yandex/

具体安装细节看:https://clickhouse.tech/#quick-start

1.4.卸载clickhouse

查询是否安装 clickhouse:

rpm -qa|grep clickhouse

卸载clickhouse:

rpm -e clickhouse-client-20.5.4.40-2.noarch --nodeps 
rpm -e clickhouse-server-20.5.4.40-2.noarch --nodeps
rpm -e clickhouse-common-static-20.5.4.40-2.x86_64 --nodeps

删除数据目录:

rm -rf /var/lib/clickhouse

删除集群配置文件:

rm -rf /etc/metrika.xml

删除配置文件:

rm -rf /etc/clickhouse-*

删除日志文件:

rm -rf /var/log/clickhouse-server

删除zookeeper上clickhouse 的数据:

rmr /clickhouse

也可以进行全局寻找:然后执行删除操作

find / -name 'clickhouse'

1.5.单机模式

ClickHouse的安装可以使用yum在线安装,也可以使用rpm离线安装的方式!

具体信息见官网文档:https://clickhouse.tech/#quick-start

1.5.1.准备操作

需要验证当前服务器的CPU是否支持SSE 4.2指令集,因为向量化执行需要用到这项特性:

grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 no supported"

1.5.2.安装

依次执行如下命令:

yum install yum-utils -y rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo yum install clickhouse-server clickhouse-client -y

如果您没法链接互联网,则也可以使用rpm的方式来进行离线安装:需要下载的安装包有:

clickhouse-server-20.5.4.40-2.noarch.rpm
clickhouse-common-static-20.5.4.40-2.x86_64.rpm
clickhouse-client-20.5.4.40-2.noarch.rpm

下载地址在:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/https://packagecloud.io/Altinity/clickhouse

1.5.3.启动服务端     

前台启动

clickhouse-server --conf-file=/etc/clickhouse-server/config.xml

后台启动

nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml  1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &

启动成功,检查一下

ps -aux|grep clickhouse
netstat -nltp |grep clickhouse

如果报错

解决方案:修改安装目录的权限!,默认使用clickhouse用户!命令为:

cd /var/lib/
chown -R root:root clickhouse

默认情况下:/var/lib/clickhouse的group 和owner是:clickhouse:clickhouse

两种解决方式:

1、如果坚持使用root用户启动:把/var/lib/clickhouse 改成:root:root

2、你使用clickhouse用户去启动:chmod -u /bin/bash clickhouse    su - clickhouse 切换用户之后在启动

1.5.4.启动客户端

具体命令:

clickhouse-client
或者
TZ=Asia/Shanghai clickhouse-client

启动情况如下:

1.5.5.基本使用

创建库:

create database dylandb;

切换库:

use dylandb;

创建表:

create table dylan_test01(id Int8,name String) engine = TinyLog;

查询所有表:

show tables;

插入数据:

insert into dylan_test01 values (1,'dylan'),(2,'clickhouse'),(3,'spark');

查询数据:

select id,name from dylan_test01;

统计查询:

select count(*) as total from dylan_test01;

退出客户端:

quit

1.5.6.安装成功的核心目录

  1. /etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
  2. /var/lib/clickhouse:  默认数据存储目录,通常会修改默认配置路径,将数据保存到大容量磁盘挂的路径。
  3. /var/log/clickhouse-server:默认日志保存目录,通常会修改路径配置将日志保存到大容量磁盘挂载的路径。

1.5.7.可执行文件     

  1. clickhouse: 主程序的可执行文件。
  2. clickhouse-client: 一个指向clickhouse 可执行文件的软连接,供客户端连接使用。
  3. clickhouse-server: 一个指向clickhouse 可执行文件的软连接,供服务端启动使用。
  4. clickhouse-compressor: 内置提供的压缩工具,可用于数据的正压反解。

1.6.集群模式

1.6.1.在其他的机器上,分别安装上clickhouse

1.6.2.四台机器修改配置文件config.xml

vim /etc/clickhouse-server/config.xml

先修改tcp_port为9977,因为这个端口和HDFS的冲突了

<tcp_port>9977</tpc_port>

listen_host 表示能监听的主机,表示任意主机都可以访问

<listen_host>::</listen_host>
<!-- <listen_host>::1</listen_host>  -->
<!-- <listen_host>127.0.0.1</listen_host>  -->

所有节点同步:

scp -r /etc/clickhouse-server/config.xml bigdata02:/etc/clickhouse-server/ 
scp -r /etc/clickhouse-server/config.xml bigdata03:/etc/clickhouse-server/ 
scp -r /etc/clickhouse-server/config.xml bigdata04:/etc/clickhouse-server/ 
scp -r /etc/clickhouse-server/config.xml bigdata05:/etc/clickhouse-server/

1.6.3.在四台机器的etc目录下新建metrika.xml文件

vim /etc/metrika.xml
<yandex>
     <clickhouse_remote_servers>
        <!-- 4分片1副本 --> 
     <d_clickhouse_4shards_1replicas>
        <shard>
        <!-- 数据自动同步 --> 
            <internal_replication>true</internal_replication> 
                <replica>
                     <host>bigdata02</host> 
                     <port>9977</port>
                </replica>
            </shard>
            <shard>
                <replica>
                    <internal_replication>true</internal_replication>
                    <host>bigdata03</host>
                    <port>9977</port>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>bigdata04</host>
                    <port>9977</port>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>bigdata05</host>
                    <port>9977</port>
                </replica>
            </shard>
        </d_clickhouse_4shards_1replicas>
    </clickhouse_remote_servers>
<!-- zookeeper 自动同步 --> <zookeeper-servers>
        <node index="2">
            <host>bigdata02</host>
            <port>2181</port>
</node>
        <node index="3">
            <host>bigdata03</host>
            <port>2181</port>
        </node>
        <node index="4">
            <host>bigdata04</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>
<!-- 配置文件中macros若省略,则建复制表时每个分片需指定zookeeper路径及副本名称,同一分片 上路径相同,副本名称不同;若不省略需每个分片不同配置 -->
    <macros>
        <replica>bigdata02</replica>
</macros>
    <networks>
        <ip>::/0</ip>
</networks>
<!-- 配置压缩 --> <clickhouse_compression>
        <case>
            <min_part_size>10000000000</min_part_size>
 
需要根据不同的机器做不同的修改。
所有节点同步:
1.6.4. 启动 切记:要先启动 zookeeper
启动服务端:
检查启动是否OK:
启动客户端:
参数解释:
启动本地多行查询客户端:
scp -r /etc/metrika.xml bigdata02:/etc/
scp -r /etc/metrika.xml bigdata03:/etc/
scp -r /etc/metrika.xml bigdata04:/etc/
scp -r /etc/metrika.xml bigdata05:/etc/
zkServer.sh start
nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml
 1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &
netstat -nltp | grep clickhouse
clickhouse-client --host=... --port=... --user=... --password=... -m
username:用户名 password:密码 ip:服务器IP port:端口 -m:允许多行查询
clickhouse-client --host=localhost --port=9977 -m
clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata
-m
<min_part_size_ratio>0.01</min_part_size_ratio>
            <method>lz4</method>
        </case>
    </clickhouse_compression>
</yandex>

1.6.4. 启动

切记:要先启动zookeeper

zkServer.sh start

启动服务端:

nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml
1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &

检查启动是否OK:

netstat -nltp | grep clickhouse

启动客户端:

clickhouse-client --host=... --port=... --user=... --password=... -m

参数解释:

username:用户名 password:密码 ip:服务器IP port:端口 -m:允许多行查询

启动本地多行查询客户端:

clickhouse-client --host=localhost --port=9977 -m
clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m

1.6.5. 检查进程

ps -aux |grep clickhouse

2. ClickHouse的Client参数介绍

<br>参数<br><br>描述<br>
<br>--host, -h<br><br>目标服务器名,默认为localhost<br>
<br>--port<br><br>目标端口,默认为9000<br>
<br>--user, -u<br><br>连接用户,默认为default<br>
<br>--password<br><br>连接用户密码,默认为空字符串<br>
<br>--query, -q<br><br>非交互模式下执行的命令<br>
<br>--database, -d<br><br>当前操作的数据库,默认选择配置文件配置的值(默认为default库)<br>
<br>--multiline, -m<br><br>如果设定,允许多行查询<br>
<br>--multiquery, -n<br><br>如果指定,允许处理由分号分隔的多个查询。只有在非交互式模式工作。<br>
<br>--format, -f<br><br>使用指定的默认格式输出结果<br>
<br>--vertical, -E<br><br>如果指定,默认使用垂直格式输出结果,等同于--format=Vertical。<br><br>在这种格式中,每个值可在单独的行上,显示宽表时很有用。<br>
<br>--time, -t<br><br>如果指定,在stderr中输出查询执行时间的非交互式模式下。<br>
<br>--stacktrace<br><br>如果指定,如果发生异常,也会输出堆栈跟踪。<br>
<br>--config-file<br><br>配置文件的名称,额外的设置或改变了上面列出的设置默认值。<br>

默认情况下,配置文件的搜索顺序如下:

./clickhouse-client.xml
~/.clickhouse-client/config.xml
/etc/clickhouse-client/config.xml

3. 设置用户和密码

进入到配置文件目录,修改配置配置文件:

vim /etc/clickhouse-server/users.xml

系统默认使用default用户登录无密码。现在我们配置用户bigdata密码为bigdata配置一个用户:你配置的bigdata就是用户名,<password>这个标签中的值,就是密码

<bigdata>
    <password>bigdata</password>
    <networks incl="networks" replace="replace">
        <ip>::/0</ip>
    </networks>
    <profile>default</profile>
    <quota>default</quota>
</bigdata>

所有节点同步:

scp -r /etc/clickhouse-server/users.xml bigdata02:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata03:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata04:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata05:/etc/clickhouse-server/

启动客户端连接:

clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m

4. ClickHouse一些信息总结

配置文件路径:

/etc/clickhouse-server/config.xml
/etc/clickhouse-server/users.xml

日志文件路径:

/var/log/clickhouse-server/
表信息路径、元数据存储目录:
/var/lib/clickhouse/metadata/

表数据路径:

/var/lib/clickhouse/data/

5. 注意事项

clickhouse 既是单独运行的。游离于集群之外。被包含在集群之类的!
表:单机的表,和 分布式的表

相关文章