Clickhouse集群部署
下载离线包:Index of /clickhouse/rpm/stable/x86_64/
版本:21.7.7.47-2
- 需安装JDK,zookeeper
安装包下载地址:Index of /dist/zookeeper
上传到/usr/local
tar -zxf zookeeper-3.4.5-cdh5.5.4.tar.gz
rm -rf zookeeper-3.4.5-cdh5.5.4.tar.gz
进入到zookeeper的安装目录
cd zookeeper-3.4.5-cdh5.5.4/
新建data和logs文件夹
[root@test zookeeper-3.4.5]# mkdir data
[root@test zookeeper-3.4.5]# mkdir logs
复制zoo_sample.cfg文件
cd conf/
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg文件
[root@test zookeeper-3.4.5]# vim conf/zoo.cfg

注释:
tickTime:心跳时间
initLimit:多少个心跳时间内,允许其他server连接并初始化数据
syncLimit:多少个tickTime内,允许follower节点同步
dataDir:存放内存数据文件目录,根据实际环境修改
dataLogDir:存放日志文件目录,根据实际环境修改
clientPort:监听端口,使用默认2181端口
server.x:配置集群主机信息,[hostname]:[通信端口]:[选举端口],根据自己的主机信息修改
maxClientCnxns:最大并发客户端数,用于防止DOS的,设置为0是不加限制
minSessionTimeout:最小的客户端session超时时间(单位是毫秒)
maxSessionTimeout:最大的客户端session超时时间(单位是毫秒)
将本机安装目录,通过scp全部拷贝至另外2台机器。
scp zoo.cfg root@10.1.50.137://usr/local/zookeeper-3.4.5/conf
scp zoo.cfg root@10.1.50.138://usr/local/zookeeper-3.4.5/conf
在三台服务器的zookeeper安装目录下的data文件夹下面新建文件myid, 分别输入数字1、2、3,对应上面配置文件的server后面的数字
vim myid

Zookeeper的启动停止 (要三台都启动才行!!!!),分别进入三台服务器的zookeeper安装目录!!!!!!!!!!,输入命令bin/zkServer.sh start 启动Zookeeper服务,查看状态命令:
bin/zkServer.sh start
./zkServer.sh status




进入节点,执行命令为:
./zkCli.sh -server 10.1.50.130:2181 回车
ls / (查看当前 ZooKeeper 中所包含的内容,输入命令quit 退出Zookeeper服务)
启动zookeeper服务后可以通过jps -l 命令查看zookeeper进程,进程名为QuorumPeerMai
在zookeeper安装目录下输入命令 bin/zkServer.sh status 各个节点的状态
如果需要停止zookeeper服务,则在zookeeper安装目录上输入命令 bin/zkServer.sh stop

部署clickhouse集群
上传文件( 3 台都操作 ):新建文件目录,上传安装包
mkdir -p /opt/server/clickhouse

安装包:
[root@node1 clickhouse]# rpm -ivh *.rpm
# 安装过程中提示输入:Enter password for default user:回车即可
修改配置文件:
vim /etc/clickhouse-server/config.xml
# 取消注释
<listen_host>::</listen_host>
# 增加的内容
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
<include_from>/etc/clickhouse-server/metrika.xml</include_from>
<zookeeper incl="zookeeper-servers" optional="true" />
创建zookeeper配置文件
cd /etc/clickhouse-server/config.d
vim metrika.xml
# 增加以下内容
<?xml version="1.0"?>
<yandex>
<zookeeper-servers>
<node index="1">
<host>node1</host>
<port>2181</port>
</node>
<node index="2">
<host>node2</host>
<port>2181</port>
</node>
<node index="3">
<host>node3</host>
<port>2181</port>
</node>
</zookeeper-servers>
</yandex>
配置分片和副本的配置文件
cd /etc/clickhouse-server
vim metrika.xml
# 增加以下内容,集群配置,3 个分片1个备份
<yandex>
<clickhouse_remote_servers>
<cluster_3shards_1replicas>
<shard>
<replica>
<host>node1</host>
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<host>node2</host>
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<host>node3</host>
<port>9000</port>
</replica>
</shard>
</cluster_3shards_1replicas>
</clickhouse_remote_servers>
</yandex>
修改权限:
chown -R clickhouse:clickhouse /etc/clickhouse-server/config.d/metrika.xml
chown -R clickhouse:clickhouse /etc/clickhouse-server/metrika.xml
启动,查看服务状态:
systemctl restart clickhouse-server.service
systemctl status clickhouse-server.service

登录clickhouse:
[root@node1 users.d]# clickhouse-client –password
查看集群信息:
select * from system.clusters;

查看服务端口:

vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
//第一列代表用户用户组,*代表所有,正常应该是“用户名@用户组”
//第二列soft代表软限制(正常生效状态),hard代表硬限制(最大)
//第三列 nofile代表文件数量,nproc代表进程数
clickhouse用户密码的三种设置方法
加密方式有三种
clickhouse密码可以可以设置 SHA256 ,SHA1和明文三种方式。
1)SHA256
通过下面命令生成密码,-c表示要生成的长度;
PASSWORD=$(base64 < /dev/urandom | head -c14); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
users.xml中放在标签:
<password_sha256_hex></password_sha256_hex>
2)SHA1
通过下面命令生成; SHA1生成的密码,可以支持mysql客户端连Clickhouse
PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
users.xml中放在标签:
<password_double_sha1_hex></password_double_sha1_hex>
3)明文:
明文密码则直接将要设置的密码放在标签:
<password></password>
编辑/etc/clickhouse-server/users.xml 配置文件,添加账号信息。
注意: 修改users.xml文件不需要重启,修改后会直接生效;
如果是集群则每台机器都需要更新users.xml配置文件。


验证登录:需密码登录
[root@localhost clickhouse-server]# clickhouse-client --password

#####分片配置模版
配置remote_server字段
删除原本的test内容,添加:
<remote_servers>
<!-- spi_shards_replicas是集群名字,自己命名就可以,建库建表需要用到-->
<spi_shards_replicas>
<!-- 集群第一个分片 -->
<shard>
<!-- 权重值 -->
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>10.0.0.60</host>
<port>9000</port>
</replica>
<replica>
<host>10.0.0.61</host>
<port>9000</port>
</replica>
</shard>
<!-- 集群第二个分片 -->
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>10.0.0.61</host>
<port>9100</port>
</replica>
<replica>
<host>10.0.0.62</host>
<port>9000</port>
</replica>
</shard>
<!-- 集群第三个分片 -->
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>10.0.0.62</host>
<port>9100</port>
</replica>
<replica>
<host>10.0.0.60</host>
<port>9100</port>
</replica>
</shard>
</spi_shards_replicas>
</remote_servers>
######
4327



被折叠的 条评论
为什么被折叠?



