深入了解Elasticsearch:软件的安装和简单使用命令

2023-12-10 19:02:16 浏览数 (1)

引言

  随着信息时代的发展,数据的管理和检索变得愈发重要。对于开发者和数据工作者而言,有一种强大的工具能够帮助我们高效地存储、索引和搜索海量数据,它就是 Elasticsearch。Elasticsearch 是一个开源的分布式搜索引擎,不仅可以处理大规模数据集,还能提供快速的搜索和分析功能。本文将介绍如何安装和简单使用 Elasticsearch,助你更好地利用这一工具在数据世界中航行。

  • 本次使用CentOS Linux release 7.6.1810作为安装环境
  • docker版本:Docker version 18.06.1-ce, build e68fc7a
  • elasticsearch软件包下载链接:
  • https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz

在Linux上普通安装

下载elasticsearch 7.8.0版本压缩包

将软件包下载到/usr/local/目录下,并解压

代码语言:shell复制
cd /usr/local/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz
tar zxf elasticsearch-7.8.0-linux-x86_64.tar.gz

创建启动elasticsearch用户取名es

代码语言:shell复制
useradd es

把解压缩后的软件包属主设置成es用户

代码语言:shell复制
chown -R es elasticsearch-7.8.0

切换成es用户启动elasticsearch

代码语言:shell复制
su es

启动elasticsearch

代码语言:shell复制
cd elasticsearch-7.8.0/bin/
./elasticsearch &

启动完成查看elasticsearch版本

代码语言:shell复制
curl -XGET localhost:9200

停止elasticsearch

代码语言:shell复制
ps -ef|grep elasticsearch
kill -9 27308

修改elasticsearch配置文件elasticsearch.yml

代码语言:shell复制
cd ../config/
cat elasticsearch.yml | grep -v '^#' | grep -v '^$'
node.name: master
path.data: /app/elasticsearch-7.8.0/data
path.logs: /app/elasticsearch-7.8.0/logs
network.host: 0.0.0.0
cluster.initial_master_nodes: ["master"]
xpack.ml.enabled: false

启动elasticsearch

代码语言:shell复制
cd ../bin/
./elasticsearch &

<font color='red'>如果报错:max virtual memory areas vm.max_map_count 65530 is too low, increase to at least 262144</font>

在 /etc/sysctl.conf 追加最大虚拟空间限制 vm.max_map_count=655360 ,如下,记得 sysctl -p 使系统配置生效。

解决: 在/etc/security/limits.conf追加配置,* 表示任意用户,soft / hard表示系统的软硬件限制,65536表示要限制的值。

代码语言:shell复制
* soft nofile 65536
* hard nofile 65536

通过Docker安装

启动Docker服务,然后拉取相应的elasticsearch版本

代码语言:shell复制
systemctl start docker
docker pull elasticsearch:7.8.0

使用docker直接启动elasticsearch服务

代码语言:shell复制
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name=myes elasticsearch:7.8.0

编写docker-compose

代码语言:shell复制
# version需要指定docker-compose对应的版本
version: '3.8'
services:
  elasticsearch:
    image: elasticsearch:7.8.0
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - 'discovery.type=single-node'
    container_name: myes

启动docker-compose

代码语言:shell复制
docker-compose up

elasticsearch的简单使用

带账号密码验证的命令行查询
代码语言:shell复制
curl --user elastic:password -XGET "http://127.0.0.1:9200/_cat/indices"
查询索引对应的uuid(如果ES有密码可以加上上面的--user elastic:password选项)
代码语言:shell复制
curl http://127.0.0.1:9200/_cat/indices
添加别名
代码语言:shell复制
# 写法一
PUT myes_name/_alias/alias_myes_name
# 写法二
curl -XPUT "http://127.0.0.1:9200/myes_name/_alias/alias_myes_name"
查询索引的别名
代码语言:shell复制
# 写法一
GET myes_name/_alias
# 写法二
curl -XGET "http://127.0.0.1:9200/myes_name/_alias"
通过别名查询索引
代码语言:shell复制
# 写法一
GET alias_myes_name/_search
# 写法二
curl -XGET "http://127.0.0.1:9200/alias_myes_name/_search"
删除别名
代码语言:shell复制
# 写法一
POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "myes_name",
        "alias": "alias_myes_name"
      }
    }
  ]
}

# 写法二
DELETE myes_name/_alias/alias_myes_name

# 写法三
curl -XPOST "http://127.0.0.1:9200/_aliases" -H 'Content-Type: application/json' -d'{"actions":[{"remove":{"index":"myes_name","alias":"alias_myes_name"}}]}'

# 写法四
curl -XDELETE "http://127.0.0.1:9200/myes_name/_alias/alias_myes_name"
删除索引
代码语言:shell复制
# 写法一
DELETE apply_flow_cp_220414
# 写法二
curl -XDELETE "http://39.105.186.125:9200/apply_flow_cp_220414"

结尾

  通过本文的学习,相信你已经对 Elasticsearch 有了一个基础的了解,并成功地进行了安装和简单使用。Elasticsearch 的强大之处不仅在于其高效的全文搜索能力,还在于其灵活性和可扩展性。未来,你可以进一步深入学习 Elasticsearch 的高级特性,如复杂查询、聚合分析和集群配置,以更好地满足各种数据处理需求。

  在你的数据之旅中,Elasticsearch 将是一个强大的伙伴,帮助你发现数据背后的价值。无论是构建实时监控系统、搜索引擎,还是进行大规模数据分析,Elasticsearch 都将成为你的得力工具。希望你能够在这个开源工具的世界里找到更多有趣的应用场景,让数据处理变得更加轻松而愉快。愿你的 Elasticsearch 之旅既愉快又富有成果!

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

0 人点赞