Elasticsearch【安装ES服务、安装kibana、Docker安装 、索引操作、文档操作】(二)-全面详解(学习总结---从入门到深化)

news2024/9/21 18:59:37

 

目录

Elasticsearch安装_安装ES服务

Elasticsearch安装_安装kibana

Elasticsearch安装_Docker安装 

Elasticsearch常用操作_索引操作

Elasticsearch常用操作_文档操作


 

Elasticsearch安装_安装ES服务

准备工作 

1、 准备一台搭载有CentOS7系统的虚拟机,使用XShell连接虚拟机

2、 关闭防火墙,方便访问ES

#关闭防火墙:
systemctl stop firewalld.service

#禁止防火墙自启动:
systemctl disable firewalld.service

3、 配置最大可创建文件数大小

#打开系统文件:
vim /etc/sysctl.conf

#添加以下配置:
vm.max_map_count=655360

#配置生效:
sysctl -p

4、由于ES不能以root用户运行,我们需要创建一个非root用户,此处创建一个名为es的用户:

#创建用户:
useradd es

 安装服务

1、 使用rz命令将linux版的ES上传至虚拟机

2、 解压ES

#解压:
tar -zxvf elasticsearch-7.17.0-linuxx86_64.tar.gz

#重命名:
mv elasticsearch-7.17.0 elasticsearch1

#移动文件夹:
mv elasticsearch1 /usr/local/

#es用户取得该文件夹权限:
chown -R es:es /usr/local/elasticsearch1

3、启动ES服务:

#切换为es用户:
su es

#进入ES安装文件夹:
cd /usr/local/elasticsearch1/bin/

#启动ES服务:
./elasticsearch

#查询ES服务是否启动成功
curl 127.0.0.1:9200

实时学习反馈

1. 在Linux系统中,elasticsearch必须以用户运行

A root

B 非root

C 任意

D 以上说法都不对

Elasticsearch安装_安装kibana

Kibana是一款开源的数据分析和可视化平台,设计用于和 Elasticsearch协作。我们可以使用Kibana对Elasticsearch索引中的数据进行搜索、查看、交互操作。 

 1、 使用rz工具将Kibana压缩文件上传到Linux虚拟机

2、 解压

tar -zxvf kibana-7.17.0-linux-x86_64.tar.gz  -C /usr/local

3、修改配置

# 进入Kibana解压路径
cd /usr/local/kibana-7.17.0-linux-x86_64/config

# 修改配置文件
vim kibana.yml

# 加入以下内容
# kibana主机IP
server.host: "虚拟机IP"

# Elasticsearch路径
elasticsearch.hosts: ["http://127.0.0.1:9200"]

4、启动:

kibana不能以root用户运行,我们给es用户设置kibana目录的 权限,并使用es用户运行kibana

# 给es用户设置kibana目录权限
chown -R es:es /usr/local/kibana-7.17.0-linux-x86_64/

# 切换为es用户
su es

# 启动kibana
cd /usr/local/kibana-7.17.0-linux-x86_64/bin/
./kibana

 5、访问kibana:http://虚拟机IP:5601

6、 点击 Management => Index Management 可以查看es索引信息。

实时学习反馈

1. 关于Kibana,说法错误的是

A 是一款开源的数据分析和可视化平台

B 用于和Elasticsearch协作

C 用于和solr协作

D 可以对Elasticsearch索引中的数据进行搜索 

Elasticsearch安装_Docker安装 

安装Elasticsearch 

1、在Centos7中安装docker

# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 启动docker
systemctl start docker

2、 拉取镜像

docker pull elasticsearch:7.17.0

3、启动容器

# docker容器间建立通信
docker network create elastic

# 创建es容器
docker run --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --name='elasticsearch' --net elastic --cpuset-cpus="1" -m 1G -delasticsearch:7.17.0

安装Kibana

1、拉取镜像

docker pull kibana:7.17.0

2、启动容器

docker run --name kibana --net elastic --link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.17.0

3、访问kibana:http://虚拟机IP:5601

Elasticsearch常用操作_索引操作

Elasticsearch是使用RESTful风格的http请求访问操作的,请求参数 和返回值都是Json格式的,我们可以使用kibana发送http请求操作 ES。 

创建没有结构的索引 

路径:ip地址:端口号/索引名

注:在kibana中所有的请求都会省略 ip地址:端口号 ,之后的路径我们省略写 ip地址:端口号

请求方式:PUT

为索引添加结构

POST /索引名/_mapping
{
   "properties":{
   "域名1":{
       "type":域的类型,
       "store":是否存储,
       "index":是否创建索引,
       "analyzer":分词器
   },
   "域名2":{
       ...
    }
  }
}

