本文内容脑图如下:

文章共 747字,阅读大约需要 2分钟,文尾有计时器可自行对时。

概 述

最近学 Elasticsearch,既然学之,怎么能没有实际的集群来把玩呢,因此自己必须动手搭一个!

注: 本文首发于 作者公众号 CodeSheep ,可 长按 / 扫描 下面的 小心心 来订阅 ↓ ↓ ↓

环境准备

  • 节点准备

本文准备搭建双节点 Elasticsearch集群,因此这里准备了两台 Linux CentOS 7.4 64bit 机器:

  • 节点1: 192.168.31.8

  • 节点2: 192.168.31.9
  • Elasticsearch 安装包准备

这里下载的是截止到当前日期的最新版: 6.4.2

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
  • 安装目录准备

这里拟将 Elasticsearch安装在 /opt/elasticsearch 目录下:

mkdir /opt/elasticsearch将压缩包复制到该目录下并解压

Elasticsearch集群配置

需要修改两个节点上的配置文件 elasticsearch.yml

  • 节点1 配置
    cluster.name: codesheep         # 集群名称    node.name: sheep1                 # 节点名    network.host: 192.168.31.8     # 绑定的节点1地址    network.bind_host: 0.0.0.0      # 此项不设置你试试本机可能访问不了啊    discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"]  # hosts列表    discovery.zen.minimum_master_nodes: 1     ## 如下配置是为了解决 Elasticsearch可视化工具 dejavu的跨域问题!若不用可视化工具则可省略之    http.port: 9200    http.cors.allow-origin: "http://192.168.199.76:1358"    http.cors.enabled: true    http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization    http.cors.allow-credentials: true
  • 节点2 配置
    cluster.name: codesheep         # 集群名称    node.name: sheep1                 # 节点名    network.host: 192.168.31.9     # 绑定的节点2地址    network.bind_host: 0.0.0.0         discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"]  # hosts列表    discovery.zen.minimum_master_nodes: 1     ## 如下配置是为了解决 Elasticsearch可视化工具 dejavu的跨域问题!若不用可视化工具则可省略之    http.port: 9200    http.cors.allow-origin: "http://192.168.199.76:1358"    http.cors.enabled: true    http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization    http.cors.allow-credentials: true

集群启动前准备

  • 创建用户及用户组

由于 Elasticsearch不能以 root用户启动,因此需要添加非 root用户:

groupadd esuseradd es -g eschown -R es:es ./elasticsearch-6.4.2
  • 关闭防火墙
    systemctl stop firewalld    systemctl disable firewalld

启动Elasticsearch集群

  • 切换用户
    su es
  • 分别在 节点1和 节点2上启动ES服务
    cd bin    ./elasticsearch  // 若要后台启动,则加-d参数
  • 浏览器访问:http://ip:9200/ 查看启动效果

  • 命令行查看集群信息

  • 利用可视化工具 dejavu查看集群信息

关于 Elasticsearch集群可视化管理工具的上手,可以参考我的前文:《一文上手 Elasticsearch常用可视化管理工具》

  • 接下来插入两条数据
    curl -X PUT 'localhost:9200/accounts/person/1' -d '    {      "user": "张三",      "title": "工程师",      "desc": "数据库管理"    }'     curl -X PUT 'localhost:9200/accounts/person/1' -d '    {      "user": "赵四",      "title": "设计师",      "desc": "UI设计"    }' 
  • 查看数据的入库效果

OK,索引 / 类型 / 文档 一目了然!

若在 Elasticsearch集群 安装/启动 过程 中有任何奇葩 问题/错误 的话,就参考我的这篇文章:《CentOS7上ElasticSearch安装填坑记》吧,里面的坑我都一个个填过了!

安装 IK分词器

在 Elasticsearch的世界中,插件是很重要的一部分,很多功能都可以通过插件来实现,因此下面就以常用的 IK分词器插件 的安装为例,来操作一下 Elasticsearch插件的安装

分词技术是搜索技术的基石,而 IK分词器是比较经典的一个,接下来尝试安装一下吧

IK分词器版本与 ES版本对应,不能搞错

  • 下载 IK分词器插件
    wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.2/elasticsearch-analysis-ik-6.4.2.zip
  • 解压 / 安装

新建目录 /opt/elasticsearch/elasticsearch-6.4.2/plugins/elasticsearch-analysis-ik-6.4.2

再将 zip包置于上述目录下并解压:

unzip elasticsearch-analysis-ik-6.4.2.zip

  • 重启 Elasticsearch集群

重启 Elasticsearch集群,若发现如下内容,这说明插件安装成功:

怎么样,很简单吧,就是一个解压放置的过程嘛!

后 记

由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!
  • 个人网站:www.codesheep.cn (程序羊)

我的更多系列原创文章:

● 我的半年技术博客之路

● 利用K8S技术栈打造个人私有云系列连载文章

● 从一份配置清单详解Nginx服务器配置

● Spring Boot Admin 2.0开箱体验

● 一文上手 Elasticsearch常用可视化管理工具

● Docker容器可视化监控中心搭建

● 利用ELK搭建Docker容器化应用日志中心

● RPC框架实践之:Google gRPC

● 一文详解 Linux系统常用监控工具

作者更多 务实、能看懂、可复现的 原创文章尽在公众号 CodeSheep,欢迎订阅 ⬇️⬇️⬇️

©著作权归作者所有:来自51CTO博客作者mb5fdcae83766b7的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. kubernetes高可用集群安装(二进制安装、v1.20.2版)
  2. 手把手教你搭建一个 Elasticsearch 集群
  3. LeetCode 图解 | 237.删除链表中的节点
  4. 动画:面试必刷之二叉树搜索第 K 大节点
  5. SSH AKS集群节点的几种方法(一)
  6. 浅谈集群版Redis和Gossip协议
  7. 动画:面试算法之求二叉树的下一节点
  8. PHP 微服务集群搭建 - Hyperf
  9. php+nodeJs+thrift协议,实现zookeeper节点数据自动发现

随机推荐

  1. 在同一列上选择多个条件
  2. MYSQL必知必会-SQL语句查询
  3. 《高性能MySQL》学习笔记一
  4. mysql数据版本控制系统的最佳实践
  5. Log4j2记录日志到数据库(MySQL&MongoDB)
  6. php mysql有条件地将行插入到不同的表中
  7. MySQL架构:空列与联接
  8. CentOS 6.4 安装 JAVA + MYSQL + APACHE
  9. 为什么准备好的语句由每个会话管理?
  10. 程序猿(媛)Shell脚本必备技能之一: 在Lin