一、軟件版本
操作系統:CentOS-6.5-x86_64
ES版本:5.0
主機:192.168.63.246
主機: 192.168.63.242
二、部署環境規劃:
1、需求:jdk版本:open-jdk.1.8
[root@www config]# java-version
openjdk version"1.8.0_101"
OpenJDK Runtime Environment(build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM(build 25.101-b13, mixed mode)
2、下載解壓安裝即可:
[root@www src]# cd /test/
[root@www test]# tar zxvf elasticsearch-5.0.0.tar.gz
3、具體配置:
[root@www elasticsearch-5.0.0]# cd config/
[root@www config]# vim elasticsearch.yml
配置解析:
集羣:
cluster.name: es-log
節點:
node.name: log-1 ##節點保持唯一性。
數據和日誌存放目錄:
#path.data: /path/to/data
#path.logs: /path/to/logs ##默認當前目錄下,可以修改
是否使用swap:
bootstrap.memory_lock:true
廣播配置:
discovery.zen.ping.unicast.hosts: ["192.168.63.242","192.168.63.247"]
discovery.zen.minimum_master_nodes: 1
其他相關係統設置:
Vim /etc/sysctl.conf
vm.max_map_count= 262144
sysctl –p
系統打開文件數配置:
[root@controller config]# vim /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
修改用戶打開的線程數,因爲es的段要經常打開文件控制索引:
vim /etc/security/limits.d/90-nproc.conf
* soft nproc 2048
切換到普通用戶啓動:
Su – dashuju
[dashuju@www bin]$ ./elasticsearch
#####要是提示,報一些沒有啓動的目錄,直接創建即可,但是想寫入日誌和數據必須是普通用戶有寫入權限#####
啓動之後:測試有如下顯示錶示已經安裝成功。
[root@www bin]# curl -XGET'192.168.63.242:9200'
{
"name" :"log-1",
"cluster_name" :"es-log",
"cluster_uuid" :"_na_",
"version" : {
"number" :"5.0.0",
"build_hash" :"253032b",
"build_date" :"2016-10-26T04:37:51.531Z",
"build_snapshot" :false,
"lucene_version" :"6.2.0"
},
"tagline" : "YouKnow, for Search"
}
4、集羣啓動設置:
加入說只有一個節點,那麼es就當做自己是一個集羣。
一個節點(node)就是一個Elasticsearch實例,而一個集羣(cluster)由一個或多個節點組成,它們具有相同的cluster.name,它們協同工作,分享數據和負載。
當加入新的節點或者刪除一個節點時,集羣就會感知到並平衡數據。
1、我們已經啓動了192.168.63.242這臺機器,我們可以現在創建一條索引,然後查看一下單集羣的狀態:
[root@www elasticsearch-5.0.0]# curl -XPOST'192.168.63.242:9200/test/name/1' -d '
{
"name":"xiaoluo"
}'
####創建一條test的索引,type爲name,id=1
2、然後我們查看一下集羣當前的狀態:
ticsearch-5.0.0]# curl -XGET'192.168.63.242:9200/_cluster/health?pretty'
{
"cluster_name" :"es-log",
"status" : "yellow",
}
主要看一下集羣的幾個狀態:
green 所有主要分片和複製分片都可用
yellow 所有主要分片可用,但不是所有複製分片都可用
red 不是所有的主要分片都可用
#####可以看到我們現在顯示爲:yellow的,因爲我們只有主分片,而沒有複製分片的。
現在我們啓動配置好192.168.63.246這個節點:
cluster.name: es-log
node.name: log-2
bootstrap.memory_lock: true
network.host: 192.168.63.246
discovery.zen.ping.unicast.hosts: ["192.168.63.246","192.168.63.242"]
discovery.zen.minimum_master_nodes: 1
可以看到相關啓動日誌:
我們知道已經加入這個集羣了,現在我們看一下集羣的相關狀態:
[root@www elasticsearch-5.0.0]# curl -XGET '192.168.63.242:9200/_cluster/health?pretty'
{
"cluster_name" :"es-log",
"status" :"green",
}
可以看到集羣已經變成綠色,說明我們複製分片是已經可以使用了的,我們在192.168.63.246上面查看一下我們剛剛創建的數據看:
[root@www elasticsearch-5.0.0]# curl -XGET'192.168.63.246:9200/test/name/1?pretty'
{
"_index" :"test",
"_type" :"name",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"name" :"xiaoluo"
}
}
############可以看到數據已經被複制到192.168.63.246上面了。
後面我們測算成功之後,我們集羣的配置要稍作修改:
discovery.zen.minimum_master_nodes: 2 ###開始設置成1是爲了一臺測試,宣講我們推薦大於1臺。