IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Docker安装Elasticsearch 8.x 、Kibana 8.x等 -> 正文阅读

[大数据]Docker安装Elasticsearch 8.x 、Kibana 8.x等

这里我使用的是8.2.0版本。同时内容会介绍ik分词和elastic-head的安装,elasticsearch-java的配置。

1. 下载ik分词器插件

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.0/elasticsearch-analysis-ik-8.2.0.zip

下载后,创建目录esplugins(名称自定义)用于后续es容器将插件目录挂载到该目录。由于我的docker环境是在window电脑下。创建目录地址C:\Users\QM\Desktop\es\esplugins8。
将下载的zip包解压到目录下。目录结构如下:

在这里插入图片描述

2. 创建docker网络

docker network create es

3. 安装ElasticSearch 8.2.0

# 拉取elasticsearch镜像
docker pull elasticsearch:8.2.0

# 启动镜像(换行符是win下的,linux需要自己更改)
docker run -d --name es8 --net es ^
-v C:\Users\QM\Desktop\es\esplugins8:/usr/share/elasticsearch/plugins ^
-p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.2.0

启动之后在容器中查看日志。会打印出token,密码等信息,需要保存后续使用。页面如下。

在这里插入图片描述

启动成功后,访问https://127.0.0.1:9200/会出现如下界面:

在这里插入图片描述

账号elastic,密码就是控制台生成的。登录后看到如下图就是启动成功了:

在这里插入图片描述

我这边并没有发现密码和token哈,不过不急,可以自己生成。

3.1 生成elastic密码及enrollment-token

# 生成超级管理员elastic的密码
docker exec -it es8 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
# 生成enrollment-token(目前只发现kibana登录需要使用)
docker exec -it es8 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

3.2 修改配置文件

这时,需要修改es的配置文件。增加跨域及http的配置。可以直接进入容器修改,也可以copy出来修改在copy回去。由于进入容器还需要下载vim。我这边直接copy出来修改。

# copy到桌面
docker cp es8:/usr/share/elasticsearch/config/elasticsearch.yml C:\Users\QM\Desktop\elasticsearch.yml

# =====添加如下配置=====
# 开启跨域
http.cors.enabled: true
# 所有人访问
http.cors.allow-origin: "*"
# ======================

# =====修改如下配置为false=====
xpack.security.http.ssl:
  enabled: false
# ======================

# 保存后copy回去
docker cp C:\Users\QM\Desktop\elasticsearch.yml es8:/usr/share/elasticsearch/config/elasticsearch.yml 

这里解释下,为什么要修改http.ssl为false
答:如果不修改,访问elasticsearch默认是https请求。也没问题。但是在java-api中操作,请求需要配置ca证书。我觉的很麻烦。关闭后直接使用基本认证账号密码就可以了。

修改后,重启es。

docker restart es8

4. 安装kibana 8.2.0

# 拉取镜像
docker pull kibana:8.2.0

# 启动镜像(环境变量,指定中文,也就是汉化)
docker run -d --net es --name kb8 -p 5601:5601  -e "I18N_LOCALE=zh-CN" kibana:8.2.0

访问地址:http://localhost:5601/,如下:
在这里插入图片描述

这时,我们就可以把在elasticsearch启动时生成的令牌粘贴到里面。然后点击配置Elastic。
在这里插入图片描述

弹窗该窗口,kibana需要验证码。这个验证码在kibana容器控制台也可以看到:

在这里插入图片描述

如果没看到,也可以使用如下命令生成:

docker exec -it kb8 /usr/share/kibana/kibana-verification-code

然后就出现了如下(如果http.ssl没关,不会出现这种情况。但是后续步骤也是差不多的,继续看就好):

在这里插入图片描述

额,可能是我在elasticsearch配置文件中关闭了http.sll导致的。不慌,备选方案,点击手动配置。

在这里插入图片描述

这个地址是kibane访问elasticsearch的地址。如果检查上方的默认值肯定是不通的。在kibana容器中ping localhost:9200肯定不会通啊。但是他俩在一个docker网络。我们去docker查看下elasticsearch的ip地址。

# 查看网络详情
docker network inspect es

找到下面这一段。发现es的ip为172.18.0.2

在这里插入图片描述

在kibana页面输入http://172.18.0.2:9200检查,进入如下页面:

在这里插入图片描述

这个页面的用户kibana_system的密码需要我们去生成。命令如下:

docker exec -it es8 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system

生成后,输入密码点击配置,如下就算成功了。

在这里插入图片描述

等配置好后,会需要我们登录。那这个账号就是elastic超级管理员的账号登录了,密码忘记可以看3.1重新生成。

在这里插入图片描述

登陆后,大功告成!

在这里插入图片描述

5. 安装elasticsearch-head

这个其实没必要安装,像一些视频,博主啥的。还要下载node环境,下载项目啥的。谷歌浏览器有吧。谷歌商店(这要进不去,身为程序员反思下)能进去吧,搜索elasticsearch-head。下载浏览器插件就好了。

在这里插入图片描述

下载好之后打开插件页面,配置elasticsearch地址。认证就好了。账号密码就是elastic那个。

在这里插入图片描述

登录成功后。

在这里插入图片描述

6. Java-api

其实elasticsearch8.x之后的java-api的命名空间(改为co.elastic.clients)与名字(改为elasticsearch-java)都改了。像什么RestHighLevelClient这些类也弃用了。取而代之的是ElasticsearchClient。
由于我们大部分都是使用springboot,这里就按照springboot集成。

6.1 引入依赖

我这里的springboot是2.7.0 。注意版本兼容,尽量与es服务版本相同。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!--参照:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.17/installation.html-->
<dependency>
  <groupId>jakarta.json</groupId>
  <artifactId>jakarta.json-api</artifactId>
  <version>2.0.1</version>
</dependency>

6.2 配置yml

spring:
  elasticsearch:
    username: elastic
    password: Zwpf5villae8_S+ZizxR

6.3 配置bean

由于自动配置类,最高版本也没有兼容ElasticsearchClient。还是注入的RestHighLevelClient。所以我们这边自己配置注入ElasticsearchClient

/**
* 最新版已经弃用RestHighLevelClient。
* 同时所有操作类移动到co.elastic包下
* 该版本依赖不出意外是兼容到es8.x
*/
@Bean
ElasticsearchClient elasticsearchClient(RestClient restClient) {
    // Create the Java API Client with the same low level client
    ElasticsearchTransport transport = new RestClientTransport(
        restClient,
        new JacksonJsonpMapper()
    );
    return new ElasticsearchClient(transport);
}

6.4 总结

我相信,能看到这篇文章的,Java都不弱。具体API,参考官网使用吧:
https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:11:43  更:2022-06-25 18:14:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:50:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码