elasticsearch7.x 环境搭建

安装ElasticSearch(7.9.3)

由于ElasticSearch是基于JAVA的客户端,因此就部署过程而言,是具有平台无关性的

单机安装

下载->解压->修改配置->启动

下载

解压

修改配置

修改config/elasticsearch.yml(可选)

path.data: #当前环境存放数据的路径
path.logs: #当前环境存放日志的路径
network.host: 0.0.0.0  #任何计算机可访问( **必选**)
cluster.name: #集群名称
node.name: #节点名称
cluster.initial_master_nodes: ['节点名称'] #在集群中所有的master列表
xpack.ml.enabled: false #关闭xpack插件,用于机器学习
http.cors.enabled: true
http.cors.allow-origin: "*"   #允许跨域

修改config/jvm.options (可选)

-Xms256m  #默认1g
-Xmx256m  #默认1g

启动

1.新建用户

groupadd esGroup #添加组
useradd -m -g esGroup elasticsearch #新增用户,m:自动建立用户登入目录,g:指定用户所属群组
passwd elasticsearch #换行设置密码  (1qaz!QAZ)
chown -R elasticsearch elasticsearch-7.9.3 #进行授权  

2.使用新建的用户启动Es(es不允许root启动)

sh bin/elasticsearch

可能出现的问题:

  1. elasticsearch-env: line 122: syntax error near unexpected token `<’

解决方案:

将 < 改为 三连: <<<,并去除括号 ,<<<es

  1. ElasticsearchException[Failure running machine learning native code. This could be due to running on an unsupported OS or distribution, missing OS libraries, or a problem with the temp directory. To bypass this problem by running Elasticsearch without machine learning functionality set [xpack.ml.enabled: false].]

解决方案:

配置文件加入如下配置:

xpack.ml.enabled: false #关闭xpack插件,用于机器学习

或者,在linux机器上,安装xpack库,具体过程,参看 [Linux安装ELK–XPack](https://www.cnblogs.com/blogjun/articles/8072123.html)

过程比较繁琐,除非需要用到,否则不建议安装,提高了入手难度

安装分词器

下载->拷贝解压->重启

下载

拷贝解压

mv elasticsearch-analysis-ik-7.9.3.zip elasticsearch-7.9.3/plugins/  #操作需要切换到root
cd elasticsearch-7.9.3/plugins/
mkdir elasticsearch-analysis-ik-7.9.3
mv elasticsearch-analysis-ik-7.9.3.zip elasticsearch-analysis-ik-7.9.3
cd elasticsearch-analysis-ik-7.9.3/
unzip elasticsearch-analysis-ik-7.9.3.zip  

重启

在这里插入图片描述

集群安装

同单机,主要的设置几个属性,特作如下说明

discovery.seed_host: ["es应用1","es应用2","es应用3","es应用4",...]   #设置集群中,所有es应用的地址,这里的应用地址为 ip + 端口号
cluster.initial_master_nodes: ["节点名称1","节点名称2"]  #设置当前集群中为master的端点

安装kibana(7.9.3)

参考地址: Linux安装kibana

下载 -> 解压 -> 配置 -> 启动

  1. 下载

  2. 解压

  3. 配置

    vim config/kibana.yml

    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.host: ["http://192.168.17.212:9200"]  # 注意,直接填地址如果连接超时,可以直接采用localhost
    kibana.index: ".kibana"
    i18n.locale: "zh-CN"     #kibana默认文字是英文,变更成中文
    
  4. 启动

    添加用户

    groupadd kibanaGroup #添加组
    useradd -m -g kibanaGroup kibana #新增用户,m:自动建立用户登入目录,g:指定用户所属群组
    passwd kibana #换行设置密码  (1qaz!QAZ)
    cd /home
    chown -R kibana kibana-7.10.0-linux-x86_64 #进行授权 
    

    sh bin/kibana

    启动时间在三到五分钟的样子,要稍微等一会

kibana操作

熟悉常用操作项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体操作细节,还是需要参照官网,这里只是来一个初步认识,避免太过陌生导致产生比较强烈的抵制感.

es命令行操作

网上说,不建议将数据库与es作对比,原因是某些概念不一致。

这里认为,为了快速的学习相关概念,进行类比学习还是很值得推荐的一种方式,能有效降低学习门槛,因此暂时还是根据数据库操作的思路进行展开(根本原因在于,操作流程具有一定的普遍通用性)。

数据库操作顺序: 建库 -> 建表 -> 数据更新(增删改) -> 数据查询(查)。 大可按照这个思路进行学习,正如 elasticsearch 的tagline所说: you know,just for search!

换言之,它的复杂性在于lucene本身对索引的构建以及维护,而非客户端(es)的基本操作。

这里整理几个写的比较清晰的文章地址。

elasticsearch菜鸟教程 by bookwiki 很详细,成体系,但是是 es5的版本;

[Elasticsearch创建索引和映射结构详解]

Elasticsearch 7.7.0 基本操作-基于 CMD 命令行

建库(_doc端点,__mapping端点)(索引库)

自己的理解:

  • 由于es是基于文档的非结构型数据,因此类似于 关系型数据库的 建库操作则是一个 可选 操作。 对应于 es中,则是 mapping映射
  • 如果没有进行mapping映射,则会根据默认的设置,包括使用相应的分词器,是否索引,是否存储,等等.分词器将直接影响我们的搜素结果,中文 跟 英文的分词策略是不一致的 。
  • 由于非结构型数据的原因,即使设置了 mapping映射,也能够动态的进行修改,可以通过属性禁用它的表现就相当于 一张mysql表中,相邻的两条数据的 数据列 不一致
POST /movies/_doc
{
  "title":"the godfather11",
  "director":"Francis Ford Copoia11",
  "year": 1973
}

数据更新(_doc端点)

自己的理解:

  • 数据更新操作是通过 http方法来的,POST新增或者修改(根据id是否存在),PUT修改,DELETE 删除;
PUT /movies/_doc/RqlV2XUBafRrsJLpu11a
{
  "title":"the godfather112",
  "director":"Francis Ford Copoia33",
  "year": 1974
}
DELETE /movies/_doc/1
{
  "title":"the godfather112",
  "director":"Francis Ford Copoia33",
  "year": 1974,
  "param1":"111",
  "param2":"222"
}

数据查询(_search端点)

post /movies/_search
{
  "query":{
    "query_string":{
      "query":"kill"
    }
  }
}

请添加图片描述
请添加图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页