Elasticsearch 基础入门
Synopsis: Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据(结构化、非结构化、地理位置、度量指标),帮助您发现意料之中以及意料之外的情况。无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,您都能够以相同的方式与 Elasticsearch 进行通信。 它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作
1. 安装 Elasticsearch 6
参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
1.1 安装 JAVA 8
Elasticsearch
是使用Java
编写的,它的内部使用Lucene
做索引与搜索,但是它的目的是使全文检索变得简单,通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。所以,Elasticsearch
需要java8
或更高版本,先检查CentOS 7的JAVA版本:
如果还没有安装,或版本过低,请先安装JAVA:
1.2 安装 Elasticsearch RPM
# 1. Download and install the public signing key [root@CentOS ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # 2. Create yum repository [root@CentOS ~]# vim /etc/yum.repos.d/elasticsearch.repo 内容如下: [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md # 3. Install Elasticsearch [root@CentOS ~]# yum -y install elasticsearch [root@CentOS ~]# systemctl enable elasticsearch.service [root@CentOS ~]# systemctl start elasticsearch.service
Elasticsearch
安装好后,默认的配置文件目录为/etc/elasticsearch
,默认的安装目录为/usr/share/elasticsearch
,默认的启动端口为9200
测试 Elasticsearch 是否启动成功:
[root@CentOS ~]# curl 'http://localhost:9200/?pretty' { "name" : "hSFoO1h", "cluster_name" : "elasticsearch", "cluster_uuid" : "N2LATMb4SMemF99wi3TJGA", "version" : { "number" : "6.4.2", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "04711c2", "build_date" : "2018-09-26T13:34:09.098244Z", "build_snapshot" : false, "lucene_version" : "7.4.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
可以在/etc/elasticsearch/elasticsearch.yml
配置文件中修改cluster.name
、node.name
、path.data
、network.host
、http.port
等
2. Windows 安装 Kibana
Kibana
让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack。Kibana 核心搭载了一批经典功能:柱状图、线状图、饼图、旭日图等,它们充分利用了 Elasticsearch 的聚合功能
2.1 安装
参考: https://www.elastic.co/guide/en/kibana/current/windows.html
下载.zip
压缩包 https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-windows-x86_64.zip
假设解压到C:\
根目录下,那么C:\kibana-6.4.2-windows-x86_64\bin
目录为可执行文件所在的地方,用来启动Kibana
或安装插件
2.2 配置
由于我们的 Elasticsearch 安装在远程的CentOS上,所以先要修改 Elasticsearch 的配置文件/etc/elasticsearch/elasticsearch.yml
中的network.host
,默认只允许本机访问(通过 localhost 或 127.0.0.1),现在Windows主机要访问它的话,能够 ping 通 CentOS上的IP: 192.168.40.128,所以我们要把192.168.40.128添加进去:
# ----------------------------- Network ------------------------------ # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: localhost, 192.168.40.128 # 或者允许所有主机访问(危险): # network.host: 0.0.0.0
然后,再修改 Kibana 的配置文件C:\kibana-6.4.2-windows-x86_64\config\kibana.yml
中的elasticsearch.url
,指向 Elasticsearch 服务地址:
# The URL of the Elasticsearch instance to use for all your queries. # elasticsearch.url: "http://localhost:9200" elasticsearch.url: "http://192.168.40.128:9200"
2.3 启动
打开cmd
命令行窗口:
然后,在浏览器中输入http://localhost:5601
,回车即可
3. 与 Elasticsearch 交互
3.1 Java API
参考: https://www.elastic.co/guide/cn/elasticsearch/guide/current/_talking_to_elasticsearch.html#_java_api
如果你正在使用 Java,可以使用 Elasticsearch 内置的两个客户端:节点客户端(Node client)
和传输客户端(Transport client)
,并通过9300
端口并使用 Elasticsearch 的原生传输协议和集群交互
3.2 RESTful API with JSON over HTTP
我们可以使用 RESTful API 通过端口 9200 和 Elasticsearch 进行通信,甚至可以使用curl
命令来和 Elasticsearch 交互
一个 Elasticsearch 请求和任何 HTTP 请求一样由几部分(下面的命令中<>
标记的内容)组成:
VERB
: 适当的 HTTP 方法 或 谓词 :GET
、POST
、PUT
、HEAD
或者DELETE
PROTOCOL
:http
或者https
(如果你在 Elasticsearch 前面有一个https
代理)HOST
: Elasticsearch 集群中任意节点的主机名,或者用localhost
代表本地机器上的节点PORT
: 运行 Elasticsearch HTTP 服务的端口号,默认是9200
PATH
: API 的终端路径(例如_count
将返回集群中文档数量)。PATH 可能包含多个组件,例如:_cluster/stats
和
0 条评论
评论者的用户名
评论时间暂时还没有评论.