clickhouse高可用可拓展部署

clickhouse高可用&可拓展部署

1.部署架構

1.1高可用架構

1.2硬件資源

部署服務

節點名稱

節點ip

核數

內存

磁盤

zookeeper

zk-01

/

4c

8G

100G

zk-02

/

4c

8G

100G

zk-03

/

4c

8G

100G

clikehouse

ck-01

/

32c

128G

2T

ck-02

/

32c

128G

2T

ck-03

/

32c

128G

2T

ck-04

/

32c

128G

2T

1.3擴容

1.3.1節點擴容

新增一個分片,2個副本,擴容后的架構圖如下:

1.3.2資源擴容

Cpu和內存直接在云平臺上擴容,磁盤使用lvm擴容數據目錄大小

1.4 混合部署

1.5 負載均衡&讀寫分離

采用chproxy來做負載均衡和讀寫分離,具體架構如下:

2.安裝部署

2.1部署規劃

采用1.4混合部署方式,3臺虛擬機,每個節點部署2個clickhouse實例和一個zookeeper。另外增加一臺虛擬機用來部署chproxy,用做負載均衡和讀寫分離。具體部署規劃如下:

部署服務

實例名稱

節點ip

端口

備注

zookeeper

zk-01

10.9.135.37

2181

zk-02

10.9.135.133

2181

zk-03

10.9.135.36

2181

clikehouse

ck-01

10.9.135.37

8123

分片1副本1

ck-02

10.9.135.133

8123

分片2副本1

ck-03

10.9.135.36

8123

分片3副本1

ck-04

10.9.135.133

8223

分片1副本2

ck-05

10.9.135.36

8223

分片2副本2

ck-06

10.9.135.37

8223

分片3副本2

chproxy

chproxy

10.9.135.60

9090

2.2準備工作

  1. --修改hostname  
  2. sudo hostnamectl set-hostname ck01  
  3. sudo hostnamectl set-hostname ck02  
  4. sudo hostnamectl set-hostname ck03  
  5.   
  6. --hosts配置  
  7. 10.9.135.37 ck01  
  8. 10.9.135.133 ck02  
  9. 10.9.135.36 ck03  
  10.   
  11. --關閉防火墻  
  12. # 1.關閉防火墻   
  13. service iptables stop   
  14. chkconfig iptables off  
  15. chkconfig ip6tables off  
  16.    
  17. # 2.關閉selinux  
  18. vi /etc/sysconfig/selinux  
  19. 修改內容:【SELINUX=disabled】  
  20.       
  21. --免密登錄  
  22. 1、在原機器生成RSA密鑰和公鑰  
  23. ssh-keygen -q -t rsa  -N "" -f  ~/.ssh/id_rsa  
  24. 2、然后將~/.ssh/id_rsa.pub內容粘貼到目標機器的~/.ssh/authorized_keys  

2.3jdk安裝部署

  1. --安裝包解壓并修改配置文件:  
  2. export JAVA_HOME=/usr/java/jdk1.8  
  3. export JRE_HOME=$JAVA_HOME/jre  
  4. export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH  
  5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 

