ElasticSearch安装和配置

ElasticSearch安装和配置详情
首先是安装:基于mac系统
网站可能有点慢,耐心等候!!

点击下载tar文件
1.单实例安装:
解压之后进入bin目录:./elasticsearch启动服务 如果想在后台以守护进程模式运行,添加 -d 参数。

看到以上信息表明启动成功!
浏览器中中输入:127.0.0.1:9200

上述结果都出现表示服务正常运行
集群健康 让我们以基本的健康检查作为开始,我们可以利用它来查看我们集群的状态。此过程中,我们使用curl,当然,你也可以使用任何可以创建HTTP/REST 调用的工具。我们假设我们还在我们启动Elasticsearch的节点上并打开另外一个shell窗口。 要检查集群健康,我们将使用_cat API。需要事先记住的是,我们的节点HTTP的端口是9200: curl 'localhost:9200/_cat/health?v' 相应的响应是:


可以看到,我们集群的名字是“elasticsearch”,正常运行,并且状态是绿色。 当我们询问集群状态的时候,我们要么得到绿色、黄色或红色。绿色代表一切正常(集群功能齐全),黄色意味着所有的数据都是可用的,但是某些复制没有被分配 (集群功能齐全),红色则代表因为某些原因,某些数据不可用。注意,即使是集群状态是红色的,集群仍然是部分可用的(它仍然会利用可用的分片来响应搜索请 求),但是可能你需要尽快修复它,因为你有丢失的数据。 也是从上面的响应中,我们可以看到,一共有一个节点,由于里面没有数据,我们有0个分片。注意,由于我们使用默认的集群名字 (elasticsearch),并且由于Elasticsearch默认使用网络多播(multicast)发现其它节点,如果你在你的网络中启动了多 个节点,你就已经把她们加入到一个集群中了。在这种情形下,你可能在上面的响应中看到多个节点。 我们也可以获得节集群中的节点列表:
curl 'localhost:9200/_cat/nodes?v' 对应的响应是:

我们可以看到我们叫做“JOzgyFK”的节点,这个节点是我们集群中的唯一节点。
列出所有的索引 让我们看一下我们的索引: curl 'localhost:9200/_cat/indices?v' 响应是:

这个结果意味着,在我们的集群中,我们没有任何索引。
首先创建一个索引

然后列出所有索引

第二个命令的结果告知我们,我们现在有一个叫做customer的索引,并且它有5个主分片和1份复制(都是默认值),其中包含0个文档。 你可能也注意到了这个customer索引有一个黄色健康标签。回顾我们之前的讨论,黄色意味着某些复制没有(或者还未)被分配。这个索引之所以这样,是 因为Elasticsearch默认为这个索引创建一份复制。 由于现在我们只有一个节点在运行,那一份复制就分配不了了(为了高可用),直到当另外一个节 点加入到这个集群后,才能分配。一旦那份复制在第二个节点上被复制,这个节点的健康状态就会变成绿色

由于控制台管理不方便 需要安装一个插件,便于web端管理
2.elasticSearch-head插件安装教程
从https://github.com/mobz/elasticsearch-head下载ZIP包。
下载文件放到和elasticsearch同一目录
在以下目录
elasticsearch/config/elasticsearch.yml
添加代码

http.cors.enabled: true
http.cors.allow-origin: "*"
允许插件访问es
由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)
检查 node -v




安装head插件所依赖的包,使用npm run start 命令启动head
浏览器显示:



2.分布式安装步骤:
修改配置文件:


新建两个文件夹es_slave1 es_slave2两个文件夹,分别拷贝es文件到两个文件夹。
修改配置文件:

修改节点1的配置文件,配置端口 防止端口冲突,配置主节点的地址,可以让主节点发现子节点。
一定要注意冒号后面有空格
修改节点2的配置文件:


启动子节点报错如下:
[2017-10-27T22:33:17,999][INFO ][o.e.d.z.ZenDiscovery ] [slave1] failed to send join request to master [{master}{RgFbOiteR12g-4XdaR8x9w}{J4Jj2QoqT6-AkIMDjz_BRQ}{127.0.0.1}{127.0.0.1:9300}], reason [RemoteTransportException[[master][127.0.0.1:9300][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {slave1}{RgFbOiteR12g-4XdaR8x9w}{6TixW_PdQvGwI8vhCzHQcQ}{127.0.0.1}{127.0.0.1:9301}, found existing node {master}{RgFbOiteR12g-4XdaR8x9w}{J4Jj2QoqT6-AkIMDjz_BRQ}{127.0.0.1}{127.0.0.1:9300} with the same id but is a different node instance]; ]
主要原因是由于:
是因为直接复制了文件到子节点文件夹,将elsticsearch文件夹下的data文件夹一并复制了。而在前面测试时,data文件夹下已经产生了data数据,于是报上面的错误。
解决办法:删除elsticsearch文件夹下的data文件夹数据,问题解决!
结果展示:

分布式安装成功!
ES基础概念讲解:

3.ES基本使用:
RESTful API
API基本格式:http://<ip>:<port>/<索引>/<类型>/<文档Id>
常用http动词:GET PUT POST DELETE
创建索引-》〉》

判断索引是结构化和非结构化的方式

红色标示为空是非结构化索引
创建结构化的索引:


结构化的索引创建成功!
postman(一款可视化请求发送工具,搜索下载即可)中创建

创建成功!!

数据插入方式:
指定文档ID插入

自动文档ID插入

数据删除方式:
如何删除文档:

如何删除索引:

数据修改方式:
直接修改文档:

脚本修改文档:


数据查询方式:
简单查询:


条件查询:


聚合查询:高级查询:子条件查询(特定字段查询所指特定值):复合条件查询:等在下篇文章讲。


猜你喜欢

转载自blog.csdn.net/liberalliushahe/article/details/79092313