Elastic認證叢集環境準備
1. 考試是什麼環境?
考試是在 centos7 環境下考試的。
- 不同的題庫會有不同的試題,但大致都需要3-4個獨立的叢集環境。
- 有的叢集1-2個節點
- 有的叢集3-4個節點
考慮到很多同學沒有參加過類似的psi的線上考試,所以多看幾遍:心裡有數,考試才不緊張。 - Elastic文件的位置,考試不允許google、bing等搜尋,文件是唯一的參考方式。常見的操作建議爛熟於心,稍微複雜點的建議對文件爛熟於心,直接o(1)時間鎖定文件。
- 考試環境介紹,包含:主機節點訪問方式,叢集介紹等。
2. 我們該如何準備環境?
2.1 自己本機windows搭建虛擬機器環境
注意:虛擬機器選型:centos 7,其他不考慮。
2.2 自己本機部署docker
藉助:docker compose實現。
2.3 購買雲伺服器。
建議:最小2核CPU,4GB記憶體。
能搭建兩個節點的叢集。
可以用來模擬:
- 1個叢集兩個節點。
常見考題:分片分配感知、叢集主/副本分片異常等故障診斷等。 - 2個獨立節點的叢集。
常見考題:跨叢集檢索、機架awareness分片分配等。
其他相關DSL(增、刪、改、查、聚合、Mapping/template/analyzer、xpack安全等)一個節點的叢集就能搞定。
3. Elasticsearch單節點叢集環境部署
3.1 Elasticsearch 7.9.3 版本下載地址
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
選擇 Linux版本,就可以完成下載。tar包或rpm包
3.2 將壓縮包匯入Centos7 機器環境。
3.3 基礎配置準備(非考試重點)
3.3.1 新建elastic賬號和使用者組。
• Elasticsearch不支援root賬戶執行。
• 考試的時候,賬號名和使用者組是elastic
。
centos 7 執行命令:
useradd elastic
3.3.2 解壓壓縮包得elasticsearch-7.9.3檔案
- 將elasticsearch-7.9.3檔案拷貝到指定路徑,路徑自己定義即可。
- 為檔案指定使用者和使用者組許可權
進入elasticsearch-7.2.0路徑,執行命令:
chown -R elastic:elastic ./*
3.3.3 修改檔案描述符數目
為什麼要修改?
- 原因1: Elasticsearch 在節點和 HTTP 客戶端之間進行通訊也使用了大量的套接字(注:sockets)。 所有這一切都需要足夠的檔案描述符。
- 原因2:許多現代的 Linux 發行版本,每個程式預設允許一個微不足道的 1024 檔案描述符。這對一個小的 Elasticsearch 節點來說實在是太低了,更不用說一個處理數以百計索引的節點。
步驟1: 設定環境變數。
vim /etc/profile
ulimit -n 65535
用以設定同一時間開啟的檔案數的最大值為65535。
source /etc/profile
使得命令生效。
步驟2: 修改limits.conf配置檔案。
在:/etc/security/limits.conf 增加
* soft nofile 65536
* hard nofile 65536
用來限制開啟檔案數65535
步驟3: 驗證是否成功。
切換到elastic使用者,使用ulit -a 檢視是否修改成功。
ulimit -a
3.3.4 修改 最大對映數量 MMP
Elasticsearch 對各種檔案混合使用了 NioFs( 非阻塞檔案系統)和 MMapFs ( 記憶體對映檔案系統)。
請確保你配置的最大對映數量,以便有足夠的虛擬記憶體可用於 mmapped 檔案。這可以暫時設定:
sysctl -w vm.max_map_count=262144
或者你可以在 /etc/sysctl.conf
通過修改 vm.max_map_count
永久設定它。
[root@4ad config]# tail -f /etc/sysctl.conf
vm.max_map_count=262144
3.4 elasticsearch.yml 核心配置(考試會考)
cluster.name: cluster1
node.name: node1
node.master: true
node.data: true
cluster.remote.connect: false
network.host: 172.17.0.17
http.port: 9200
transport.port:9300
discovery.seed_hosts: ["172.17.0.17:9300"]
cluster.initial_master_nodes: ["172.17.0.17:9300"]
注意:考試的時候就基本如上所示,沒有任何註釋。
• cluster.name: 叢集名稱,唯一確定一個叢集。
• node.name:節點名稱,一個叢集中的節點名稱是唯一固定的,不同節點不能同名。
• node.master: 主節點屬性值
• node.data: 資料節點屬性值
• network.host: 本節點的ip
• http.port: 本節點的http埠
• transport.port:9300——叢集之間通訊的埠,若不指定預設:9300
• discovery.seed_hosts:節點發現需要配置一些種子節點,與7.X之前老版本:disvoery.zen.ping.unicast.hosts類似,一般配置叢集中的全部節點
• cluster.initial_master_nodes:指定叢集初次選舉中用到的具有主節點資格的節點,稱為叢集引導,只在第一次形成叢集時需要。
3.4 章節的考點包含但不限於:
- 叢集節點配置
區分並會配置:master,data,coordinate,ingest等節點 - xpack安全配置
設定Elasticsearch安全屬性開關 - 節點自定義屬性(冷、熱等)冷熱架構叢集部署配置
3.5 jvm.option的設定
-Xms1g
-Xmx1g
這裡針對4GB記憶體的機器環境,預留分配2個節點,所以堆記憶體大小:設定了1GB。
- 實際生產環境中計算公式:min(機器記憶體的一半,32GB記憶體)。也就是說:取機器環境記憶體的一半和32GB記憶體之間的小值。
- 實戰中經常會遇到堆記憶體設定不合理的問題,
- 具體原理推薦閱讀:https://blog.csdn.net/laoyang360/article/details/79998974
3.6 啟動節點
實際考試中,一般kibana會啟動,elasticsearch叢集可能不啟動。
需要你:
• 第一步: ssh 登入到對應節點。
ssh node1
• 第二步:啟動 對應節點的Elasticsearch。
啟動方法1:後臺啟動
./elasticsearch -d
啟動方法2:非後臺啟動
能看到啟動日誌
./elasticsearch
4、Elasticsearch 雙節點或多節點叢集環境部署
僅說明兩個節點的配置,多節點雷同,不再贅述。
多節點elasticsearch.yml
4.1 節點1的配置如下:
cluster.name: cluster1
node.name: node1
node.master: true
node.data: true
node.ingest: true
network.host: 172.17.0.17
http.port: 9200
transport.port:9300
discovery.seed_hosts: ["172.17.0.17:9300","172.17.0.17:9301"]
cluster.initial_master_nodes: ["172.17.0.17:9300","172.17.0.17:9301"]
4.2 節點2的配置如下:
cluster.name: cluster1
node.name: node2
node.master: true
node.data: true
node.ingest: true
network.host: 172.17.0.17
http.port: 9201
transport.port:9301
discovery.seed_hosts: ["172.17.0.17:9300","172.17.0.17:9301"]
cluster.initial_master_nodes: ["172.17.0.17:9300","172.17.0.17:9301"]
核心點:
機器資源有限,1臺機器部署2-3甚至更多節點,如何通訊?
- 設定相同ip
- 設定不同的http和tcp埠以區分不同節點
- 本質是偽叢集
注意切記:實際業務線上環境,建議所有Elasticsearch節點都是獨立節點,不要部署其他程式、其他後臺程式,以提高效能。如果記憶體足夠大,比如:128GB、256GB,單節點是浪費,建議通過虛擬化方式切分開。
5、kibana環境部署
5.1 下載安裝包
https://www.elastic.co/cn/downloads/past-releases#kibana
如圖所示:
5.2 解壓安裝包
5.3 修改kibana.yml配置
- 設定kibana埠
- 設定所在主機ip
- 指定Elasticsearch連線地址
server.port: 5601
server.host: "172.17.0.17"
elasticsearch.hosts: ["http://172.17.0.17:9200"]
5.4 啟動kibana(基本不考)
注意:不需要修改kibana的使用者或者使用者組許可權。
nohup ./bin/kibana --allow-root & > /dev/null 2>&1
6. 注意事項
6.1 我上面講的都是考試實際考試的環境。
6.2 啟動 + 引數的方式 也可以啟動叢集,考試沒有明確指定啟動方式。
如下 也可以啟動叢集。
bin/elasticsearch -E node.name=cluster0node -E cluster.name=cluster0 -E path.data=cluster0_data -E discovery.type=single-node -E http.port=9200 -E transport.port=9300
直觀的角度,便於設定和排查的角度,推薦用本文的1-5章節內容完成考試。
加油!
更多Elastic認證細節內容,請報名@毅銘天下
相關文章
- 大資料叢集搭建 – 1. CDH叢集安裝 – 環境準備大資料
- (1)環境準備
- Zookeeper 叢集環境搭建
- Flutter(一) 環境準備Flutter
- 0. 準備環境
- es 5.5.3叢集環境搭建
- 【環境搭建】RocketMQ叢集搭建MQ
- hadoop叢集環境搭建Hadoop
- Glassfish叢集環境的搭建
- Oracle 12cR1 RAC叢集安裝(一)--環境準備Oracle
- Oracle安裝——環境準備Oracle
- 流機制環境準備
- mongodb叢集搭建及配置安全認證MongoDB
- Redis叢集環境搭建實踐Redis
- 12. Redis叢集環境搭建Redis
- HADOOP SPARK 叢集環境搭建HadoopSpark
- Docker構建redis叢集環境DockerRedis
- Redis叢集環境安裝指南Redis
- Elastic Search 7.x 叢集配置AST
- 【MyBatis原始碼分析】環境準備MyBatis原始碼
- FASTAPI 系列 01-環境準備ASTAPI
- ZooKeeper 系列(二)—— Zookeeper單機環境和叢集環境搭建
- 高可用叢集環境搭建-留檔
- Mac 環境下 Redis 叢集的搭建MacRedis
- 分散式系統與叢集環境分散式
- k8s——搭建叢集環境K8S
- 1.6.4.2. 準備作業系統認證作業系統
- flask之旅: 開發前環境準備Flask
- 越獄環境下使用Cycript(準備)
- 01_Rust開發環境準備Rust開發環境
- Hadoop叢集機器的SSH認證配置Hadoop
- Windows 10環境簡單搭建ELK叢集Windows
- Hadoop叢集環境啟動順序Hadoop
- Docker環境搭建redis叢集(主從模式)DockerRedis模式
- CE認證需準備的資料(轉載)
- 【linux】驅動-1-環境準備Linux
- PHP基礎教程-02 搭建環境準備PHP
- 從零自學Hadoop(02):環境準備Hadoop