2.4zookeeper安裝部署

  1. --安裝zk  
  2. wget http://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz  
  3. mv /data/apache-zookeeper-3.6.0-bin /usr/local/zookeeper  
  4. --創建目錄:  
  5. mkdir -p /data/zookeeper/data  
  6. mkdir -p /data/zookeeper/logs  
  7. 機器1指定節點號1,以此類推:  
  8. echo '1' > /data/zookeeper/data/myid  
  9. 修改zoo.cfg文件,內容如下:  
  10. --------------------------------------------------  
  11. # 基本時間單位, 毫秒值  
  12. tickTime=2000  
  13.   
  14. # tickTime的倍數,follower和leader之間的最長心跳時間  
  15. initLimit=30000  
  16.   
  17. # tickTime的倍數,leader和follower之間發送消息, 請求和應答的最大時間  
  18. syncLimit=10  
  19. # 數據目錄  
  20. dataDir=/data/zookeeper/data  
  21.   
  22. # 日志目錄,如果沒設定,默認和dataDir相同  
  23. dataLogDir=/data/zookeeper/logs  
  24.   
  25. # 監聽client連接的端口號  
  26. clientPort=2181  
  27.   
  28. # zookeeper最大連接  
  29. maxClientCnxns=2000  
  30.   
  31. # 最大的會話超時時間  
  32. maxSessionTimeout=60000000  
  33.   
  34. # 保留的文件數目,默認3個  
  35. autopurge.snapRetainCount=10  
  36.   
  37. # 自動清理snapshot和事務日志,清理頻率,單位是小時  
  38. autopurge.purgeInterval=1  
  39.   
  40. # 等待處理的最大請求數量  
  41. globalOutstandingLimit=200  
  42.   
  43. # 日志文件大小Kb,切換快照生成日志  
  44. preAllocSize=131072  
  45.   
  46. #兩次事務快照之間可執行事務的次數,默認的配置值為100000  
  47. snapCount=3000000  
  48.   
  49. # leader是否接受client請求,默認為yes即leader可以接受client的連接,當節點數為>3

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42169.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42169.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42169.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Qt] 控件的QSizePolicy屬性選項

在Qt中,QSizePolicy是一個非常重要的枚舉類,它定義了控件(widgets)在布局管理(layout management)中的大小調整策略。這些策略決定了當控件的父布局或窗口大小發生變化時,控件應該如何調整自身的…

java wait, notify, notifyAll三個方法

wait(), notify(), 和 notifyAll() 是 Java 中用于線程間通信和同步的方法,它們都是 Object 類中的方法,而非 Thread 類的方法。這些方法通常與 synchronized 關鍵字一起使用,用于實現線程之間的協作和互斥訪問共享資源。 關于生產者-消…

PsQuerySystemDllInfo逆向

typedef struct _SYSTEM_DLL_ENTRY {ULONG64 type;UNICODE_STRING FullName;PVOID ImageBase;PWCHAR BaseName;PWCHAR StaticUnicodeBuffer; }SYSTEM_DLL_ENTRY, * PSYSTEM_DLL_ENTRY; 返回值為上面的結構體指針 驗證 type: fullname inagebase: pwchar basename PWCHAR …

C# 工廠模式(Factory Pattern)

工廠模式用于創建對象而不將具體類的代碼與客戶端代碼混合在一起,從而使一個類的實例化延遲到其子類。 示例代碼: // 抽象產品 public interface IProduct { void Use(); } // 具體產品A public class ConcreteProductA : IProduct { pub…

Linux常用面試題

系統部分 1、在linux系統中,獲取命令幫助的方法有哪些? man (查看手冊頁) help(查看內部命令) --help(查看外部命令) 2、列舉find命令的用法?&#xff08…

QTableWidget表頭添加全選框

前言 QTableWidget表頭不能直接設置復選框,setCheckState不適用,所以直接使用設置圖片的方法最方便快捷,準備兩個圖片,分別為選中狀態和未選中狀態。 1.設置復選框列 設置第一列為復選框列,其他列正常顯示內容&…

大模型實戰:RAG的應用探索

自chatgpt卷過來,我們‘打開’了視野,發現‘什么都想要’成為了可能。但是隨著國內開源大模型的開放,越來越多人覺得通用LLM的價值很低(可能是商業利益的驅使)。大家對技術的追逐有變成了應用變現的需求。好吧&#xf…

日常的網絡雜記

網絡雜記 vlan 交換機配到一個vlan下面就可以互通,用來做物理上的網段隔離可以 ①access模式只能承載一個vlan的流量。如果兩個交換機上只有一個vlan,那么兩個交換機之間肯定能通信。 ②即使兩個交換機上有2個或2個以上的valn,但你把交換機…

Windows 11文件資源管理器選項卡的4個高級用法,肯定有你喜歡的

作為一個每天使用文件資源管理器來管理我的工作流程的人,選項卡幫助我為處于不同完成階段的工作創建了不同的文件夾。以下是我使用選項卡提高工作效率的最佳技巧。 打開和關閉選項卡 假設你的計算機上安裝了Windows 11的最新更新,請按Ctrl+E打開文件資源管理器。在我發現“…

