Centos 7 通过 targz 文件安装 Elastic Search 服务

这篇具有很好参考价值的文章主要介绍了Centos 7 通过 targz 文件安装 Elastic Search 服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区别于通过发行版自带的仓库, 介绍如何通过 targz 文件安装 Elastic Search 服务, 使用的 Linux 为 Centos 7

下载

https://www.elastic.co/downloads/elasticsearch

选择 Linux x86_64, 下载 elasticsearch-8.8.0-linux-x86_64.tar.gz

安装

解压到 /opt/elasticsearch, 并加上软链

tar xvf elasticsearch-8.8.0-linux-x86_64.tar.gz 

cd /opt/
sudo mkdir elasticsearch
cd elasticsearch/
sudo mv ~/backup/elasticsearch-8.8.0 .
sudo chown -R milton:milton elasticsearch-8.8.0/
sudo ln -s elasticsearch-8.8.0 latest

这个版本的 Elastic Search 自带 JVM, 版本为 openjdk version "20.0.1" 2023-04-18

配置

可能需要修改的配置

# Use a descriptive name for your cluster:
#cluster.name: my-application
# Use a descriptive name for the node:
node.name: centos7001
# Add custom attributes to the node:
#node.attr.rack: r1
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /home/milton/es_run/data
# Path to log files:
path.logs: /home/milton/es_run/logs
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
network.host: 192.168.9.10
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#http.port: 9200
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#discovery.seed_hosts: ["centos7001"]
# Bootstrap the cluster using an initial set of master-eligible nodes:
cluster.initial_master_nodes: ["centos7001"]
# For more information, consult the discovery and cluster formation module documentation.
# Allow wildcard deletion of indices:
#action.destructive_requires_name: false
xpack.security.enabled: false
  • cluster.name: my-application 集群名称
  • node.name 要改成当前服务器的hostname
  • path.data: /somew/data 数据路径
  • path.logs: /somewhere/logs 日志路径
  • network.host: 192.168.123.123 监听的网口, 默认只监听127.0.0.1
  • http.port: 9200 监听的端口, 默认为9200
  • discovery.seed_hosts: ["192.168.123.123"] 集群主机列表, 和下面的cluster.initial_master_nodes必须写一个, 不然启动会报错. 如果只是单节点, 这行可以注释掉
  • cluster.initial_master_nodes: ["centos7001"] 启动时初始化的参与选主的node 对应的 hostname, 要能解析为IP

node.name 和 cluster.initial_master_nodes, 可以填IP也可以填hostname, 但是要一致

系统配置

以下的配置用于解决下面的问题

  1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
  2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  3. the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
  4. Transport SSL must be enabled if security is enabled. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]

1. max file descriptors 65535

修改/etc/security/limits.conf (或者 /etc/security/limits.d/20-nproc.conf), 增加或修改为以下内容

*          soft    nofile    65535
*          hard    nofile    65535
*          soft    nproc     65535
*          hard    nproc     65535
root       soft    nproc     unlimited

需要重启, 用 ulimit -n 检查

2. vm.max_map_count 262144

修改/etc/sysctl.conf 或者 /etc/sysctl.d/99-sysctl.conf文件,增加或修改为以下内容

vm.max_map_count=262144

3. the default discovery settings are unsuitable for production use

需要配置 discovery.seed_hosts,discovery.seed_providers,cluster.initial_master_nodes中的至少一个参数

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node

修改配置文件 config/elasticsearch.yml, 配置以下两项

discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

4. Transport SSL must be enabled if security is enabled

修改配置文件 config/elasticsearch.yml, 增加

xpack.security.enabled: false

5. WARN: This node is a fully-formed single-node cluster

如果在日志中看到类似这样的错误

[2023-06-09T07:29:43,781][WARN ][o.e.c.c.Coordinator      ] [centos7001] This node is a fully-formed single-node cluster with cluster UUID [6ejfGD71SVe6OpypK-1HmA], but it is configured as if to discover other nodes and form a multi-node cluster via the [discovery.seed_hosts=[192.168.123.123]] setting. Fully-formed clusters do not attempt to discover other nodes, and nodes with different cluster UUIDs cannot belong to the same cluster. The cluster UUID persists across restarts and can only be changed by deleting the contents of the node's data path(s). Remove the discovery configuration to suppress this message.

说明这是一个单节点的ES, 但是配置文件中配置其去发现另一个节点. 需要将 discovery.seed_hosts 中设置的节点去掉

运行

直接运行, 这样会将日志直接输出到控制台

/opt/elasticsearch/latest/bin/elasticsearch

