1,什么是 ElasticSearch
Elasticsearch (ES)是一个基于Lucene(Apache 旗下的一个搜索引擎)构建的开源、分布式、RESTful 接口全文搜索引擎。
Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。
Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。
2,Elasticsearch优势
横向可扩展性:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。
分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。
高可用:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。
口使用简单:共需一条命令就可以下载文件,然后很快就能搭建一一个站内搜索引擎。
3,Elasticsearch应用场景
大型分布式日志分析系统ELK elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)
大型电商商品搜索系统、网盘搜索引擎等。
4,Elasticsearch 数据结构
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)
5,linux 下的安装
1, 安装jdk
2、下载elasticsearch安装包 下载elasticsearch安装包 官方文档https://www.elastic.co/downloads/elasticsearch 注意:linux安装内存建议1g内存以上 3、上传elasticsearch安装包 4、解压elasticsearch tar -zxvf elasticsearch-6.4.3.tar.gz 5、修改elasticsearch.yml network.host: 192.168.178.110 http.port: 9200 6、启动elasticsearch报错 cd /usr/local/elasticsearch-6.4.3/bin ./elasticsearch 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 esaiyuesheng useradd eschris -g esaiyuesheng -p 123456 chown -R eschris:esaiyuesheng elasticsearch-6.4.3 su eschris 切换用户 继续报错 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,访问
关闭防火墙 systemctl stop firewalld.service
http://192.168.178.110:9200
出现以下界面,说明访问成功