实时学习反馈

1. Elasticsearch是使用访问操作的

A 普通风格的http请求

B 普通风格的ssh请求

C RESTful风格的http请求

D RESTful风格的ssh请求

2. Elasticsearch请求参数和返回值的数据格式为

A xml

B yaml

C html

D json

创建有结构的索引

PUT /索引名
{
    "mappings":{
        "properties":{
            "域名1":{
                "type":域的类型,
                "store":是否单独存储,
                "index":是否创建索引,
        "analyzer":分词器
           },
            "域名2":{
                ...
           }
       }
   }
}

 删除索引

DELETE /索引名

Elasticsearch常用操作_文档操作

新增/修改文档 

POST /索引/_doc/[id值]
{
  "field名":field值
}

注:id值不写时自动生成文档id,id和已有id重复时修改文档

根据id查询文档 

GET /索引/_doc/id值

删除文档

DELETE /索引/_doc/id值

实时学习反馈

1. 在Elasticsearch中,删除文档的请求方式为

A POST

B PUT

C GET

D DELETE

2. 在Elasticsearch中,查询文档的请求方式为

A POST

B PUT

C GET

D DELETE

 

根据id批量查询文档

GET /索引/_mget
{
    "docs":[
       {"_id":id值},
       {"_id":id值}
   ]
}

查询所有文档

GET /索引/_search
{
   "query": {
       "match_all": {}
   }
}

修改文档部分字段

POST /索引/_doc/id值/_update
{
    "doc":{
        域名:值
  }
}

注:

Elasticsearch执行删除操作时,ES先标记文档为deleted状态, 而不是直接物理删除。当ES存储空间不足或工作空闲时,才会执行物理删除操作。 Elasticsearch执行修改操作时,ES不会真的修改Document中的数据,而是标记ES中原有的文档为deleted状态,再创建一个 新的文档来存储数据。

实时学习反馈

1. 在Elasticsearch中,删除文档的原理为

A 直接物理删除

B 先标记为deleted状态,之后再执行物理删除

C 只标记为deleted状态,不进行物理删除

D 以上说法都不正确

2. 在Elasticsearch中,根据id批量查询文档的请求路径为

A /索引/_mget

B /索引/_get

C /索引/_search

D /索引/_doc/id值 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(转载)支持向量机(SVM)的回归拟合(matlab实现)

与传统的神经网络相比,SVM具有以下几个优点: (1)SVM是专门针对小样本问题而提出的,可以在有限样本的情况下获得最优解。 (2)SVM算法最终将转化为一个二次规划问题,从理论上讲可以得到全局最优解,从而解决了传统神经网…

Python GUI编程利器:Tkinker中的布局管理器(10)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日目标 学习Tkinter的三个布局管理器: pack布局管理器 gird布局管理器 place布局管理器 啥是布局管理器&am…

TCP流套接字编程(模拟多个客户端与服务器交互)

目录 一、ServerSocket API 1.1、ServerSocket构造方法 1.2、ServerSocket方法 二、Socket API 2.1、socket构造方法 2.2、socket方法 三、TCP 中的长短连接 四、示例 实现聊天室功能 五、存在的问题 一、ServerSocket API ServerSocket 是创建TCP服务端Socket的…

500个线程运行串行原因排查

场景:项目中有业务需要开启500个线程执行,需要证明有500个线程在执行。用的是一台128核的电脑。服务用docker启动的。所以理论上应该是要有128个线程并行执行的。 目录 一.证明有500个线程在执行(会发现并行度很低) 1.用top命令监控进程内的线程运行情…

netty学习(5):netty实现注册中心和发送JSON数据到指定的客户端

