elasticsearch初步使用(mac os 10.12.5)

OS: mac os 10.12.5
elasticsearch version: 5.5.0

参考书籍:
《Elasticsearch: 权威指南》
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
解压后,进入目录:elasticsearch-5.5.0/bin
执行 ./elasticsearch
正常启动会出现如下日志(不知怎么回事csdn突然无法上传图片,就直接把输出日志粘贴过来了)

[2017-07-25T16:04:34,428][INFO ][o.e.e.NodeEnvironment    ] [my-node-1] heap size [990.7mb], compressed ordinary object pointers [true]
[2017-07-25T16:04:34,458][INFO ][o.e.n.Node               ] [my-node-1] node name [my-node-1], node ID [IS5wHWp_SQ-j40KS3ZtgmA]
[2017-07-25T16:04:34,458][INFO ][o.e.n.Node               ] [my-node-1] version[5.5.0], pid[12136], build[260387d/2017-06-30T23:16:05.735Z], OS[Mac OS X/10.12.5/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_112/25.112-b16]
[2017-07-25T16:04:34,458][INFO ][o.e.n.Node               ] [my-node-1] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+DisableExplicitGC, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/Users/mingleizhen/elasticsearch/elasticsearch-5.5.0]
[2017-07-25T16:04:35,617][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [aggs-matrix-stats]
[2017-07-25T16:04:35,617][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [ingest-common]
[2017-07-25T16:04:35,617][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [lang-expression]
[2017-07-25T16:04:35,617][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [lang-groovy]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [lang-mustache]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [lang-painless]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [parent-join]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [percolator]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [reindex]
[2017-07-25T16:04:35,618][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [transport-netty3]
[2017-07-25T16:04:35,619][INFO ][o.e.p.PluginsService     ] [my-node-1] loaded module [transport-netty4]
[2017-07-25T16:04:35,620][INFO ][o.e.p.PluginsService     ] [my-node-1] no plugins loaded
[2017-07-25T16:04:37,560][INFO ][o.e.d.DiscoveryModule    ] [my-node-1] using discovery type [zen]
[2017-07-25T16:04:38,161][INFO ][o.e.n.Node               ] [my-node-1] initialized
[2017-07-25T16:04:38,162][INFO ][o.e.n.Node               ] [my-node-1] starting ...
[2017-07-25T16:04:43,368][INFO ][o.e.t.TransportService   ] [my-node-1] publish_address {127.0.0.1:9300}, bound_addresses {[fe80::1]:9300}, {[::1]:9300}, {127.0.0.1:9300}
[2017-07-25T16:04:46,539][INFO ][o.e.c.s.ClusterService   ] [my-node-1] new_master {my-node-1}{IS5wHWp_SQ-j40KS3ZtgmA}{Gzy5GFnjRLOJ4kDARzMisQ}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2017-07-25T16:04:46,562][INFO ][o.e.h.n.Netty4HttpServerTransport] [my-node-1] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200}
[2017-07-25T16:04:46,562][INFO ][o.e.n.Node               ] [my-node-1] started
[2017-07-25T16:04:46,794][INFO ][o.e.g.GatewayService     ] [my-node-1] recovered [3] indices into cluster_state
[2017-07-25T16:04:47,160][INFO ][o.e.c.r.a.AllocationService] [my-node-1] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[.kibana][0]] ...]).

发送get请求 http://localhost:9200 得到如下结果:

{
name: "my-node-1",
cluster_name: "my-es-cluster",
cluster_uuid: "VPBPWA-oQbOQ35wUf81k3A",
version: {
number: "5.5.0",
build_hash: "260387d",
build_date: "2017-06-30T23:16:05.735Z",
build_snapshot: false,
lucene_version: "6.6.0"
},
tagline: "You Know, for Search"
}

据说root启动会报错
于是sudo ./elasticsearch,出现以下错误:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

两个解决方案:
1.新建elasticsearch的用户组
2.修改配置文件,允许root用户启动

elasticsearch是面向服务(SOA)的架构:
Elasticsearch 将所有的功能打包成一个单独的服务,这样你可以通过程序与它提供的简单的 RESTful API 进行通信, 可以使用自己喜欢的编程语言充当 web 客户端
我使用的是:
1.Chrome 插件sense
2.Chrome 插件 postman
其实不需要插件,自己用任意语言去写一个http client发送请求,都可以达到效果。

确实是开箱即用
预设默认值,不需要搜索的理论,直接可以用。

查看健康状态:

GET _cluster/health
返回结果:
{
   "cluster_name": "my-es-cluster",
   "status": "yellow",
   "timed_out": false,
   "number_of_nodes": 1,
   "number_of_data_nodes": 1,
   "active_primary_shards": 11,
   "active_shards": 11,
   "relocating_shards": 0,
   "initializing_shards": 0,
   "unassigned_shards": 11,
   "delayed_unassigned_shards": 0,
   "number_of_pending_tasks": 0,
   "number_of_in_flight_fetch": 0,
   "task_max_waiting_in_queue_millis": 0,
   "active_shards_percent_as_number": 50
}

那么为什么健康状态是yellow呢?
如果未修改过任何配置文件,启动的时候,看日志就会发现是green.
我修改过配置文件elasticsearch.yml,增加了集群的名称,但是本地启动只是一个节点,所以认为集群不健康,就显示为yellow.

关于集群的几种健康状态,只要不是red,可以不用担心数据丢失。

发布了18 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mingleizhen/article/details/76084103