一起来学习Elasticsearch—集群环境搭建

一.Elasticsearch的概述:

Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口(一种软件架构风格,使用场景:APP接口)。

二.环境部署测试

1.部署环境要求:

centos7+两台阿里云服务器

2.软件版本控制:

centos7+elasticsearch-2.4.0(插件:license-2.4.0+marvel-agent-2.4.0)+kibana-4.6.3(插件:marvel-2.4.1)

3.安装包下载、解压、安装,修改

elasticsearch官方网址:https://www.elastic.co/

1 .解压elasticsearch-2.4.0.tar.gz:tar -zxvf elasticsearch-2.4.0.tar.gz -C /usr/local/(本人是将解压包放到/usr/local下)

2.解压安装kibana(为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来)
  tar -zxvf kibana-4.6.3-linux-x86_64.tar.gz -C /usr/local/
 *注意*:kibana并不是每台服务器都需要安装,本人只安装在配置比较高点的服务器上!

3.分别修改两台服务器的elasticsearch-2.4.0/config/elasticsearch.yml配置文件。如下:
  a)Cluster.name: Allen chen   (集群别名,同一集群要一样)
  b)Node.name: node-1(节点名,同一集群不能相同)
  c)Network.Host: xx.xx.xx.xx(使用外网ip地址,不能写成127.0.0.1,否则    外界无法访问)
  d)防止脑裂配置
  discovery.zen.ping.multicast.enabled: false
  discovery.zen.ping_timeout: 120s
  client.transport.ping_timeout: 60s
  discovery.zen.ping.unicast.hosts: ["xx.xx.xx.xx","xx.xx.xx.xx"]

4.修改kinana配置文件
elasticsearch.url: "http://elasticsearch访问url"

三、操作部分截图

一起来学习Elasticsearch—集群环境搭建_第1张图片
步骤1.2
一起来学习Elasticsearch—集群环境搭建_第2张图片
elasticsearch.yml图一
elasticsearch.yml图二
一起来学习Elasticsearch—集群环境搭建_第3张图片
kibana.yml配置文件

四、初步测试

cd到elasticsearch的目录,执行:bin/elasticsearch,观察执行结果

一起来学习Elasticsearch—集群环境搭建_第4张图片
执行结果

这是为什么呢?
答:elasticsearch曾发生过安全事故,自从4开始就不允许在文件属性为root下执行,所以接下来我们要改变文件的属性。

五、添加用户,改变文件属性

groupadd bigData              新建一个bigData的工作组
useradd -g cjj bigData       增加用户cjj同时并添加到bigData工作组

在/usr/local/elasticsearch-2.4.0下执行命令:chown -R cjj:bigData ../

一起来学习Elasticsearch—集群环境搭建_第5张图片
改变文件属性

六、执行,安装插件

1.在/usr/local/elasticsearch-2.4.0下执行命令:bin/elasticsearch
2.在浏览器输入ip地址:9200
3.显示结果,表示单节点已经部署成功
{
  "name" : "node-1",
  "cluster_name" : "Allen chen",
  "version" : {
    "number" : "2.4.0",
    "build_hash" : "ce9f0c7394dee074091dd1bc4e9469251181fc55",
    "build_timestamp" : "2016-08-29T09:14:17Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

4.查看集群是否成功:
http://ip地址:9200/_cluster/health?pretty

{
  "cluster_name" : "Allen chen",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 2,                    //两个节点,集群成功
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 3,
  "active_shards" : 5,
  "relocating_shards" : 0,
  "initializing_shards" : 1,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 83.33333333333334
}

5.安装kinana插件:
在elasticsearch下分别执行这两条命令:bin/plugin install license
                                   bin/plugin install marvel-agent

在kibana下执行该命令:bin/kibana plugin --install elasticsearch/marvel/latest

*注意*:以上命令可能会执行失败,请在网络较好状态下多次尝试执行命令。

最后分别执行:bin/elaticsearch,bin/kibana

一起来学习Elasticsearch—集群环境搭建_第6张图片
elasticsearch
一起来学习Elasticsearch—集群环境搭建_第7张图片
kibana

六、访问Kinana(ip地址:5601)

一起来学习Elasticsearch—集群环境搭建_第8张图片
两台服务器集群成功控制台

七、总结

*本来是使用两台阿里云、一台腾讯云做集群测试的,在部署过程中陷入一个大坑花了五个小时才找到解决方法。

问题就是腾讯云分配给我的ip地址是虚拟ip地址,如果我在elasticsearch.yml的network-host配置成外网ip地址老是报端口号绑定失败,期初以为是端口被占用,先是搜了下百度,有篇作者说改成127.0.0.1就可以访问了,我试了下,果真可以,但是又有一个问题,我没法使用外网ip访问啊!

没辙了,只能翻墙到国外搜索解决方法,看到了国外开发者讨论说下ip地址有问题,我就将elasticsearch.yml的ip地址改成了0.0.0.0,随后启动浏览器可以使用ip+端口号访问了,但是无法做集群,因为其它两台主机还是无法识别腾讯云这台服务器的ip地址,落下这个问题,恳请大神解答!!

本人学习elasticsearch是想开发一个大型的婚纱爬虫系统,有兴趣的朋友可以一起来研究哦。

你可能感兴趣的:(一起来学习Elasticsearch—集群环境搭建)