目录
Clickhouse单机部署
推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。
部署安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
修改密码
配置文件为:/etc/clickhouse-server/users.xml
在//添加密码配置,具体如下
<password></password>
生成加密密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
配置加密密码
<password_sha256_hex>xxxxx</password_sha256_hex>
重启Clickhouse Server
sudo /etc/init.d/clickhouse-server restart
Clickhouse集群部署
Clickhouse 集群是非主从结构,各个节点是相互独立的。因此,和hdfs、yarn的集群不同,我们可以根据配置,灵活的配置集群,甚至可以将一个节点同时分配给多个集群。
Clickhouse集群的概念主要就是用于分布式表和表的副本
上面这张图有三个Clickhouse节点,这三个节点组成了两个集群。
这边我们创建三个的节点的集群
步骤一:安装三台单机版Clickhouse
步骤参加单机版安装教程
步骤二:添加hosts
192.168.5.87 ck1
192.168.5.88 ck2
192.168.5.89 ck3
192.168.5.87 zk1
192.168.5.88 zk2
192.168.5.89 zk3
步骤三:安装zookeeper
zookeeper安装包地址
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
解压
tar zxvf apache-zookeeper-3.8.0-bin.tar.gz
移动到/usr/local目录下
mv apache-zookeeper-3.8.0-bin /usr/local/zookeeper
创建数据文件存储目录
cd /usr/local/zookeeper/
mkdir data
cd conf
cp zoo_sample.cfg zoo.cfg
修改zk配置
dataDir=/usr/local/zookeeper/data
server.1=192.168.5.87:2888:3888
server.2=192.168.5.88:2888:3888
server.3=192.168.5.89:2888:3888
创建myid文件
cd /usr/local/zookeeper/data
touch myid
echo "1">>myid
每台机器的myid里面的值对应server.后面的数字x。
启动zk集群
/usr/local/zookeeper/bin/zkServer.sh start
步骤四:配置metrika.xml文件
<?xml version="1.0"?>
<clickhouse>
<clickhouse_remote_servers>
<!--集群名称,clickhouse支持多集群的模式-->
<clickhouse_cluster>
<!--定义分片节点,这里我指定3个分片,每个分片只有1个副本,也就是它本身-->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>ck1</host>
<port>9800</port>
<user>default</user>
<password>ygOM9vp5</password>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>ck2</host>
<port>9800</port>
<user>default</user>
<password>ygOM9vp5</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>ck3</host>
<port>9800</port>
<user>default</user>
<password>ygOM9vp5</password>
</replica>
</shard>
</clickhouse_cluster>
</clickhouse_remote_servers>
<!--zookeeper集群的连接信息-->
<zookeeper-servers>
<node index="1">
<host>zk1</host>
<port>2181</port>
</node>
<node index="2">
<host>zk2</host>
<port>2181</port>
</node>
<node index="3">
<host>zk3</host>
<port>2181</port>
</node>
</zookeeper-servers>
<!--定义宏变量,后面需要用-->
<macros>
<replica>ck1</replica>
</macros>
</clickhouse>
注意配置中变量macros为对应主机名不能一样
步骤五:修改三台机器的config.xml的配置
vi /etc/clickhouse-server/config.xml
取消注释
<listen_host>::</listen_host>
引入metrika.xml配置文件
<remote_servers incl="clickhouse_remote_servers" />
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
找到<remote_servers>原标签,删除后加入以上四行
如果不删除<remote_servers>原标签,那么四行内容放到<remote_servers>原标签前面
步骤六:验证Clickhouse集群是否搭建成功
使用Client连接随便一台Clickhouse Server,执行以下语句
select * from system.clusters
结果如下图,说明集群安装成功!