1. 实现:在netty客户端实现netty客户端注册功能,netty客户端需要发送注册消息到netty服务端。 2. 在父工程创建Message类,定义消息格式和消息类型 定义消息类型: package message;public enum MessageType {RegisterRequest,Re…

函数重载与函数递归

一、函数重载 定义:两个函数的函数名称相同,但是参数的个数或者类型不同 参考以下代码: //1.public static int add(int x,int y){return x y;}//2.与1构成重载public static int add(byte a,int b){return a b;}//3.与1构成重载public s…

文件上传漏洞总结

文件上传 文件上传漏洞产生的原理 文件上传漏洞是指用户通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好。 文件上传漏洞的危害 1、由于是上传的文件,所以文件由用户决定,上传we…

交换机架构整理

网口的基本结构 网口扫盲三:以太网芯片MAC和PHY的关系 问:如何实现单片以太网微控制器? 问:以太网MAC是什么? 问:什么是MII? 问:以太网PHY是什么? 问:造成以太网MAC和PHY单片整合难度高的原因是什么? 问: 网卡上除RJ-45接口外,还需要其它元件吗? 问:10BaseT和100BaseTX…

LeetCode[面试题17.14]最小的K个数

难度&#xff1a;中等 题目&#xff1a; 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4]提示&#xff1a; 0 < len(arr) < 1000000 <…

Java设计模式之创建型-建造者模式(UML类图+案例分析)

目录 一、基本概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基本概念 建造者模式是一种创建型设计模式&#xff0c;它使我们将一个复杂对象的构建步骤分离出来&#xff0c;使得同样的构建过程可以创建不同的表示。该模式的目的是将构建复杂对象的过程抽象化…

JavaScrpt_13 Web API 正则表达式

JavaScrpt_13 Web API 正则表达式 一、 正则表达式1. 正则基本使用2. 元字符边界符量词范围字符类 3. 替换和修饰符4. change 事件5. 判断是否有类 一、 正则表达式 正则表达式&#xff08;Regular Expression&#xff09;是一种字符串匹配的模式&#xff08;规则&#xff09;…

12_Linux异步通知

目录 异步通知简介 驱动中的信号处理 应用程序对异步通知的处理 驱动程序编写 编写测试APP 运行测试 异步通知简介 在使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过poll函数不断的轮询。最好的方式就是驱动…

【Python爬虫与数据分析】时间、日期、随机数标准库

目录 一、模块化概述 二、time库 1. 时间获取 2. 时间格式化 3. 程序计时 三、datetime库 1. datetime.datetime类 2. datetime.timedelta类 四、random库 1. 基本随机函数 2. 扩展随机函数 3. 随机时间的生成 一、模块化概述 Python程序由模块组成&#xff0c;一个…

MySQL基础篇第4章(运算符)

文章目录 1、算术运算符1.1 加法与减法运算符1.2 乘法与除法运算符1.3 求模&#xff08;求余&#xff09;运算符 2、比较运算符2.1 等号运算符2.2 安全等于<>2.3 不等于运算符2.4 空运算符2.5 非空运算符2.6 最小值运算符2.7 最大值运算符2.8 BETWEEN AND运算符2.9 IN运算…

typeScript(持续吐血版)

typeScript-02-进阶(TSVue3) 结合vue3来使用TypeScript 使用vite来创建vue3TS的项目 使用vite创建项目&#xff0c;并选择带ts的版本 npm create vitelatest my-vue-ts-app – --template vue-ts 参考链接&#xff1a;https://vuejs.org/guide/typescript/composition-api…

7.软件是怎么样炼成的:c++编译器过程

"重新生成解决方案"&#xff0c;"调试"的背后的四个阶段 故事&#xff1a; 渣男是有套路和步骤的。 代码变成软件也是有固定的套路的 总结&#xff1a; 1.预处理 g -e源程序&#xff0c;-o生成的结果。后面的a.cpp是新的源文件。这个时候还是源程序计算…

leetcode-977. 有序数组的平方

leetcode-977. 有序数组的平方 文章目录 leetcode-977. 有序数组的平方一.题目描述二.第1次提交(std::sort)三.第2次提交(左右指针) 一.题目描述 二.第1次提交(std::sort) class Solution {public:vector<int> sortedSquares(vector<int> &nums) {for (int i …

Centos或Linux编写一键式Shell脚本删除用户、组指导手册

文章目录 一、目的二、操作步骤 一、目的 本指导手册为了更加方便使用Centos或者Linux&#xff0c;并在里面删除用户、用户组。 注意点1&#xff1a;userdel命令删除该用户时&#xff0c;并不能删除该用户的所有信息&#xff0c;只是删除了/etc/passwd、/etc/shadow、/etc/gr…

Vue3 +TScript 基本开发

首先你要使用 vite 创建项目 npm init vuelatest 并选择带ts的版本 文件的结构 main.ts 文件 import { createApp } from "vue" import { createPinia } from piniaimport App from "./App.vue" const pinia createPinia() const app createApp(App)a…

map、multimap、set、multiset讲解

文章目录 &#x1f4cd;前言1. 关联式容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set的介绍3.1.2 set的使用 3.2 map3.2.1 map的介绍3.2.2 map的使用 3.3 muitiset3.3.1 multiset的介绍3.3.2 multiset的使用 3.4 multimap3.4.1 multimap的介绍3.4.2 multimap的使用 3.5…