后台运行, 在命令后加 -d -p pid-file, 在输出一段控制台日志后, 如果没有报错, 会转入后台运行

/opt/elasticsearch/latest/bin/elasticsearch -d -p /opt/elasticsearch/latest/logs/pid

停止

根据记录的 pid 停止, 启动时记录用的哪个文件, 这里就用对应的文件

pkill -F /opt/elasticsearch/latest/logs/pid

使用

ES与关系型数据库的名词对应关系
Centos 7 通过 targz 文件安装 Elastic Search 服务

服务检查

浏览器打开 http://192.168.123.123:9200/ 能看到ES的输出, 就说明运行成功

{
  "name" : "centos70",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "8.8.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "c01029875a091076ed42cdb3a41c10b1a9a5a22f",
    "build_date" : "2023-05-23T17:16:07.179039820Z",
    "build_snapshot" : false,
    "lucene_version" : "9.6.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

查询集群运行状况

curl -XGET "127.0.0.1:9200/_cat/health?v"

查询集群所有索引

$ curl -XGET "192.168.123.123:9200/_cat/indices?v"
health status index        uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   commodity002 XIrCTL_XQq2vteuEflY6vA   1   1          0            0       247b           247b
yellow open   commodity001 Z-LKjzsuR8uMLgVlYYALEw   1   1          0            0       247b           247b
yellow open   commodity004 sSxEiwNBSvernMH6EYsEvw   1   1          0            0       247b           247b
yellow open   commodity003 JSRUndkHQ8mQVdTkN9eCPw   1   1          0            0       247b           247b

按记录数量排序, 字段可以从上面结果的表头中取

curl -XGET "127.0.0.1:9200/_cat/indices?v&s=docs.count"

按存储空间排序

curl -XGET "127.0.0.1:9200/_cat/indices?v&s=store.size"

创建索引

不带参数, ?pretty用于格式化响应的json

curl -X PUT "localhost:9200/commodity?pretty"

带参数

curl -H 'Content-Type: application/json' -X PUT 'http://192.168.123.123:9200/commodity007?pretty' \
--data '{
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 2
    }
}'

带索引字段,

curl -H 'Content-Type: application/json' -X PUT 'http://192.168.123.123:9200/commodity008?pretty' \
--data '{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "studymodel":{
        "type": "keyword"
      },
      "price":{
        "type": "double"
      },
      "timestamp": {
         "type": "date",
         "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
      },
      "pic":{
        "type":"text",
        "index": false
      }
    }
  }
}'

对于嵌套存在的字段, mappings是可以用层级的, 例如对 type1下的obj1的索引

{
  "mappings": {
    "type1": {
      "properties": {
        "obj1": {
          "type": "nested"
        }
      }
    }
  }
}

查看索引字段及设置

curl -X GET 'http://192.168.123.123:9200/commodity008?pretty'

往索引写入内容

通过路径指定 _id = 1, 对同一个 _id可以再次调用进行更新, 结果中的_version会递增

curl --location --request PUT 'http://192.168.123.123:9200/commodity008/_doc/1?pretty' \
--header 'Content-Type: application/json' \
--data '{
    "name": "commodity008001",
    "studymodel": "202306",
    "price": 123.12,
    "timestamp": "2023-05-25 19:11:35",
    "pic": "23/06/01/a123b1fde0428.jpg"
}'

查询

可以通过URL路径区分不同索引

  • /_search 所有索引
  • /commodity008/_search commodity008索引
  • /commodity007,commodity008/_search commodity007 和 commodity008
  • /commodity*/_search 以 commodity 开头的索引

查询所有索引下的内容

curl -X GET 'http://192.168.123.123:9200/_search?pretty'

查询一个索引下的内容

curl -X GET 'http://192.168.123.123:9200/commodity008/_search?pretty'

带条件查询

curl -H 'Content-Type: application/json' -X GET 'http://192.168.9.10:9200/commodity008/_search?pretty=null' \
--data '{
    "query" : {
        "match" : {
            "name": "commodity008001"
        }
    }
}'

带偏移和结果数量, 请求加上 from 和 size 参数

{
  "from":10,
  "size":20,
  "query":{
    "match_all": {}
  }
}

排序, 请求加上 sort 参数

{
  "sort":[{"year":"desc"}],
  "query":{
    "match_all": {}
  }
}

限制返回的字段, 请求加上 _source 字段文章来源地址https://www.toymoban.com/news/detail-475856.html

{
  "_source":["title"],
  "query":{
    "match_all": {}
  }
}

结果格式

