linux 下部署單片 elasticsearch 服務
elasticsearch 需要java環境。另一篇文章有配置java8環境說明。
1: 首先下載 gpg簽名文件:rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2:添加elasticsearch的yum源: vim /etc/yum.repo.d/elasticsearck.repo 添加如下:
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
3: yum clean all ; yum repolist 刷新yum緩存
4: 安裝elasticsearch ; yum -y install elasticsearch
5: 更改配置文件: vim /etc/elasticsearch/elasticsearch.yml
1.幾個基本名詞
index: es裏的index相當於一個數據庫。
type: 相當於數據庫裏的一個表。
id: 唯一,相當於主鍵。
node:節點是es實例,一臺機器可以運行多個實例,但是同一臺機器上的實例在配置文件中要確保http和tcp端口不同(下面有講)。
shards:代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節點上,構成分布式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。
replicas:代表索引副本,es可以設置多個索引的副本,副本的作用一是提高系統的容錯性,當個某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
cluster.name: elasticsearch
#這是集群名字,我們 起名為 elasticsearch
node.name: "es-node1"
#節點名字。
discovery.zen.minimum_master_nodes: 2
#指定集群中的節點中有幾個有master資格的節點。
#對於大集群可以寫3個以上。
discovery.zen.ping.timeout: 40s
#默認是3s,這是設置集群中自動發現其它節點時ping連接超時時間,
#為避免因為網絡差而導致啟動報錯,我設成了40s。
discovery.zen.ping.multicast.enabled: false
#設置是否打開多播發現節點,默認是true。
network.bind_host: 192.168.137.100
#設置綁定的ip地址,這是我的master虛擬機的IP。
network.publish_host: 192.168.137.100
#設置其它節點和該節點交互的ip地址。
network.host: 192.168.137.100
#同時設置bind_host和publish_host上面兩個參數。
discovery.zen.ping.unicast.hosts: ["192.168.137.100", "192.168.137.101","192.168.137.100:9301"]
#discovery.zen.ping.unicast.hosts:["節點1的 ip","節點2 的ip","節點3的ip"]
#指明集群中其它可能為master的節點ip,
#以防es啟動後發現不了集群中的其他節點。
#第一對引號裏是node1,默認端口是9300,
#第二個是 node2 ,在另外一臺機器上,
#第三個引號裏是node3,因為它和node1在一臺機器上,所以指定了9301端口。
啟動服務: /etc/init.d/elasticsearch start
測試: curl ‘http://ip:9200‘
.....未完待續
linux 下部署單片 elasticsearch 服務