IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 记录一次clickhouse三台机器三分片双副本环绕部署(分布式集群多副本多分片) -> 正文阅读

[大数据]记录一次clickhouse三台机器三分片双副本环绕部署(分布式集群多副本多分片)

可能出现的问题

如果无法启动,大概率为权限问题,如果测试环境,将使用到的目录改为777,如果正式环境,改为拥有者为clickhouse再次尝试

IP
192.168.0.81
192.168.0.102
192.168.0.103

1 准备工作

1.1 CentOS 取消打开文件数限制 (所有机器)

在 /etc/security/limits.conf 的末尾分别加入以下内容:

[root@ch1 ~]# vim  /etc/security/limits.conf
在文件末尾添加:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

1.2 CentOS 取消 SELINUX (所有机器)

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

[root@ch1 ~]# vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

1.3 关闭防火墙 (所有机器)

[root@ch1 ~]# systemctl stop firewalld.service
[root@ch1 ~]# systemctl disable firewalld.service

1.4 安装依赖 (所有机器)

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

2 Zookeeper 安装

Zookeeper 需要安装奇数台来安装

2.1 下载zookeeper (所有机器)

mkdir /usr/local/zookeeper
cd /usr/local/zookeeper
wget https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -xvf zookeeper-3.4.14.tar.gz

2.2 创建配置 (所有机器)

cp /usr/local/zookeeper/zookeeper-3.4.14/conf/zoo_sample.cfg /usr/local/zookeeper/zookeeper-3.4.14/conf/zoo.cfg

2.3 修改配置参数 (所有机器)

vim /usr/local/zookeeper/zookeeper-3.4.14/conf/zoo.cfg
dataDir=/home/apps/zookeeper/data
dataLogDir=/home/apps/zookeeper/logs
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888

2.4 每台创建不一样的server id标识 (所有机器)

# /tmp在linux中是临时目录,linux会对此目录定期清理,所以需要修改此目录
[root@ch1 ~]# mkdir -p /home/apps/zookeeper/data
[root@ch1 ~]# mkdir -p /home/apps/zookeeper/logs
[root@ch1 ~]# touch /home/apps/zookeeper/data/myid
[root@ch1 ~]# vim /home/apps/zookeeper/data/myid
# ip1输入1, ip2输入2, ip3输入3

2.5 启动zk (所有机器)

/usr/local/zookeeper/zookeeper-3.4.14/bin/zkServer.sh start
# 查看状态
/usr/local/zookeeper/zookeeper-3.4.14/bin/zkServer.sh status

3 分布式安装

官网步骤

3.1 安装 (所有机器)

[root@ch1 ~]# sudo yum install clickhouse-server clickhouse-client

3.2 修改配置文件 config.xml (所有机器)

#日志存放位置 根据个人所需修改
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>

#数据目录 个人所需修改
<path>/var/lib/clickhouse/</path>
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

#允许被访问 放开注释
<listen_host>::</listen_host>

#最大连接数
<max_connections>4096</max_connections>

#新增 控制分片与副本参数目录
<include_from>/etc/clickhouse-server/metrika.xml</include_from>

3.2 创建刚才修改的目录,并授权 (所有机器)

3.2 修改配置文件 user.xml (所有机器)

#内存限制
<max_memory_usage>30000000000</max_memory_usage>

#增加默认用户的密码,否则clickhouse不需要密码都可登录
<users>
	<default>
		<password>密码自定义</password>
	</default>
</users>

3.2 创建配置文件 metrika.xml (所有机器)

3.2.1相同之处

