ElasticSearch简单介绍以及实例搭建集群环境图形界面管理方式(企业级搜索引擎搭建及用法)(干货亲测软件包)

一. ElasticSearch简单介绍

1、ElasticSearch简单介绍

ElasticSearch是一个基于Lucene(全文搜索引擎)的搜索服务器。通常用于日志收集。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web(专业版和更高级版本)接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。

2、ElasticSearch常用的工作方式

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

3、生产环境中Elasticsearch使用的案例

  • 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type、did-you-mean等搜索建议功能。
  • 英国卫报使用Elasticsearch来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。
  • StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。
  • GitHub使用Elasticsearch来检索超过1300亿行代码。
  • 每天,Goldman Sachs使用它来处理5TB数据的索引,还有很多投行使用它来分析股票市场的变动。

二、 Elasticsearch数据写入过程描述

Lucene 把每次生成的倒排索引,叫做一个段(segment)。然后另外使用一个 commit (提交)文件,记录索引内所有的 segment。而生成 segment 的数据来源,则是内存中的 buffer(缓冲区)。

1) 数据写入进入ES内存 buffer (同时记录到translog(预写日志)生成倒排索引分片(segment)

  • 由于Elasticsearch 在把数据写入到内存 buffer 的同时,其实还另外记录了一个ranslog日志,如果在这期间故障发生时,Elasticsearch会从commit位置开始,恢复整个translog文件中的记录,保证数据的一致性。

2) 将 buffer 中的 segment 先同步到文件系统缓存中,然后再刷写到磁盘

  • 由于在buffer中的索引片先同步到文件系统缓存,再刷写到磁盘,因此在检索时可以直接检索文件系统缓存,保证了实时性。

三、实例搭建集群环境图形界面管理方式

1、实验准备

  • 两台网络通畅Linux服务器,尽量使用7.4版本。
数量 主机名 地址 版本
第一台 node1 192.168.10.5 图形化Linux7.4 64位
第二台 node2 192.168.10.6 图形化Linux7.4 64位
  • 关闭服务器selinux和防火墙。
  • 下载所需要的软件包

软包下载地址

链接:https://pan.baidu.com/s/1Lzhv7O-M03a1cMyPrql94A 提取码:tiqu

2、同步服务器时间,更改主机名,配置/etc/hosts文件

[root@localhost ~]# ntpdate ntp1.aliyum.com  //同步阿里云的时钟服务器
[root@localhost ~]#hostnamectl set-hostname node1 //更改主机名
[root@node1 ~]# su  //使主机名生效
[root@node1 ~]# vim /etc/hosts       //使IP地址和主机名快速解析
192.168.10.5 node1
192.168.10.6 node2

3、查看java环境,上传软件包

[root@node1 ~]# java -version
openjdk version “1.8.0_131” //对java环境要求不高,这个系统的openjdk就可以满足需求
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@node1 ~]# ls
elasticsearch-5.5.0.rpm node-v8.2.1.tar.gz
elasticsearch-head.tar.gz phantomjs-2.1.1-linux-x86_64.tar.bz2
//软件包上传成功

4、安装配置elasticsearch-5.5.0.rpm软件

[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm   //直接使用rpm安装方式安装
[root@node1 ~]# systemctl daemon-reload    //重载系统进程
[root@node1 ~]# systemctl enable ebtables.service  //设置为开机自启动
[root@node1 ~]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp -p elasticsearch.yml elasticsearch.yml.bak   //备份配置文件
[root@node1 elasticsearch]# vim elasticsearch.yml 
更改下列字段,并将字段前#号删除。
cluster.name: my-elk-cluster    //集群名字,自定义
node.name: node1         //节点名字,集群中唯一
path.data: /data/elk_data        //数据存放路径,可以设置多个路径
path.logs: /var/log/elasticsearch/       //日志存放路径
bootstrap.memory_lock: false    //不允许内存将内存中的数据交换给swap分区,如果允许会降低数据的处理效率
network.host: 0.0.0.0    //提供服务绑定的IP地址,0.0.0.0代表所有地址
http.port: 9200        //侦听端口为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]    //集群中相互发现通过单播实现,方括号内为所有节点名
[root@node1 elasticsearch]# mkdir -p /data/elk_data   
[root@node1 elasticsearch]# chown elasticsearch:elasticsearch /data/elk_data/
[root@node1 ~]# systemctl start elasticsearch.service
[root@node1 ~]# netstat -anpt |grep 9200   //启动成功
tcp6       0      0 :::9200                 :::*                    LISTEN      91828/java
  • 在浏览器使用http://192.168.10.5:9200检验集群节点是否启动,以及查看简单节点信息
    在这里插入图片描述

  • 在浏览器使用http://192.168.10.5:9200/_cluster/health?pretty查看集群健康状态
    在这里插入图片描述

5、安装elasticsearch-head插件完成图形界面管理方式

1)首先要安装node-v8.2.1组件

[root@node1 ~]# yum -y install gcc gcc-c++ make //安装依赖环境包
[root@node1 ~]# tar -zxvf node-v8.2.1.tar.gz
[root@node1 ~]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure
[root@node1 node-v8.2.1]# make -j4
//注意这个make编译的时间特别长,所以尽量多开几个核心数用于make的编译
[root@node2 node-v8.2.1]# make install //安装完成

2)解压phantomjs-2.1.1-linux-x86_64安装包,使用其中的前端框架phantomjs

[root@node1 ~]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node1 ~]# cd phantomjs-2.1.1-linux-x86_64/bin
[root@node1 bin]# ls
phantomjs
[root@node1 bin]# cp phantomjs /usr/local/bin
//完成后系统就能使用这个前端框架了

3)安装elasticsearch-head数据可视化工具
[root@node1 ~]# tar zxvf elasticsearch-head.tar.gz
[root@node1 node-v8.2.1]# cd
[root@node1 ~]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm install   //因为这是一款前端工具,所以的用npm安装
//安装完成
//修改配置文件完成配置
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml  //修改配置文件使程序支持前端工具跨域名访问
http.cors.enabled: true      //开启跨域名访问支持,默认为false
http.cors.allow-origin: "*"     //跨域名访问允许的域名地址
[root@node1 ~]# systemctl restart elasticsearch.service  //重启服务
//启动elasticsearch-head工具
[root@node1 ~]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &    //启动放到后台进行
[1] 93403
[root@node1 elasticsearch-head]# 
> [email protected] start /root/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100     //服务端口号9100
[root@node1 ~]# netstat -anpt|grep 9100   //启动成功
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      93413/grunt
注:我只安装了一个node1节点,但是两个节点都得安装一样得流程。除了配置文件中节点名不一样,其他全部一样。

四、测试图形界面管理方式

在这里插入图片描述

  • 如何查看集群信息,将http://localhost:9200/中得localhost改为192168.10.5(集群地址)
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wulimingde/article/details/109333266
今日推荐