{
    "took": 422,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "commodity008",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "name": "commodity008001",
                    "studymodel": "202307",
                    "price": 123.53,
                    "timestamp": "2023-05-25 19:11:35",
                    "pic": "23/06/01/a123b1fde0428.jpg"
                }
            },
            ...
        ]
    }
}

参考

  • 通过 targz 安装 Elastic Search https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html

到了这里,关于Centos 7 通过 targz 文件安装 Elastic Search 服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 客快物流大数据项目(一百零四):为什么选择Elastic Search作为存储服务

    文章目录 为什么选择Elastic Search作为存储服务 一、​​​​​​​​​​​​​​ElasticSearch简介

    2023年04月11日
    浏览(46)
  • 【elastic search】JAVA操作elastic search

    目录 1.环境准备 2.ES JAVA API 3.Spring Boot操作ES 本文是作者ES系列的第三篇文章,关于ES的核心概念移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 关于ES的下载安装教程以及基本使用,移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 在前文

    2024年01月25日
    浏览(51)
  • elastic search入门

    参考1:Elastic Search 入门 - 知乎 参考2:Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客 1、ElasticSearch安装 1.1安装JDK,省略,之前已安装过 1.2创建ES用户 1.3 下载ElasticSearch安装包 Ubuntu上下载: 然后解压: 1.4配置 配置jvm.options 配置elasticsearch.yml: 根据以上设置的path.data和path.l

    2024年01月23日
    浏览(52)
  • Elastic Search一些用法

    参考: 中国开源社区 官方介绍 ES 的权重排序 【Elasticsearch】ElasticSearch 7.8 多字段权重排序 ElasticSearch7.3学习(十三)----定制动态映射(dynamic mapping) 【Elasticsearch教程4】Mapping 动态映射 【Elasticsearch教程5】Mapping 动态模板 Dynamic templates 注意事项:需要先创建模板,然后添加数据

    2024年02月06日
    浏览(46)
  • SpringCloud整合Elastic Search

    1、配置Elastic Search 注释说明: spring.elasticsearch.rest.uris :设置Elastic Search的连接地址,这里的示例是本地地址 http://localhost:9200 ,根据实际情况修改。 spring.elasticsearch.username 和 spring.elasticsearch.password :设置Elastic Search的用户名和密码,如果没有设置访问控制,这两项可以省略

    2024年02月15日
    浏览(47)
  • Elastic Search 命令详解-索引操作

    关于Elastic Search安装可以参考《Elastic Search 8.6.2集群安装部署》及Kibana安装可以参考《Elastic Search 8.6.2简单操作》。相关命令将在Kibana工具的Console平台上执行。 Elastic Search索引操作主要包含:创建、删除、关闭和打开索引,以及索引别名的操作。其中,索引别名的操作在生产环

    2024年02月08日
    浏览(46)
  • 【搜索引擎】elastic search核心概念

    前言 本文不涉及ES的具体安装下载、操作、集群的内容,这部分内容会放在后面一篇文章中。本文只包含ES的核心理论,看完本文再去学ES的细节会事半功倍。 目录 1.由日志存储引出的问题 2.什么是ES? 3.ES的数据结构 4.ES的核心原理 5.联系作者 本文或者说本系列的来源: 前面

    2024年02月03日
    浏览(48)
  • Elastic Search的RestFul API入门:如何进行ES的查询-search

    在这篇教学文章中,我们将深入探讨Elasticsearch的search功能。这是一个非常强大且灵活的功能,它允许我们对存储在Elasticsearch中的数据进行各种复杂的查询和分析。本章的目标是让读者理解如何进行Elasticsearch的搜索,以及如何在搜索过程中自主调整搜索参数,从而灵活地控制

    2024年02月03日
    浏览(50)
  • centos通过源文件的方式安装node-red

    [回到目录]  查看你的Linux系统是32位还是64位的,不要搞错版本了。执行命令: cat /proc/version  下载地址:【https://npm.taobao.org/mirrors/node/】  选择合适的版本下载: 记住查看你的Linux系统是32位还是64位的,不要搞错版本了。一般x86_64是64位,x86是32位的。 我的服务器是64位的

    2024年02月11日
    浏览(40)
  • Springboot项目使用Elastic Search教程(完整步骤)

    最近的项目需要用到Elastic Search,上网查资料的时候发现内容比较分散,搜索起来的时候比较费力, 于是最近入门配置成功之后,稍微总结一下吧。 先给出一些网上的教程 (152条消息) Spring Boot整合Elasticsearch,最新最全教程_spring elasticsearch_Cloud-Future的博客-CSDN博客 这一篇代码

    2024年02月07日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包