ES集群安装配置

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElasticSearch是一个开源搜索服务框架,它已经成为搜索解决方案领域的重要成员。ElasticSearch还经常被用作文档数据库,这主要得益于它的分布式特性和实时搜索能力,另外,ElasticSearch支持越来越多的聚合功能,而且和Yarn、Hadoop、Hive、Pig、Spark、Flume等大数据处理框架的兼容性越来越好。

ElasticSearch是一个开源搜索服务框架,它已经成为搜索解决方案领域的重要成员。ElasticSearch还经常被用作文档数据库,这主要得益于它的分布式特性和实时搜索能力,另外,ElasticSearch支持越来越多的聚合功能,而且和Yarn、Hadoop、Hive、Pig、Spark、Flume等大数据处理框架的兼容性越来越好。我主要是想调研一下看是否能将它用于实时的数据搜索统计、以及实时OLAP的业务场景之上。这里先记录一下ElasticSearch集群的安装配置。

ElasticSearch的一些术语

  • 索引(index)

索引(Index)相当于关系型数据库中的表;

  • 文档(document)

文档相当于关系型数据库中的行。但ES中的文档不需要有固定的结构,不同文档可以有不同的字段集合。

  • 文档类型(type)

在一个索引中,可以用不同的文档类型来代表不同的数据集合。

  • 节点和集群

ElastichSearch可以作为一个独立的搜索服务器工作,也可以在多台协同工作的服务器上运行,统称为一个集群,其中有一台被作为Master,其他为Slave;

  • 分片(shard)

一个索引会被分隔成多个分片,分别存放于集群中的不同节点中,类似于HDFS的文件块。

  • 副本

副本是针对每个分片的,可以为一个分片设置多个副本,分布在不同的节点上,即是容错,也可以提高查询任务的性能,原理同HDFS的文件块副本机制。

硬件及软件环境

两台CentOS,172.16.212.17(32G内存)、172.16.212.102(72G内存)

JAVA: jdk-8u65-linux-x64.tar.gz

ElasticSearch:elasticsearch-2.1.0

下载JAVA和ElasticSearch之后解压到指定目录(/home/liuxiaowen/)。

配置elasticsearch.yml

 
 
  1. cluster.name: hy_es //集群名称
  2. node.name: es_node_102 //节点名称,两台节点名称不能一样
  3. path.data: /data/es/data //ES存放数据的目录
  4. path.logs: /data/es/logs //ES存放日志的目录
  5. network.host: 172.16.212.102 //这个可以不配置,默认为0.0.0.0
  6. network.publish_host: 172.16.212.102 //这个可以不配置,默认为0.0.0.0
  7. gateway.recover_after_nodes: 2 //设置集群中N个节点启动时进行数据恢复
  8. discovery.zen.ping_timeout: 10s //节点之间通过ping进行应答的超时时间
  9. discovery.zen.ping.unicast.hosts: ["172.16.212.102", "172.16.212.17"] //集群中可以作为master节点的初始列表,通过这些节点来自动发现新加入集群的节点
  10. discovery.zen.minimum_master_nodes: 1 //配置当前集群中最少的主节点数,对于多于两个节点的集群环境,建议配置大于1

配置ElasticSearch使用内存

$ES_HOME/bin/elasticsearch.in.sh

 
 
  1. if [ "x$ES_MIN_MEM" = "x" ]; then
  2. ES_MIN_MEM=10g //最小内存,根据机器内存来定
  3. fi
  4. if [ "x$ES_MAX_MEM" = "x" ]; then
  5. ES_MAX_MEM=36g //最大内存,根据机器内存来定,最好不要超过机器物理内存的50%
  6. fi

配置JAVA环境变量

在用户的.bash_profile中加入:

export JAVA_HOME=/hom/liuxiaowen/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH

或者在$ES_HOME/bin/elasticsearch脚本中配置:
export JAVA_HOME=/hom/liuxiaowen/jdk1.8.0_65

或者在启动ElasticSearch之前在命令行export JAVA_HOME=/hom/liuxiaowen/jdk1.8.0_65
都可以。

安装head监控插件

cd $ES_HOME/bin

./plugin install mobz/elasticsearch-head

需要在两台机器上都安装。

安装成功后,如图所示:

elasticsearch

启动ElasticSearch

cd $ES_HOME/bin

./elasticsearch -d

-d参数表示在后台启动。

ElasticSearch运行日志在配置的${path.logs}/${cluster.name}.log中

Master(102)

elasticsearch

Slave(17)

elasticsearch

head监控页面(http://172.16.212.102:9200/_plugin/head/)

elasticsearch

查看集群状态:

 
 
  1. curl -XGET 'http://172.16.212.102:9200/_cluster/health?pretty'
  2. 响应结果:
  3. {
  4. "cluster_name" : "hy_es",
  5. "status" : "green",
  6. "timed_out" : false,
  7. "number_of_nodes" : 2,
  8. "number_of_data_nodes" : 2,
  9. "active_primary_shards" : 5,
  10. "active_shards" : 10,
  11. "relocating_shards" : 0,
  12. "initializing_shards" : 0,
  13. "unassigned_shards" : 0,
  14. "delayed_unassigned_shards" : 0,
  15. "number_of_pending_tasks" : 0,
  16. "number_of_in_flight_fetch" : 0,
  17. "task_max_waiting_in_queue_millis" : 0,
  18. "active_shards_percent_as_number" : 100.0
  19. }

集群配置完毕,刚接触,有些参数可能配置的不合理,后续再慢慢研究。

接下来将介绍ElasticSearch的一些基本操作。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
Java Shell 数据安全/隐私保护
|
3月前
|
Java 数据安全/隐私保护
ES: ES+Kibana 环境部署
ES: ES+Kibana 环境部署
|
6月前
GrayLog5.2版本单节点一键部署脚本
GrayLog5.2版本单节点一键部署脚本
367 0
Kibana配置ES集群(6.x版本之前和7.x版本两种写法)
Kibana配置ES集群(6.x版本之前和7.x版本两种写法)
75 0
|
搜索推荐 网络协议 安全
Elasticsearch-01CentOS7单节点部署ES5.6.16
Elasticsearch-01CentOS7单节点部署ES5.6.16
161 0
|
存储 数据可视化 定位技术
docker Kibana安装配置连接ES
docker Kibana安装配置连接ES
422 0
|
Shell 开发工具
ES集群安装教程
ES集群安装教程
368 0
ES集群安装教程
|
Java Linux
ES单机版和集群安装
ES单机版和集群安装
186 0
|
分布式计算 前端开发 Hadoop
环境篇 ES 集群的配置|学习笔记
快速学习环境篇 ES 集群的配置
310 0
|
存储 安全 Linux
Elasticsearch——Windows下ES集群部署 & Linux下ES单节点、集群部署
这篇文章主要是说一下windows下部署ES集群、Linux下单节点部署。
Elasticsearch——Windows下ES集群部署 & Linux下ES单节点、集群部署