一.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"
三、操作部分截图
四、初步测试
cd到elasticsearch的目录,执行:bin/elasticsearch,观察执行结果
这是为什么呢?
答:elasticsearch曾发生过安全事故,自从4开始就不允许在文件属性为root下执行,所以接下来我们要改变文件的属性。
五、添加用户,改变文件属性
groupadd bigData 新建一个bigData的工作组
useradd -g cjj bigData 增加用户cjj同时并添加到bigData工作组
在/usr/local/elasticsearch-2.4.0下执行命令:chown -R cjj:bigData ../
六、执行,安装插件
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
六、访问Kinana(ip地址:5601)
七、总结
*本来是使用两台阿里云、一台腾讯云做集群测试的,在部署过程中陷入一个大坑花了五个小时才找到解决方法。
问题就是腾讯云分配给我的ip地址是虚拟ip地址,如果我在elasticsearch.yml的network-host配置成外网ip地址老是报端口号绑定失败,期初以为是端口被占用,先是搜了下百度,有篇作者说改成127.0.0.1就可以访问了,我试了下,果真可以,但是又有一个问题,我没法使用外网ip访问啊!
没辙了,只能翻墙到国外搜索解决方法,看到了国外开发者讨论说下ip地址有问题,我就将elasticsearch.yml的ip地址改成了0.0.0.0,随后启动浏览器可以使用ip+端口号访问了,但是无法做集群,因为其它两台主机还是无法识别腾讯云这台服务器的ip地址,落下这个问题,恳请大神解答!!
本人学习elasticsearch是想开发一个大型的婚纱爬虫系统,有兴趣的朋友可以一起来研究哦。