您现在的位置是:首页 >技术教程 >Elasticsearch数据库网站首页技术教程
Elasticsearch数据库
目录
1. 什么是ElasticSearch
1.1 概念及特点
-
Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。
-
可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一个网络中就能自动加入当前集群;本身就是开源软件,也支持很多开源的第三方插件。
-
高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。
-
数据存储的最小单位是文档,本质上是一个JSON 文本:
1.2 ElasticSearch适用场景概述
-
维基百科,类似百度百科,全文检索,高亮,搜索推荐
-
The Guardian(国外新闻网站),类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜)
-
Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案
-
GitHub(开源代码管理),搜索上千亿行代码
-
电商网站,检索商品
-
国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用场景)
2. 安装ElasticSearch
2.1 下载安装包
官网下载地址:
https://www.elastic.co/cn/downloads/past-releases
2.2 环境说明
//系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
//关闭防火墙
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]# sed -i '7s/enforcing/disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
2.3 创建es的用户
[root@localhost ~]# groupadd es
[root@localhost ~]# useradd -g es -s /bin/bash -md /home/es es
2.4 创建es存储位置
//存放在/var/es(根据实际需求)
[root@localhost ~]# mkdir /var/es && cd /var/es
[root@localhost es]# mkdir data && mkdir log
[root@localhost es]# chown -Rf es:es /var/es/
2.5 安装es
//创建文件夹,并将安装包上传到这里
[root@localhost ~]# mkdir /usr/local/es && cd /usr/local/es
//上传安装包
[root@localhost src]# ls
debug elasticsearch-6.8.20.tar.gz kernels
//解压安装包
[root@localhost src]# tar xf elasticsearch-6.8.20.tar.gz -C /usr/local/es/
[root@localhost src]# cd /usr/local/es/
[root@localhost es]# chown -Rf es:es /usr/local/es/elasticsearch-6.8.20/
2.5 修改配置文件
//编辑配置文件
[root@localhost es]# vim /usr/local/es/elasticsearch-6.8.20/config/elasticsearch.yml
//取消cluster.name前的#号注释,改成自己起的名字。(注意前面的数字代表行号)
17 cluster.name: my-application
//node.name取消#号
23 node.name: node-1
//设置path.data,取消#号,改为如下的
33 path.data: /var/es/data
//设置path.logs,取消#号,改为如下的
37 path.logs: /var/es/log
//network.host取消#号,改为0.0.0.0(允许所有ip访问)
55 network.host: 0.0.0.0
//取消http.port#
59 http.port: 9200
//在文件的最后添加以下配置
89 bootstrap.memory_lock: false
90 bootstrap.system_call_filter: false
2.6 系统优化
//修改文件1
[root@localhost es]# vi /etc/security/limits.conf
末尾添加
62 es soft nofile 65536
63 es hard nofile 65536
64 es soft nproc 4096
65 es hard nproc 4096
//修改文件2
[root@localhost es]# vim /etc/sysctl.conf
末尾添加
11 vm.max_map_count = 655360
[root@localhost es]# sysctl -p
vm.max_map_count = 655360
2.7 安装jdk环境
//上传jdk安装包
[root@localhost src]# ls
debug elasticsearch-6.8.20.tar.gz jdk-8u131-linux-x64.tar.gz kernels
//解压安装包
[root@localhost src]# tar xf jdk-8u131-linux-x64.tar.gz -C /usr/local/
//添加环境变量
[root@localhost src]# vim /etc/profile
末尾添加
78 #JAVA_HOME
79 export JAVA_HOME=/usr/local/java
80 #JRE_HOME
81 export JRE_HOME=/usr/local/java/jre
82 #CALSSPATH
83 export CLASSPATH=$CLASSPATH:${JAVA_HOME}/lib:${JRE_HOME}/lib
84 #PATH
85 export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
//重命名
[root@localhost ~]# mv /usr/local/jdk1.8.0_131/ /usr/local/java
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2.8 切换es用户启动数据库
[root@localhost ~]# su es
[es@localhost root]$ /usr/local/es/elasticsearch-6.8.20/bin/elasticsearch &
2.9 systemctl管理
2.10 访问
用浏览器访问ip:9200(安装的设备9200端口),看到如下的说明安装成功:
3. kibana
3.1 kibana介绍
Kibana
是一个开源的分析与可视化平台,设计出来用于和Elasticsearch
一起使用的。你可以用kibana
搜索、查看存放在Elasticsearch
中的数据。Kibana
与Elasticsearch
的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch
、Logstash
和Kibana
这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch
担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana
担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。
3.2 安装kibana
官网下载地址:
https://www.elastic.co/cn/downloads/past-releases#kibana
3.3 上传安装包
//使用rz命令或者xftp上传
[root@localhost src]# ls
debug elasticsearch-6.8.20.tar.gz jdk-8u131-linux-x64.tar.gz kernels kibana-6.8.20-linux-x86_64.tar.gz
3.4 解压文件
[root@localhost src]# tar xf kibana-6.8.20-linux-x86_64.tar.gz -C /usr/local/
3.5 修改配置文件
//下列的序号为行号
[root@localhost src]# vim /usr/local/kibana-6.8.20-linux-x86_64/config/kibana.yml
7 server.host: "192.168.5.55" //ES服务器主机地址
28 elasticsearch.hosts: ["http://192.168.5.55:9200"] //ES服务器地址
3.6 启动
[root@localhost src]# cd /usr/local/kibana-6.8.20-linux-x86_64/
[root@localhost kibana-6.8.20-linux-x86_64]# ./bin/kibana &
3.7 浏览器访问
http://192.168.5.55:5601/app/kibana