<yandex>
    <clickhouse_remote_servers>
        <!-- 集群名称 -->
        <report_shards_replicas>
            <!-- 集群第一个分片 -->
            <shard>
							<!-- 分片权重 -->
                <weight>1</weight>
				            <!-- 是否写入多副本 -->
                <internal_replication>true</internal_replication>
                <replica>
									<!-- 1分片的副本1 ip与port -->
                    <host>192.168.0.81</host>
                    <port>9000</port>
                </replica>
                <replica>
									<!-- 1分片的副本2 ip与port -->
                    <host>192.168.0.102</host>
                    <port>9000</port>
                </replica>
            </shard>
            <!-- 集群第二个分片 -->
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
							<!-- 2分片的副本1 ip与port -->
                <replica>
                    <host>192.168.0.102</host>
                    <port>9100</port>
                </replica>
							<!-- 2分片的副本2 ip与port -->
                <replica>
                    <host>192.168.0.103</host>
                    <port>9000</port>
                </replica>
            </shard>
            <!-- 第三个分片 -->
            <shard>  
                <weight>1</weight>
                <internal_replication>true</internal_replication>
							<!-- 3分片的副本1 ip与port -->
                <replica>
                    <host>192.168.0.81</host>
                    <port>9100</port>
                </replica>
							<!-- 3分片的副本2 ip与port -->
                <replica>
                    <host>192.168.0.103</host>
					                <port>9100</port>
                </replica>
            </shard>
        </report_shards_replicas>
    </clickhouse_remote_servers>
	  
    <networks>
        <ip>::/0</ip>
    </networks>

    <!-- zookeeper集群节点 -->
    <zookeeper-servers>
        <node index="1">
            <host>192.168.0.81</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>192.168.0.102</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>192.168.0.103</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>

    <!--压缩策略-->
    <clickhouse_compression>
        <case>
            <min_part_size>10000000000</min_part_size>
            <min_part_size_ratio>0.01</min_part_size_ratio>
            <method>lz4</method>
        </case>
    </clickhouse_compression>

3.2.2 不同之处

 <!-- 定义该clickhouse实例存放什么 -->
    <macros>
	          <!-- 几号分片 -->
        <shard>01</shard>
			  <!-- 1分片的2副本 -->
        <replica>集群名-01-2</replica>
    </macros>
	
	

3.3拷贝配置文件做第二个实例 (所有机器)

3.3.1config.xml拷贝一份config1.xml

#修改为第二个实例所需 
<log>/var/log/clickhouse-server/clickhouse-server*.log</log>
    <errorlog>/var/log/clickhouse-server/clickhouse-server0*.err.log</errorlog>
    <http_port>8*23</http_port>
    <tcp_port>9*00</tcp_port>
    <mysql_port>9*04</mysql_port>
    <interserver_http_port>9*09</interserver_http_port>
    <path>/data/database/clickhouse*/</path>
    <tmp_path>/data/database/clickhouse*/tmp/</tmp_path>
    <include_from>/etc/clickhouse-server/metrika*.xml</include_from>

3.3.2metrika拷贝一份metrika1.xml

修改的部分应该与上方配置相同,该实例对应的是哪个分片哪个副本

#81的应为 1分片1副本 3分片1副本 其中选一
	<macros>
        <shard>01</shard>
        <replica>cluster01-01-1</replica>
  </macros>
  <macros>
        <shard>03</shard>
        <replica>cluster01-03-1</replica>
  </macros>
  
  #102的应为 1分片2副本 2分片1副本 其中选一
	<macros>
        <shard>01</shard>
        <replica>cluster01-01-2</replica>
  </macros>
  <macros>
        <shard>03</shard>
        <replica>cluster01-02-1</replica>
  </macros>
  
   #103的应为 2分片2副本 3分片2副本 其中选一
	<macros>
        <shard>01</shard>
        <replica>cluster01-02-2</replica>
  </macros>
  <macros>
        <shard>03</shard>
        <replica>cluster01-03-2</replica>
  </macros>

3.4修改启动配置信息 (所有机器)

添加第二个实例的启动配置信息

cp /etc/systemd/system/clickhouse-server.service /etc/systemd/system/clickhouse-server1.service
sudo vim /etc/systemd/system/clickhouse-server1.service
修改一行即可
/**
ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-server.pid
*/
改为
ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config1.xml --pid-file=/run/clickhouse-server/clickhouse-server1.pid

4.启动并查看 (所有机器)

#第一种方式启动
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
clickhouse-server --config-file=/etc/clickhouse-server/config1.xml

#第二种方式启动
systemctl status clickhouse-server
#把2号文件权限更改为clickhouse
systemctl status clickhouse-server1

#查看
systemctl status clickhouse-server
systemctl status clickhouse-server1
#查看端口
netstat -nlutp

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:33:51  更:2021-07-24 11:35:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/6 21:59:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码