elasticsearch在centos上的学习过程1
一、elasticsearch介绍
elasticsearch是一个开源的分布式搜索引擎,其提供了简易的Restful API,可以轻松的横向扩展(通过加机器即节点来解决存储容量不足的问题)。
优点:
1、海量的数据分析引擎
2、站内搜索引擎3、可作数据仓库
二、elasticsearch安装
为了结合elasticsearch插件的版本问题,elasticsearch的版本从2.x直接升级到了5.x,最新版本为5.6.0。
这里使用elasticsearch 5.x 的版本,因为5.x之后的版本性能有很大提升,如:查询速度加快、硬盘占用下降、内存使用下降。
下载安装步骤如下:
(1)进入官网(地址:www.elastic.co),点击右上角downloads
(2)拖动到下面找到该图标点击Download
(3)选择下载tar包
(4)到对应目录找到下载的 elasticsearch-5.6.0.tar.gz
执行如下操作解压并进入目录
tar zxvf elasticsearch-5.6.0.tar.gz
cd elasticsearch-5.6.0
(5)执行命令,启动elasticsearch : ./bin/elasticsearch
在浏览器*问localhost:9200(默认端口为9200),看到如下页面表示安装成功
elasticsearch-head为elasticsearch提供了友好的操作界面,可以进行数据检索
(1)进入github,搜索elasticsearch-head,并选择mobz/elasticsearch-head这个项目
(2)点击Clone or download ,下载该项目的zip包(elasticsearch-head-master.zip)
(3)需要安装npm命令 : yum install npm
然后通过 node -v 命令查看版本,需要 >= 6.0
这里我的版本为 6.11.1 满足条件
(4)解压zip包 unzip
elasticsearch-head-master.zip
通过 npm run start 命令启动head服务,默认端口为9100
在浏览器访问如下地址查看启动情况
这里还未与elasticsearch关联,所以显示未连接
四、elasticsearch-head与elasticsearch结合,并构建分布式集群环境
(1)要想elastcisearch-head能够连接访问到对应的elastcisearch
需要修改 elasticsearch-5.6.0/config/elastcisearch.yml这个配置文件
在该文件最后加(注意空格)
http.cors.enabled: true
http.cors.allow-origin: "*"
如下:
(2)通过-d配置使elasticsearch在后台执行 elasticsearch-5.6.0/bin/elasticsearch -d
此时访问elasticsearch-head的时候可以看到green:表示正常连接。
若为yellow:健康但不是很好;red:不健康,不可用
(3)分布式集群构建
这里我创建三个节点的集群,其中一个master节点(老大),以及两个slave节点(小弟)
因为这里三个节点我都部在同一个机器上,所以需要拷贝三份elasticsearch目录,分别命名为elasticsearch1、elasticsearch2、elasticsearch3,且ip都为127.0.0.1
a、master节点,需要在elasticsearch1/config/elasticsearch.yml文件最后添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: cloud -- 集群的名字
node.name: themaster -- 该节点名字
node.master: true -- 是否为master节点
network.host: 127.0.0.1 -- 绑定ip,默认端口为9200
b、slave1节点,需要在elasticsearch2/config/elasticsearch.yml文件最后添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: cloud -- 必须同上
node.name: thesalve1
network.host: 127.0.0.1
http.port: 9201 -- 因为在同一台机器布,所以端口不能冲突,设置为9201
discovery.zen.ping.unicast.hosts: ["127.0.0.1"] -- 集群master的ip
c、slave2节点,需要在elasticsearch3/config/elasticsearch.yml文件最后添加内容除了节点名,其他同上。
注意:如果启动的时候报如下错:
failed to send join request to master [{themaster}{dDZhqzZxQAaRQYwSv7HceA}{M3KuhdgwSMadpMe-3Q3NYw}{127.0.0.1}{127.0.0.1:9300}], reason [RemoteTransportException[[themaster][127.0.0.1:9300][internal:discovery/zen/join]];
nested: IllegalArgumentException[can't add node {thesalve2}{dDZhqzZxQAaRQYwSv7HceA}{xkqcn_k3RXWYZQ9r4dlbOA}{127.0.0.1}{127.0.0.1:9301}, found existing node {themaster}{dDZhqzZxQAaRQYwSv7HceA}{M3KuhdgwSMadpMe-3Q3NYw}{127.0.0.1}{127.0.0.1:9300} with the same
id but is a different node instance];
因为在复制目录的时候把别的elasticsearch目录含有的data拷贝过来了,删除elasticsearch目录下的data文件即可启动。
启动完三个节点之后,在elasticsearch-head上可以看到有三个节点,如图
其中第一个左边带星的为master节点,另外两个为slave