WordPress的性能優化有哪些方法?

WordPress的性能優化方法主要包括以下幾個方面: 1. 使用緩存插件:緩存插件可以降低服務器負載,提高網站加載速度。常用的緩存插件有WP Rocket、WP Fastest Cache和Cache Enabler等。 2. 代碼壓縮和整合:通過壓縮JavaScript、CSS…

可驗證算法在招投標領域的專家“盲抽”中的標段識別碼加密應用研究

摘要 在招投標過程中,標段(包)識別碼的安全性至關重要。本文提出了一種基于可驗證算法的標段識別碼加密方法,以確保其在專家“盲抽”過程中的保密性和可信性。通過對不同表的標段識別碼進行全量加密,并通過匹配驗證其…

煙草企業如何在數字化轉型中實現從“傳統”到“智能”的跨越?

在數字化浪潮的席卷下,各行各業都在經歷著深刻的變革。作為國民經濟的重要組成部分,煙草行業正處于高質量發展的重要階段,加快信息系統國產化升級,對于提升行業競爭力、強化信息安全保障具有重要戰略意義。 達夢數據積極助力煙草行…

FPGA_GTX:簡要版

1. GTX介紹 Xilinx FPGA的GT意思是Gigabyte Transceiver。通常稱呼為Serdes、高速收發器。GT在xilinx不同系列有著不同的產品,從7系列到UltraScale系列分別有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整體結構上類似,為了支持越來越高的line rate&#xff…

PostgreSQL主從復制:打造高可用數據庫架構的秘籍

PostgreSQL主從復制:打造高可用數據庫架構的秘籍 在當今的數字化時代,數據的安全性和可靠性是企業最為關注的問題之一。PostgreSQL作為一種強大的開源關系型數據庫管理系統,提供了多種高可用性解決方案,其中主從復制是最為常用的…

嵌入式Linux系統編程 — 7.2 進程的環境變量

目錄 1 什么是進程的環境變量 2 環境變量的作用 3 應用程序中獲取環境變量 3.1 environ全局變量 3.2 獲取指定環境變量 getenv 4 添加/刪除/修改環境變量 4.1 putenv()函數添加環境變量 4.2 setenv()函數 4.3 unsetenv()函數 1 什么是進程的環境變量 每一個進程都有一…

Android觸摸事件分發關鍵點【筆記摘要】

觸摸事件分發:就是一個為了解決觸摸事件沖突而設置的機制 1.事件類型 ACTION_DOWN -> ACTION_UP / ACTION_CANCEL ACTION_DOWN -> ACTION_MOVE -> ACTION_MOVE -> ACTION_MOVE -> ACTION_UP / ACTION_CANCEL 這個取消事件ACTION_CANCEL它是一種特殊…

Hack The Box -- Blazorized

一、準備工作 端口掃描 詳細掃描 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-30 21:39 EDT Nmap scan report for 10.10.11.22 Host is up (0.26s latency).PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 80/tcp op…

Java后端開發(十三)-- Java8 stream的 orElse(null) 和 orElseGet(null)

orElse(null)表示如果一個都沒找到返回null。【orElse()中可以塞默認值。如果找不到就會返回orElse中你自己設置的默認值。】 orElseGet(null)表示如果一個都沒找到返回null。【orElseGet()中可以塞默認值。如果找不到就會返回orElseGet中你自己設置的默認值。】 區別就…

MyBatisPlus Service接口的繼承

介紹 Service接口 接口基礎了接口 IService&#xff0c;實現類實現就需要實現IService里的方法&#xff0c;但是MyBatisplus已經幫我們寫好了實現類&#xff0c;給我們的實現類繼承即可。 public interface IEmpService extends IService<Emp> { //其他業務方法.... }…

web學習筆記(八十)

目錄 1.小程序實現微信一鍵登錄 2. 小程序的授權流程 3.小程序配置vant庫 4.小程序配置分包 5.小程序配置獨立分包 6.小程序分包預下載 1.小程序實現微信一鍵登錄 要先實現小程序一鍵登錄首先我們需要給按鈕設置一個綁定事件&#xff0c;然后在綁定事件內部通過wx.login…