各位小伙伴,又到了本期分享大数据技术的时间,本次给大伙带来的是Elasticsearch这个技术,闲话很少聊,咱们开始进入正题。
1、什么是elasticsearchhtml
Elasticsearch是一个基于Lucene的实时的分布式搜索和分析 引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠, 快速,安装使用方便。基于RESTful接口。html5
2、Elasticsearch与solr对比java
2.1.热度node
从上图能够看出,在elasticserach出现后,它的搜索指数急剧上升,不久就超过了solr数据库
2.2.性能对比
大型互联网公司,实际生产环境测试,将搜索引擎从Solr转到Elasticsearch之后的平均查询速度有了50倍的提高。vim
2.3.优点
a)Elasticsearch是分布式的。不须要其余组件,分发是实时的,被叫作”Push replication”。
b)Elasticsearch 彻底支持 Apache Lucene 的接近实时的搜索。
处理多租户(multitenancy)不须要特殊配置,而Solr则须要更多的高级设置。
c)Elasticsearch 采用 Gateway 的概念,使得备份更加简单。
各节点组成对等的网络结构,某些节点出现故障时会自动分配其余节点代替其进行工做。网络
3、Lucene与ES关系?数据结构
1)Lucene只是一个库。想要使用它,你必须使用Java来做为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene很是复杂,你须要深刻了解检索的相关知识来理解它是如何工做的。curl
2)Elasticsearch也使用Java开发并使用Lucene做为其核心来实现全部索引和搜索的功能,可是它的目的是经过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。elasticsearch
4、Elasticsearch与关系型数据库对比
ElasticSearch与关系型数据库的类似:
1.一个ES集群能够包含多个索引(数据库),每一个索引又包含了不少类型(表),类型中包含了不少文档(行),每一个文档又包含了不少字段(列)。
2.传统数据库为特定列增长一个索引,例如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫作倒排索引(inverted index)的数据结构来达到相同目的。
3.倒排索引源于实际应用中须要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具备该属性值的各记录的地址。因为不是由记录来肯定属性值,而是由属性值来肯定记录的位置,于是称为倒排索引(inverted index)。
5、Elasticsearch部署与启动
注:java版本要求:最低1.7 »
5.1.下载
地址:https://www.elastic.co/downlo...
这里选择elasticsearch-2.4.5.tar.gz
5.2.安装
Es是一个分布式的搜索技术,故安装时既能够是单机版也能够是集群,这里介绍的是分布式安装。
首先选择三台虚拟机,且这三台虚拟机都已经安装好jdk7,它们的IP分别为:192.168.78.204,192.168.78.205,172.168.78.206。
5.2.1 上传并解压
命令: tar -zxvf elasticsearch-2.4.5.tar.gz
5.2.2 配置
修改es_home/config/elasticsearch.yml (注意配置要顶格写,冒号后面要加一个空格,最好用vim编辑器修改,容易发现错误)
以上为一台虚拟机的配置,另外两台也要配置,须要修改的是node.name和network.host,其余地方不须要修改.
5.2.3 启动
elasticsearch启动的时候,不能以root用户启动,不然会报错。咱们能够建立一个es用户,来专门管理elasticsearch.
建立用户:useradd es
修改密码:passwd es
而后将elasticsearch的整个目录全部者和所属组都修改为es用户。命令:chown -R es:es elasticsearch-2.4.5
修改权限后,切换成es用户,而后分别启动三台虚拟机上的elasticsearch.
命令:es_home/bin/elasticsearch
后台运行命令:es_home/bin/elasticsearch -d
我这里直接启动,以下图:
当日志出现图中的2步骤时,说明这台虚拟机上的ES进程启动成功,可是这时该节点还没组建集群,只有出现了3步骤,cluster.service日志出来时,才说明集群组建成功。
访问任意一台虚拟机的9200端口,查看单机状况。如图:
访问任意一台虚拟机的ip:9200/_cluster/health?pretty 地址,查看集群的状态
Elasticsearch提供了rest接口,故能够用curl命令,发送http请求来对索引库进行操做。建立一个叫myindex的索引库
命令:curl -XPUT 192.168.78.204:9200/myindex?pretty
如上图,返回true说明建立索引库成功。
好了,本次的对elasticsearch的介绍就到这里了
^_^,感兴趣的童学能够继续关注上海尚学堂大数据文章。也能够加维信 java8733获取资料支持。