CentOS7 上搭建多节点 Elasticsearch 集群 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hansonwang99
V2EX    程序员

CentOS7 上搭建多节点 Elasticsearch 集群

  •  1
     
  •   hansonwang99
    hansonwang99 2018-11-06 08:00:06 +08:00 3617 次点击
    这是一个创建于 2603 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Profile

    本文内容脑图如下:

    本文内容脑图

    文章共 747 字,阅读大约需要 2 分钟 !


    概 述

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

    注: 本文首发于 My Personal Blog: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 es useradd es -g es chown -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/ 查看启动效果

    启动后浏览器访问效果

    • 命令行查看集群信息

    image.png

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

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

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

    • 接下来插入两条数据
    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 集群,若发现如下内容,这说明插件安装成功:

    检查 IK 分词器插件安装是否成功

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


    后 记

    由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!



    17 条回复    2018-11-06 13:33:16 +08:00
    znood
        1
    znood  
       2018-11-06 08:10:39 +08:00
    v 站禁止全文转载,这种基础性文章贴个标题就行了,有人看会点的
    hansonwang99
        2
    hansonwang99  
    OP
       2018-11-06 08:14:17 +08:00   1
    @znood 非转载,是我个人原创,codesheep 就是我本人
    kqz901002
        3
    kqz901002  
       2018-11-06 08:19:58 +08:00
    @hansonwang99 #2 果然 V 站不是交流技术的,是用来吹 B 划水的
    fyibmsd
        4
    fyibmsd  
       2018-11-06 08:20:42 +08:00 via iPhone
    分布式至少 3 个节点吧
    hansonwang99
        5
    hansonwang99  
    OP
       2018-11-06 08:22:19 +08:00 via iPhone
    @fyibmsd ES 无缝扩展,再多点节点也没有问题
    marcomarco
        6
    marcomarco  
       2018-11-06 08:23:21 +08:00
    可以的,学习了
    fgt
        7
    fgt  
       2018-11-06 08:42:17 +08:00
    怎么只装了 ES,配套的 Kibana 和 Logstash 呢;另外建议再出个 docker 版
    hansonwang99
        8
    hansonwang99  
    OP
       2018-11-06 08:59:27 +08:00 via iPhone
    @fgt 你是想搞 ELK ?容器化的 ELK 的搭建我个人博客里有
    LeeSeoung
        9
    LeeSeoung  
       2018-11-06 09:08:53 +08:00
    我咋记得至少要三个节点 防止脑裂?
    xiaonan10ll
        10
    xiaonan10ll  
       2018-11-06 09:33:14 +08:00 via iPhone
    twl007
        11
    twl007  
       2018-11-06 10:13:25 +08:00 via iPhone
    @LeeSeoung 是奇数节点 而且是跨机房的才有
    lfzyx
        12
    lfzyx  
       2018-11-06 10:17:14 +08:00
    @LeeSeoung elasticsearch 不存在脑裂问题,节点挂了就挂了,毫无影响
    sudodo
        13
    sudodo  
       2018-11-06 10:37:56 +08:00
    给楼主博客贡献了两次 PV 了。

    每次都是被要求关注公众号的弹窗给逼得关闭页面。

    芋道源码也是这样,个人觉得有些强人所难
    MilkShake
        14
    MilkShake  
       2018-11-06 10:57:24 +08:00
    支持一下楼主,有没有 docker ?
    kslr
        16
    kslr  
       2018-11-06 13:05:45 +08:00 via Android
    你这个文章落后几年了吧
    superlogin
        17
    superlogin  
       2018-11-06 13:33:16 +08:00
    Docker 扩展一个哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1228 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:39 PVG 01:39 LAX 09:39 JFK 12:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86