elasticsearch应用之安装(一)

一、Elasticsearch 基本术语

1.1 文档(Document)、索引(Index)、类型(Type)文档三要素
文档(Document)
文档,在面向对象观念就是一个对象。在 ES 里面,是一个大 JSON 对象,是指定了唯一 ID 的最底层或者根对象。文档的位置由 _index、_type 和 _id 唯一标识。

索引(Index)
索引,用于区分文档成组,即分到一组的文档集合。索引,用于存储文档和使文档可被搜索。比如项目存索引 project 里面,交易存索引 sales 等。

类型(Type)
类型,用于区分索引中的文档,即在索引中对数据逻辑分区。比如索引 project 的项目数据,根据项目类型 ui 项目、插画项目等进行区分。

 

 1.2 集群(Cluster)、节点(Node)、分片(Shard)分布式三要素

 二、Elasticsearch 工作原理

2.1 如何健康检查
集群名,集群的健康状态

GET http://127.0.0.1:9200/_cluster/stats
status 字段是需要我们关心的。状态可能是下列三个值之一:
green
所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
yellow
所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。高可用会弱化把 yellow 想象成一个需要及时调查的警告。
red
至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
active_primary_shards 集群中的主分片数量
active_shards 所有分片的汇总值
relocating_shards 显示当前正在从一个节点迁往其他节点的分片的数量。通常来说应该是 0,不过在 Elasticsearch 发现集群不太均衡时,该值会上涨。比如说:添加了一个新节点,或者下线了一个节点。
initializing_shards 刚刚创建的分片的个数。
unassigned_shards 已经在集群状态中存在的分片。

 安装:

下载地址:https://www.elastic.co/downloads/elasticsearch

历史版本下载:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

lunix:

1. 下载ElasticSearch 2.3.3

2.  安装JDK 1.8.0以上版本

3.  ElasticSearch 安装时会出现 Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.

 这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
建议创建一个单独的用户用来运行ElasticSearch
     解决方法:

       因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

     

建议创建一个单独的用户用来运行ElasticSearch

useradd elsearch -g elsearch -p elasticsearch
这条语句不推荐使用,-p设置密码要求使用加密过后的密码,用这条语句以后没有办法使用elsearch的密码,还是用passwd方便一些

1,创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch

2,更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

chown -R elsearch:elsearch  elasticsearch

elasticsearch为你elasticsearch的目录名称

3,切换到elsearch用户再启动

su elsearch #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
./elasticsearch


4. ElasticSearch 运行${ES_HOME}/bin/elasticsearch后,可能出现localhost:9200 或者127.0.0.1:9200都能访问的情况,但是根据IP:9200就是访问不了。 此时修改:elasticsearch.yaml文件  
         network.host: 10.0.15.30 即可根据IP访问

 5,之后如果再启动的话(如果是以root权限登录服务器),只需要执行切换账户,然后运行elasticsearch就可以了

su elsearch #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
./elasticsearch

ElasticSearch后台启动命令

./elasticsearch -d
 ./elasticsearch –d #在后台运行Elasticsearch
 ./elasticsearch -d -Xmx2g -Xms2g #后台启动,启动时指定内存大小(2G)
 ./elasticsearch -d -Des.logger.level=DEBUG  #可以在日志中打印出更加详细的信息。

查看后台命令是否启动成功

ps aux|grep elasticsearch

通过后台不中断命令进行启动 :

  1. nohup ./elasticsearch &  
查看是否启动

nestat -anp |grep 9200

 

 es不能在root用户下安装运行:

启动报错:

 在其他用户下运行:

报错表示用户没有权限:

解决方法:

在root用户下为其他用户授权:

在重启ES ok

 在浏览器中输入:127.0.0.1:9200 查看

在本地浏览器IP:9200无法访问

解决方法:

使用新的linux版本,就不会出现此类问题了。

 

问题五:
ElasticSearch启动找不到主机或路由
原因:ElasticSearch 单播配置有问题
解决方案:
检查ElasticSearch中的配置文件
vi  config/elasticsearch.yml
找到如下配置:
 
discovery.zen.ping.unicast.hosts:["192.168.**.**:9300","192.168.**.**:9300"]
一般情况下,是这里配置有问题,注意书写格式

 查看状态:

ps aux|grep elasticsearch
netstat -anp|grep 9200





 elasticsearch2.3 以root用户启动

 win:

localhost:9200/127.0.0.1:9200能访问,IP:9200无法访问修改配置文件config/elasticsearch.yml

network.host: 192.168.1.133
http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.1.133"]

discovery.zen.minimum_master_nodes: 3

或者将其修改为:

network.host: 0.0.0.0
http.port: 9200

注:yaml格式冒号后面是有空格。

 浏览器地址输入:http://localhost:9100

 索引测试:

get  http://localhost:9200/_search

{ "query":{ "match_all":{} } }
 
菜鸟课程推荐:
https://www.bootwiki.com/elasticsearch/elasticsearch-tutorial.html

 安装图形化界面:

https://www.cnblogs.com/codehello/articles/16396288.html

 

 

 

 

 

 

 

 

 

 

 

 ES项目实战

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{127.0.0.1:9300}]
    at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:326) ~[elasticsearch-2.4.4.jar:2.4.4]
    at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:223) ~[elasticsearch-2.4.4.jar:2.4.4]
   

posted on 2018-03-19 10:11  让代码飞  阅读(133)  评论(0编辑  收藏  举报

导航

一款免费在线思维导图工具推荐:https://www.processon.com/i/593e9a29e4b0898669edaf7f?full_name=python