一、ElasticSearch学习笔记(安装篇+Docker安装ES)

一、ES安装(注意:ES不能以root用户安装)

  • 此处安装的是elasticsearch7.14.0版本

链接:https://pan.baidu.com/s/1uejS-sYcutgPUcZT4hQ5vw
提取码:1234
–来自百度网盘超级会员V4的分享

  • 下载后上传至云服务器
  • 注意:es只能由非root用户安装
## 将es包上传至/home/laurie目录下
scp F:/elasticsearch-7.14.0-linux-x86.tar.gz root@xxx.xxx.xx.xx:/home/laurie
  • 上传完成后解压:
tar -zxvf elasticsearch-7.14.0-linux-x86.tar.gz
  • 解压后目录
  • 其中bin目录为es启动的一些脚本目录
  • config为es的配置目录
  • 注意:es-7.xx版本后必须jdk11版本以上,所以他自带了一个jdk包
  • lib为依赖jar包

在这里插入图片描述

  • 指定jdk
  • 开启远程连接
## 配置ES_JAVA_HOME  打开/etc/profile
vim /etc/profile
## 在末尾加上
export ES_JAVA_HOME=/home/laurie/elasticsearch-7.14.0/jdk
## 保存并推出,记得source一下
source /etc/profile
#修改es配置文件
vim elasticsearch.yml
# 开启es的远程连接,并配置节点暂为单节点
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]

  • 修改jvm运行内存
  • 编辑/etc/sysctl.conf
  • 注意:修改完必须sysctl -p刷新使立即生效
# 添加配置
vm.max_map_count=262144
# 刷新
sysctl -p
  • 全部配置完成后便可以启动es了
  • es默认端口为9200
# 进入脚本目录
cd bin
# 执行es脚本
./elasticsearch
# 后台启动
./elasticsearch -d
  • 请求es接口出现如下信息即为安装成功
{
name: "VM-16-16-centos",
cluster_name: "elasticsearch",
cluster_uuid: "_na_",
version: {
number: "7.14.0",
build_flavor: "default",
build_type: "tar",
build_hash: "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
build_date: "2021-07-29T20:49:32.864135063Z",
build_snapshot: false,
lucene_version: "8.9.0",
minimum_wire_compatibility_version: "6.8.0",
minimum_index_compatibility_version: "6.0.0-beta1"
},
tagline: "You Know, for Search"
}

ES启动调优

因为云服务器只有4g内存,而我的es启动默认堆内存就占用了1.8g,如何修改这个堆内存?

# 进入es的config目录 修改jvm参数  
cd config  
vim jvm.options
#修改  
-Xms514m
-Xmx514m

ES启动报错://依然不理解

  • 因为不小心用root用户启动了es导致es的log文件的属主变成root,所以用普通用户启动一直报日志相关的错误,
  • 解决方法:修改elasticsearch.log和elasticsearch_server.json
chgrp -R es my-elasearch.log 
chgrp -R es my-elasearch_server.json 
chown -R es my-elasearch_server.json 
chown -R es my-elasearch.log 

二、Kibana客户端工具安装

  • kibana版本必须和es版本一致

链接:https://pan.baidu.com/s/1pFR48aN6fffxhk7jLhH0mA
提取码:1234
–来自百度网盘超级会员V4的分享

  • 下载后上传至云服务器
## 将kibana包上传至/home/laurie目录下
scp F:/kibana-7.14.0-linux-x86.tar.gz root@xxx.xxx.xx.xx:/home/laurie
  • 上传完成后解压:
tar -zxvf kibana-7.14.0-linux-x86.tar.gz
  • 解压后目录
  • 其中bin目录为kibana启动的一些脚本目录
  • config为kibana的配置目录

kibana解压目录

  • 配置kibana的es地址相关
  • 需要注意的是:如果是云服务器环境,不管es还是kibana都必须开放防火墙对应的端口
# 编辑config目录下的kibana.yml文件
#vim kibana.yml
# 编辑 server.host: "0.0.0.0"使得远程服务器能访问
# 编辑 elasticsearch.hosts: ["http://110.42.200.215:9200"]
  • 配置完成后进入bin启动kibana
#直接启动
./kibana
#后台启动
nohup ./kibana &

TODO:

  • 使用Docker容器安装es和kibana

三、安装中文分词器

在ES中支持中文分词器非常多 如 smartCN IK等, 推荐的就是IK分词器。

安装IK

开源分词器:GitHub安装地址:IK分词器安装地址

  • 注意  IK分词器的版本要和你安装ES的版本一致
  • 注意  Docker容器运行ES安装插件目录为/usr/share/elasticsearch/plugins
# 1. 下载对应版本  

四、Docker安装ES

参考文章:https://blog.csdn.net/qq_44732146/article/details/120744829
堆内存报错:https://blog.csdn.net/qq_40223688/article/details/112304496

  • 拉取es镜像
# 这里安装7.12.0版本
sudo docker pull elasticsearch:7.12.0
  • 创建ES在宿主机的挂载目录
sudo mkdir -p /docker/elasticsearch/config
sudo mkdir -p /docker/elasticsearch/data
sudo mkdir -p /docker/elasticsearch/plugins
  • 编写ES配置文件
# 配置远程连接; 配置单例模式
echo 'network.host: 0.0.0.0 \n cluster.initial_master_nodes: ["node-1"]' >> /opt/elasticsearch/config/elasticsearch.yml
  • 启动容器
sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.0
  • 查看启动状态
# 查看启动日志
sudo docker logs --tail 200 elasticsearch
# 访问ES接口
http://localhost:9200
  • 可能出现的异常

1. 读写权限异常

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes

  • 解决方法:
# 修改宿主机挂载的elasticsearch目录
sudo chmod -R 777 /docker/elasticsearch/

2. 堆内存启动异常

initial heap size [268435456] not equal to maximum heap size [536870912]; this can cause resize pauses and prevents mlockall from locking the entire heap

  • 解决方法:
# 解决方法1
在启动容器时指定 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" 最大最小堆内存相同
# 解决方法2
修改容器中 /config/jvm.options文件 -Xms512m -Xmx512m 相同

五、使用elasticdump迁移es索引及数据

参考文章

5.1 docker安装elasticdump

# 拉镜像
docker pull taskrabbit/elasticsearch-dump
# 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值