elasticsearch初步使用(mac os 10.12.5)

来源:互联网 发布:c 获取数据库实例名 编辑:程序博客网 时间:2024/05/18 00:41

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,可以不用担心数据丢失。