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部署es服务(包含ansj、analysis-ik、analysis-pinyin中文分词器) -> 正文阅读

[系统运维]docker部署es服务(包含ansj、analysis-ik、analysis-pinyin中文分词器)

1.创建文件夹

mkdir es
cd es
mkdir dockerfile #镜像构建目录
mkdir shell 构建镜像、运行容器相关脚本
mkdir volumes 挂载文件所在目录,一般包括日志、配置、持久化数据

2.准备构建镜像所需要的的三个分词器
analysis-ik-7.4.2.zip
analysis-pinyin-7.4.2.zip
elasticsearch-analysis-ansj-7.4.2.0-release.zip
在这里插入图片描述

3.创建Dockerfile文件

cd  dockerfile
vim Dokcerfile

添加下面的内容

FROM elasticsearch:7.4.2

#author
MAINTAINER mfw

ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins
ENV ES_PLUGINS_IK_PATH /usr/share/elasticsearch/plugins/ik
ENV ES_PLUGINS_PINYIN_PATH /usr/share/elasticsearch/plugins/pinyin
ENV ES_PLUGINS_ANSJ_PATH /usr/share/elasticsearch/plugins/ansj

COPY analysis-ik-7.4.2.zip  /home/
COPY analysis-pinyin-7.4.2.zip  /home/
COPY elasticsearch-analysis-ansj-7.4.2.0-release.zip  /home/
RUN yum -y install unzip  && mkdir -p $ES_PLUGINS_PATH && mkdir -p $ES_PLUGINS_IK_PATH && mv /home/analysis-ik-7.4.2.zip $ES_PLUGINS_IK_PATH && cd $ES_PLUGINS_IK_PATH && unzip *.zip && rm -rf *.zip && mv $ES_PLUGINS_IK_PATH/analysis-ik-7.4.2/* ./ && rm -rf $ES_PLUGINS_IK_PATH/analysis-ik-7.4.2  && mkdir -p $ES_PLUGINS_PINYIN_PATH && mv /home/analysis-pinyin-7.4.2.zip $ES_PLUGINS_PINYIN_PATH && cd $ES_PLUGINS_PINYIN_PATH && unzip *.zip && rm -rf *.zip && mv $ES_PLUGINS_PINYIN_PATH/analysis-pinyin-7.4.2/* ./ && rm -rf $ES_PLUGINS_PINYIN_PATH/analysis-pinyin-7.4.2  && mkdir -p $ES_PLUGINS_ANSJ_PATH && mv /home/elasticsearch-analysis-ansj-7.4.2.0-release.zip $ES_PLUGINS_ANSJ_PATH && cd $ES_PLUGINS_ANSJ_PATH && unzip *.zip && rm -rf *.zip && mv $ES_PLUGINS_ANSJ_PATH/elasticsearch-analysis-ansj-7.4.2.0-release/* ./ && rm -rf $ES_PLUGINS_ANSJ_PATH/elasticsearch-analysis-ansj-7.4.2.0-release  
#镜像内置elasticsearch,不需要创建用户
#&& useradd hd  && chown -R hd:hd $ES_PLUGINS_PATH && chown -R hd:hd  /usr/share/elasticsearch
#使用内置账户
USER elasticsearch

es不支持使用root账户启动
4.创建构建镜像脚本

cd ../shell/
vim build

加入构建脚本

#!/bin/bash
DOCKER_PATH=$PWD/../
sudo docker build -f $DOCKER_PATH/dockerfile/Dockerfile  -t elasticsearch-with-ansj-ik-pinyin:7.4.2 $DOCKER_PATH/dockerfile/

赋予执行权限

chmod 755 build

执行

./build

在这里插入图片描述
查看镜像

sudo docker images

在这里插入图片描述

5.创建容器
创建docker run脚本

vim run

内容如下

#!/bin/sh
DOCKER_PATH=$PWD/../
port=9200
version=7.4.2
imageName=elasticsearch-with-ansj-ik-pinyin
sudo docker run  -d -p ${port}:9200 --name  es  -v /etc/localtime:/etc/localtime -v $DOCKER_PATH/volumes/config/jvm.options:/usr/share/elasticsearch/config/jvm.options -v $DOCKER_PATH/volumes/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v $DOCKER_PATH/volumes/log/:/usr/share/elasticsearch/logs/ -v $DOCKER_PATH/volumes/data/:/usr/share/elasticsearch/data/ --restart=unless-stopped  ${imageName}:${version}  elasticsearch

执行

./run

6.验证是否启动成功
浏览器访问ip:9200
出现下面信息即为启动成功
在这里插入图片描述

挂载的时候可能会出现权限问题
linux验证权限的时候只认uid和gid而不是用户名和组名
如:宿主机上有一个文件夹a要挂载到容器里,在宿主机里文件夹的用户名是hd(uid1000)组是hd(gid1000)
容器里有一个默认用户elasticsearch(uid1000)用户组elasticsearch(gid1000)
还有一个我么自己创建的用户hd(uid1001) 用户组hd(gid1001)
那么宿主机的这个文件夹a挂载到容器内部显示所属用户和组是
elasticsearch
权限问题复现:
宿主机用户hd(uid1000)组是hd(gid1000)
容器内es服务默认用户elasticsearch(uid1000)组是hd(gid1000)
Dockerfile中添加容器用户hd(uid1001)组是hd(gid1001)并把容器中的es服务用户和组改为户hd(uid1001)组hd(gid1001)
在不挂载宿主机文件时,容器内使用hd(uid1001)组hd(gid1001)启动es服务是没有权限问题
但在挂载宿主机文件到容器时,宿主机文件权限为hd(uid1000)组是hd(gid1000),映射到容器中,根据uid和gid去判断全新,则挂载的文件在宿主机内是elasticsearch(uid1000)组hd(gid1000),会导致挂载的文件容器内的hd(uid1001)组hd(gid1001)用户没有权限,而容器内用hd用户启动es服务时需要去读取挂载的配置、日志等文件,从而产生没权限的错误

es服务启动遇到的一些警告或问题
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
修改jvm.options配置文件
-XX:+UseConcMarkSweepGC 改为-XX:+UseG1GC
在这里插入图片描述

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
宿主机

sudo vim /etc/sysctl.conf

追加一行

vm.max_map_count=655360

执行

sudo sysctl -p

在这里插入图片描述

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
修改服务配置

vim /usr/share/elasticsearch/config/elasticsearch.yml

改为以下内容

# 设置节点名字
node.name: node-1
# 设置访问端口
http.port: 9200
# 取消注释:保留一个节点
cluster.initial_master_nodes: ["node-1"]

# 远程连接配置
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:44:38  更:2021-08-29 09:47:14 
 
开发: 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年11日历 -2024/11/15 12:09:54-

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