您的位置:首页 > 其它

Elasticsearch 5.x (一) 单机部署

2017-01-13 12:59 106 查看
背景:线上一直在跑es的2.x版本,了解到官网已经推出5.x版本,看着官网的介绍性能如何如何,手痒就想小试一下,对比一看,和之前的版本出入还是非常大的,非常期待调研测试结果。下面性能对比是官网的介绍,看样子很是牛逼。今天开始写一个调研5.x的系列。

性能对比

1. 同样的机器(硬件、数量)及集群结构(Master Node、Data Node)

2. 同样的索引结构和分片数量

3. 基本一致的查询语句(ES5语法有所变化,所以query没有完全一致)

4. 同样的数据量

5. 同样的流量

ES 5.X集群的 CPU Usage 约为ES2集群的 3/4

ES 5.X集群的 Search Latency 约为ES2集群的 2/3        

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能.
几个重要的概念:

索引:一个索引就是一个拥有几分相似特征的文档的集合,索引就像数据库。

类型:一个类型是一个索引的一个逻辑上的分类/分区。

文档:一个文档是一个可被索引的基础信息单元。

字段(field):文档的一部分,包含名称和值两部分。

词(term):一个搜索单元,表示文本中的一个词。

标记(token):表示在字段文本中出现的词,由这个词的文本、开始和结束偏移量以及类型组成。

映射(mapping)所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)

分片和复制:将索引划分成多份的能力,这些份就叫做分片。

gateway:代表 es 索引的持久化存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。

river:代表 es 的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。

discovery:代表 es 的自动发现节点机制,es是一个基于 p2p 的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。

Transport:代表es 内部节点或集群与客户端的交互方式,默认内部是使用 tcp 协议进行交互,同时它支持 http 协议(json格式)、thrift、servlet。

学习一个软件,先从安装部署熟悉,es也不例外,下面安装部署下:
本地测试机:
192.168.80.11
192.168.80.13
环境:CentOS Linux release 7.2.1511 (Core)

安装java,省略。java version "1.8.0_112"

安装ES

新建非root用户,如果使用root用户启动会报错,新建后对其赋予权限

groupadd es

useradd es -g es -p 1qaz@WSX  

以下安装在es用户下操作。

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.zip
unzip elasticsearch-5.1.1.zip

cd  elasticsearch-5.1.1

chown  -R es.es elasticsearch-5.1.1

运行Elasticsearch

./bin/elasticsearch

./bin/elasticsearch -d          #后台运行

tail -f logs/elasticsearch.log  #查看日志

jps 验证



curl -X GET  http://localhost:9200/ 或者 curl 'http://192.168.80.11:9200/?pretty'



几个重要的配置文件

#/etc/sysconfig/elasticsearch          配置elasticsearch环境变量

#/etc/elasticsearch/elasticsearch.yml  配置elasticsearch集群

#/etc/elasticsearch/jvm.options        配置elasticsearch的jvm参数

#/etc/elasticsearch/log4j2.properties  配置elasticsearch日志参数

配置文件

chown -R es.es /export/es

cat elasticsearch.yml

node.name: node-1

path.data: /export/es/data

path.data: /export/es/logs

network.host: 192.168.80.11

http.port: 9200

添加

http.cors.enabled: true

http.cors.allow-origin: "*"

注意事项:

1.Java客户端所在的Elasticsearch版本必须与集群中其他节点一致,否则,它们可能互相无法识别。

2.bootstrap checks failed;max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解法:

vi /etc/sysctl.conf

vm.max_map_count=262144

fs.file-max=102400

sysctl -a生效

sysctl -p

或者sysctl -w vm.max_map_count=262144直接生效

3.文件描述符

/etc/security/limits.conf文件,添加或修改如下行:

*        hard    nofile          102400

*        soft    nofile           102400

未完待续……

【原创】原创文章,更多关注敬请关注微信公众号。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  索引 搜索 集群