1. ElasticSearch 简称 ES
2. ElasticSearch 是基于 Lucene 的开源、分布式、RESTful 接口全文搜索引擎
3. ElasticSearch 是一个分布式文档数据库
4. ElasticSearch 支持高可用和可扩展
ElasticSearch 优势
1. 横向可扩展性
1. 只需增加服务器,做一些配置文件修改,启动就可以并入集群
2. 分片机制提供更好的分布性
1. 同一个索引文件分成多个分片(sharding),这点类似于 HDFS 的块机制,分而治之的方式可以提高处理效率
2. 注意:集群创建后,主分片的数量是不能够改变的,索引数据的存储依赖于主分片数量进行逻辑处理的
3. 高可用
1. 提供复制(relpica)机制,一个分片可以设置多个复制,使得某台服务器宕机,集群可以使用,
并把宕机数据恢复到其他可用节点
2. 使用简单 : 只需一条命令就可以下载文件,然后很快就可以搭建一个站内搜索引擎
ElasticSearch 应用场景
1. 大型日志收集(ELK)
2. 电商商品搜索或者网盘搜索引擎
ElasticSearch 存储结构
1. 面向文档型数据库,一条数据就是一个文档,以 JSON 格式进行存储
{
“username” : “张三”,
“age” : 12,
“sex” : 0
}
2. 与关系型数据库的对比
关系型数据库 : 数据库(database) —> 表(table) ——> 行(row) —–> 列(Columns)
ElasticSearch : 索引(index) —-> 类型(type) —-> 文档(document) —-> 字段(fields)
Linux(CentOS7) 安装 ElasticSearch
1. 安装 jdk 以及配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
2. 下载elasticsearch安装包
官方文档https://www.elastic.co/downloads/elasticsearch
注意:linux安装内存建议1g内存以上
3. 上传elasticsearch安装包,解压elasticsearch
1. tar -zxvf elasticsearch-6.4.3.tar.gz
4. 修改配置文件 :
1. network.host: 192.168.212.151
es所在服务id
2. http.port: 9200 es 供外部访问IP
5. 启动elasticsearch
1. 常见错误分析
can not run elasticsearch as root
解决方案:
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码。
第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足。
第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。
第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。
然后执行成功。
创建一个分组 groupadd esmayikt
useradd esyushengjun -g esmayikt -p 123456
chown -R esyushengjun:esmayikt elasticsearch-6.4.3
su esyushengjun 切换用户
继续报错
bootstrap checks failed max virtual memory areas vm.max_map_count [65530] is
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl –p
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重启服务器即可
6. 访问elasticsearch,需要关闭防火墙 systemctl stop firewalld
7. 9300与9200区别
9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用
Kibana 环境安装
1. 下载到对应的版本进行解压 tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz
2. 修改配置文件 vim config/kibana.yml
server.port: 5601
server.host: “192.168.212.151
”
elasticsearch.url: “http:// 192.168.212.151:9200
”
3. 启动 ./bin/kibana
4. 访问查看 http://192.168.212.179:5601/app/kibana
Elasticsearch版本控制
1. 为什么要进行版本控制 : 为了保证数据在多线程操作下的准确性
2. 悲观锁和乐观锁
1. 悲观锁:假设会发生并发冲突,屏蔽一切可能违反数据准确性的操作
2. 乐观锁:假设不会发生并发冲突,只在提交操作是检查是否违反数据完整性
3. 内部版本控制和外部版本控制
1. 内部版本控制:_version自增长,修改数据后,_version会自动的加1
2. 为了保持_version与外部版本控制的数值一致 使用version_type=external检查数据当前的version值是否小于请求中的version值
PUT /test/user/1?version=2
{
“name”:”zhangsan”,
“sex”:0,
“age”:22
}
转载请注明:XAMPP中文组官网 » ElasticSearch 简单实用