前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入门教程 | 从安装部署开始学习 Elasticsearch

入门教程 | 从安装部署开始学习 Elasticsearch

作者头像
大数据技术架构
发布2019-08-16 15:53:04
9900
发布2019-08-16 15:53:04
举报

Elasticsearch 是目前最流行的搜索引擎,学习 ES 的第一步便是安装部署。本文内容包含以下三部分:

  • 安装 Elasticsearch 7.x(单节点)
  • 安装 Elasticsearch-head
  • 附 Elasticsearch-6.x 线上配置

一、安装 Elasticsearch 7.x


为了让大家能够快速使用、进一步熟悉 Elasticsearch,本次我们选择安装 7.1.1 版本的 Elasticsearch,并且是单节点集群模式。(多节点集群其实只要分发一下软件包、修改配置即可)

1、安装包

Elasticsearch 7.1.1 下载地址:

代码语言:javascript
复制
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-1-1

最新版本下载可访问:https://www.elastic.co/cn/downloads/elasticsearch。

Elasticsearch 7.0 之前需要先安装 JDK。Elasticsearch 自 7.0 版本开始默认捆绑了 JDK(安装包里自带JDK),因此我们可以不单独安装 JDK,ES 会默认使用自带 JDK。如果使用自己的 JDK 可以设置 JAVA_HOME 指定。

2、安装

首先使用 root 用户创建安装目录、数据目录,解压安装包,创建elasticsearch用户以及更改安装目录权限等操作。

代码语言:javascript
复制
#创建相关目录,并解压安装Elasticsearch
mkdir /{app,data}
tar zxf elasticsearch-7.1.1-linux-x86_64.tar.gz -C /app
#创建elasticsearch用户用于启动、操作Elasticsearchuseradd elasticsearchpasswd elasticsearch
#目录重命名,更改所属用户cd /appmv elasticsearch-7.1.1 elasticsearchchown elasticsearch:elasticsearch -R elasticsearch/

Elasticsearch 不允许使用 root 用户启动。

3、配置

Elasticsearch 有2个关键的配置文件,elasticsearch.yml 与 jvm.options。前者是 elasticsearch 配置文件,后者是 elasticsearch 进程 jvm 配置文件。以下是一些关键的必要配置项。

elasticsearch.yml :

代码语言:javascript
复制
cluster.name: es-cluster
node.name: es-01
path.data: /data
path.logs: /app/elasticsearch/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.10.130
http.port: 9200discovery.seed_hosts: ["192.168.10.130"]cluster.initial_master_nodes: ["es-01"]node.master: truenode.data: true

因为我们只有一个节点,所以这里 node.master(default true) 与 node.data(default true)均设为 true。多节点集群时须要根据实际情况决定 master 节点和 data 节点。

jvm.options :

代码语言:javascript
复制
-Xms4g
-Xmx4g

官方建议 jvm 堆大小最多可设为可用物理内存的一半,留有足够的内存供 filesystem cache 使用。

4、启动

Elasticsearch 的启动非常简单,直接运行安装目录 bin 下的 elasticsearch 脚本,如下

代码语言:javascript
复制
./bin/elasticsearch -d

其中 -d 表示进程后台运行,还可以加参数 -p pid 指定进程编号。

验证是否启动成功,可以 curl 命令行或许浏览器访问,curl 命令如下

代码语言:javascript
复制
curl -XGET "192.168.10.130:9200/"

Elasticsearch 不允许使用 root 用户启动。

至此,Elasticsearch 安装完成,我们可以通过官方提供的 API 操作 Elasticsearch 了。

二、安装 Elasticsearch-head


为了更直观的管理 Elasticsearch(集群管理、数据操作等),我们需要安装 elasticsearch-head 进行界面操作,elasticsearch-head 属于管理 ES 常用的第三方客户端。

1、安装包

从以下地址下载 Head 的 master 分支即可

代码语言:javascript
复制
https://github.com/mobz/elasticsearch-head

关于 Head 的安装,网上多是通过 npm (nodejs/grunt)方式安装,这种安装方式其实有点复杂。建议通过 tomcat 部署 head 的方式进行安装,只需修改一次配置即可,这里采用此方式。

2、安装

假设已经安装好了 JDK、tomcat,配置好了 JAVA_HOME 环境变量,这些是基础条件。将 elasticsearch-head 的 zip 包解压部署到 tomcat 的 webapps 目录完成安装。这里 tomcat 目录为 /app/tomcat-es-head。

代码语言:javascript
复制
unzip -d /app/tomcat-es-head/webapps elasticsearch-head-master.zip
cd /app/tomcat-es-head/webappsmv elasticsearch-head-master elasticsearch-head

Head 的安装、启动使用 root 用户即可。

3、配置

如上安装完成后,配置 Head 就变的十分简单了,只需要修改 elasticsearch-head 目录下 _site/app.js 文件即可,这里文件全路径为 /app/tomcat-es-head/webapps/elasticsearch-head/_site/app.js。修改 base_uri 处指定 Elasticsearch HTTP 地址(默认 9200 端口)即可,即如下红框部分

4、启动

启动 tomcat 即可,这里 tomcat 端口设为了 9100,可根据实际端口访问。出现如下界面说明 Head 界面安装成功

至此,elasticsearch-head 界面安装完成,后续的一些基本操作比如索引管理、数据查看等建议通过该界面操作。

三、附 Elasticsearch 6.x 线上配置


这里提供一份 Elasticsearch 6.x 的配置文件(线上版本 6.1.1)。elasticsearch.yml:

代码语言:javascript
复制
cluster.name: es-prod-cluster
node.name: es-prod-01
path.data: /data01,/data02,/data03
path.logs: ${ES_HOME}/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: ${IP}
http.port: 9200discovery.zen.ping.unicast.hosts: ["otc-hadoop-es-01","otc-hadoop-es-02","otc-hadoop-es-03","otc-hadoop-es-04","otc-hadoop-es-05","otc-hadoop-es-06"]discovery.zen.minimum_master_nodes: 3node.master: truenode.data: true

仅供参考,实际安装时如果遇到其他问题,比如最大文件描述符限制、最大线程数限制、虚拟内存设置等,可以参考报错信息解决,或者先看官网 Bootstrap Checks 章节内容。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档