1. 程式人生 > >ElasticSearch6.2.4(20)——Elasticsearch window叢集搭建

ElasticSearch6.2.4(20)——Elasticsearch window叢集搭建

master:elasticsearch.yml

cluster.name: my-application
node.name: node-1
node.master: true
node.data: false

path.data: D:\elasticsearch\esCloud\data
path.logs: D:\elasticsearch\esCloud\log

bootstrap.memory_lock: true
bootstrap.system_call_filter: false

network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.timeout: 3s

node.max_local_storage_nodes: 3

slave:elasticsearch.yml

cluster.name: my-application
node.name: node-2
node.master: true
node.data: true

path.data: D:\elasticsearch\esCloud\data
path.logs: D:\elasticsearch\esCloud\log

bootstrap.memory_lock: true
bootstrap.system_call_filter: false

network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.timeout: 3s

node.max_local_storage_nodes: 3

slave:elasticsearch.yml

cluster.name: my-application
node.name: node-3
node.master: true
node.data: true

path.data: D:\elasticsearch\esCloud\data
path.logs: D:\elasticsearch\esCloud\log

bootstrap.memory_lock: true
bootstrap.system_call_filter: false

network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9302

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.timeout: 3s

node.max_local_storage_nodes: 3
cluster.name:叢集名稱
node.name:節點名稱
node.master:有資格成為master節點
node.data:資料節點
path.data:資料存放目錄,可以是陣列形式
path.logs:日誌存放目錄,可以是陣列形式
bootstrap.memory_lock:如果java虛擬機器(JVM)開啟時初始堆大小(heap size)和最大值不相等,那麼在系統使用中重設堆大小將很容易被停止。為了避免重設被停止,最好在開啟java虛擬機器時將初始堆大小和最大值設定為相同值。另外,如果bootstrap.memory_lock是開啟的即被設定為true,那麼java虛擬機器將會在開啟時鎖定堆大小。如果初始堆大小不等於最大堆大小,在重設之後將不會將所有堆鎖定在記憶體中。為了通過堆大小檢查(heap size check),你必須配置堆大小,一般通過jvm.options進行設定。當java虛擬機器做主要垃圾回收時它將涉及堆記憶體的每個頁。如果這些頁被換出磁碟那麼他們將進入到記憶體中。那造成了Elasticsearch會使用更多的服務請求從而造成了磁碟故障。這有不同的方式對系統配置從而阻止頁置換。一種方式是通過請求java虛擬機器鎖定記憶體中的堆大小在Unix是通過mlockall,Windows中是通過virtual lock。這種方式是通過將Elasticsearch的bootstrap.memory_lock值設定為true實現的。然後,這種方式是通過Elasticsearch進行設定的,但是Elasticsearch可能不能鎖定堆記憶體(e.g. elasticsearch的使用者沒有memlock unlimited的許可權)。鎖定記憶體的驗證是判斷bootstrap.memory_lock是否被設定為true,來保證java虛擬機器可以鎖定堆記憶體。為了通過記憶體鎖定檢測,你必須要設定mlockall即將bootstrap.memory_check的值設定為true。
bootstrap.system_call_filter: false:系統呼叫過濾器,建議禁用該項檢查,因為很多檢查項需要Linux 3.5以上的核心。否則會報以下錯誤
network.host:繫結監聽IP
http.port:設定對外服務的http埠,預設為9200 
transport.tcp.port:設定節點間互動的tcp埠,預設是9300

使用head等外掛監控叢集資訊,需要開啟以下配置項
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

discovery.zen.ping.unicast.hosts:節點列表

提高一點以應對網路不好的時候,防止腦裂
discovery.zen.minimum_master_nodes: 演算法(節點數/2)+1取整
discovery.zen.ping.timeout:

node.max_local_storage_nodes: 同一臺機器上面搭建叢集修改設定節點數