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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 新手搭建项目系列——elasticsearch集群搭建 -> 正文阅读

[大数据]新手搭建项目系列——elasticsearch集群搭建

elasticsearch集群搭建

集群配置信息

主要自己使用验证技术实现,所以一主一从能够达到相互容灾效果就行

节点名ip
es-node-01192.168.136.131
es-node-02192.168.136.132

创建所需目录

  • es-node-01
# 创建docker目录用来摆放所有docker所需要用的东西
mkdir /docker
# 创建es目录存放elasticsearch相关文件
mkdir /docker/es
# 创建data、config、plugins分类存放es的文件
mkdir /docker/es/data
mkdir /docker/es/config
mkdir /docker/es/plugins
  • es-node-02
# 创建docker目录用来摆放所有docker所需要用的东西
mkdir /docker
# 创建es目录存放elasticsearch相关文件
mkdir /docker/es
# 创建data、config、plugins分类存放es的文件
mkdir /docker/es/data
mkdir /docker/es/config
mkdir /docker/es/plugins

集群配置

es-node-01

下载elasticsearch镜像

# 下载7.13.2版本elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.2

下载elasticsearch-hd镜像

# 下载latest版本elasticsearch,不填写版本号默认下载latest版本
docker pull containerize/elastichd

下载elasticsearch-ik、elasticsearch-pinyin插件

ik分词器插件
在这里插入图片描述

pinyin支持拼音搜索的插件
在这里插入图片描述

下载与elasticsearch同版本号7.13.2的包,插件版本和elasticsearch必须一致不否则会出现报错

解压插件至plugins

使用FanalShell上传插件包至/docker/es/plugins文件夹中
在这里插入图片描述

# 安装unzip解压插件
yum install -y unzip

# 进入plugins文件夹中
cd /docker/es/plugins
# 解压ik、pinyin
unzip elasticsearch-analysis-ik-7.13.2.zip -d elasticsearch-analysis-ik
unzip elasticsearch-analysis-pinyin-7.13.2.zip -d elasticsearch-analysis-pinyin

配置elasticsearch.yml

# 创建并编辑elasticsearch.yml
vi /docker/es/config/elasticsearch.yml


# 填写如下内容
# 绑定地址0.0.0.0代表绑定自身ip
network.host: 0.0.0.0
# 下面两个配置用来解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"

配置docker-compose.yml

# 创建并编辑docker-compose.yml
vi /docker/es/docker-compose.yml


# 填写如下内容
version: '2.2'
services:
  # 集群节点名称
  es-node-01:
    # 节点镜像名称
    image: docker.elastic.co/elasticsearch/elasticsearch:7.13.2
    # 节点容器名称
    container_name: es-node-01
    # 重启后自动启动
    restart: always
    # 节点环境配置
    environment:
      # 节点名称
      - node.name=es-node-01
      # 所属集群名称
      - cluster.name=es-elasticsearch-cluster
      # 对外发布地址
      - network.publish_host=192.168.136.131
      # 服务绑定地址
      - network.host=0.0.0.0
      # 集群主机池
      - discovery.seed_hosts=192.168.136.131,192.168.136.132
      # 初始化主节点池
      - cluster.initial_master_nodes=192.168.136.131,192.168.136.132
      # 启用内存交换
      - bootstrap.memory_lock=true
      # 设置使用内存为256m  可以根据自身需求调整
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      # 不限制内存
      memlock:
        soft: -1
        hard: -1
    # 映射本地目录至容器中
    volumes:
      - data01:/docker/es/data
      - /docker/es/plugins:/usr/share/elasticsearch/plugins
      - /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      # 访问端口
      - 9200:9200
      # 集群通讯端口
      - 9300:9300
  # 配置elasticsearch-hd
  elastichd:
    # 使用的镜像
    image: containerize/elastichd:latest
    # 使用容器名称
    container_name: elasticsearch-hd
    ports:
      # 使用节点不要改,否则打不开
      - 9800:9800
    # 依赖elasticsearch
    depends_on:
      - "es-node-01"
    # 和es-node-01进行连接
    links:
      - "es-node-01"

volumes:
  data01:
    driver: local

修改vm.max_map_count

# 编辑sysctl.conf
vi /etc/sysctl.conf
# 在最后追加
vm.max_map_count=262144

# 文件保存后刷新sysctl使之生效
sysctl -p 

启动elasticsearch

# 进入es文件夹
cd /docker/es
# docker-compose命令启动
docer-compose up -d
# 使用docker ps查看正在运行的container
docker ps

在这里插入图片描述
这时候已经可以在宿机上访问这个节点的elasticsearch了
可以先在虚拟机上使用 curl尝试连接elasticsearh

curl localhost:9200

出现如下结果就表示这个节点本机已经可以访问了 我们可以在宿机上在尝试下
在这里插入图片描述
宿机访问节点1:es-node-01
192.168.136.131:9200 与自身访问结果一直,显示如下
在这里插入图片描述

es-node-02

与es-node-01差异

es-node-02可以按照es-node-01的方法如法炮制的配置,只需要修改docker-compose.yml中一些配置参数即可

配置docker-compose.yml

# 创建并编辑docker-compose.yml
vi /docker/es/docker-compose.yml


# 填写如下内容
version: '2.2'
services:
  # 集群节点名称
  es-node-02:
    # 节点镜像名称
    image: docker.elastic.co/elasticsearch/elasticsearch:7.13.2
    # 节点容器名称
    container_name: es-node-02
    # 重启后自动启动
    restart: always
    # 节点环境配置
    environment:
      # 节点名称
      - node.name=es-node-02
      # 所属集群名称
      - cluster.name=es-elasticsearch-cluster
      # 对外发布地址
      - network.publish_host=192.168.136.132
      # 服务绑定地址
      - network.host=0.0.0.0
      # 集群主机池
      - discovery.seed_hosts=192.168.136.131,192.168.136.132
      # 初始化主节点池
      - cluster.initial_master_nodes=192.168.136.131,192.168.136.132
      # 启用内存交换
      - bootstrap.memory_lock=true
      # 设置使用内存为256m  可以根据自身需求调整
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      # 不限制内存
      memlock:
        soft: -1
        hard: -1
    # 映射本地目录至容器中
    volumes:
      - data02:/docker/es/data
      - /docker/es/plugins:/usr/share/elasticsearch/plugins
      - /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      # 访问端口
      - 9200:9200
      # 集群通讯端口
      - 9300:9300

volumes:
  data02:
    driver: local

elasticsearch-hd 我只在es-node-01中使用了,es-node-02中未使用

elasticsearch-hd

es-node-01和es-node-02都运行起来后就可以访问es-node-01上配置的elasticsearch-hd
将默认连接的127.0.0.1:9200替换为我们配置的192.168.136.131:9200然后点击Connect
集群状态显示为Green,表示我们的集群已经建立成功,下面可以看到集群的信息。
在这里插入图片描述

查看集群状态

http://192.168.136.131:9200/_cat/health?v

查看插件

http://192.168.136.131:9200/_cat/plugins

问题排查

如果集群建立有问题,首先排查每个节点是否正在运行,如果节点未运行,可以看下节点启动时的logs,来排查问题

# 通过容器的名称或id查看容器的运行logs
docker logs 【container name/id】

可根据logs中的errors等逐个排查

总结

本章主要介绍通过docker、docker-compose配置elasticsearch集群级elasticsearch-hd

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:05:55  更:2021-07-14 23:06:49 
 
开发: 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/2 22:43:42-

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