Elastic 开发记录 一、基本环境搭建


最近手上的一个项目用到了ES相关的东西,研究了一下,简单敲了点可用的代码,在这里记录一下。

平台环境

ES和Kibana均采用的6.4.2的版本,Java API Client版本采用的和集群相同的版本

ElastSearch简介

ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。

ElasticSearch集群搭建

ES安装相对来说比较简单,首先下载要安装的版本
https://www.elastic.co/cn/downloads/elasticsearch
这个地址会显示当前最新版本的ES,如果不是自己想要的,在下面的notes中选择past releases
past releases
在之后的页面中选择自己想要的版本下载。

下载完成后,解压放到一个自己喜欢的目录,主要是为了以后找起来好找,然后,根据需求,修改配置文件,如果要配置集群模式必须修改配置文件

#.......
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
# 集群名称
cluster.name: ${cluster-name}
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
# 节点名称
node.name: node-1
#
# Add custom attributes to the node:
# 节点是否是主节点以及是否是数据节点
#node.attr.rack: r1
node.master: true
node.data: true
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
# ES数据文件位置
path.data: /opt/es/data
#
# Path to log files:
# ES日志文件位置
path.logs: /var/log/elasticSearch
#......
# Set the bind address to a specific IP (IPv4 or IPv6):
# 设置允许访问的IP 0.0.0.0表示任意IP都可以访问
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
# Http访问端口号 RestFul
http.port: 19200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
# 需要发现的节点
discovery.zen.ping.unicast.hosts: ["node-1", "node-2","node-3"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
# 集群可用的最小节点数量
discovery.zen.minimum_master_nodes: 2
#......

要注意,集群模式的话,cluster.name以及node.name是必须要进行修改的,其他参数根据自己的需要进行修改,同一个集群下,不同节点的名称一定要不一样(虽然说一样的话不影响ES本身启动什么的,但监控管理上有很大麻烦,还会有些奇怪的问题)
修改完成后,启动即可

linux下进入ES安装目录,执行   bin/elasticsearch
windows下同样进入安装目录,执行 bin\elasticsearch.bat

另附官网的四部曲
在这里插入图片描述

Kibana安装

Kibana安装和ES基本差不多,首先进行下载,建议选择和之前ES安装相同的版本,另外注意操作系统区别
https://www.elastic.co/cn/downloads/kibana
配置文件也比较类似,注意要修改的两个属性
server.hostelasticsearch.url
这个URL要配置集群中可用的Http地址

启动脚本

由于ES官网提供的内容中没有相关的集成启动重启(就是service 命令的东西),一般来说自己简单写一个使用起来会更方便

#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
 
export JAVA_HOME=/xxxxxxxx/jdk1.8.0_161
export JAVA_BIN=/xxxxxxxx/jdk1.8.0_161/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
 
case "$1" in
start)
    su elasticsearch<<!
    cd /xxxxxxxx/elasticsearch-6.4.2/
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;  
stop)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    ;;  
restart)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    su elasticsearch<<!
    cd /xxxxxxxx/elasticsearch-6.4.2/
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;  
*)
    echo "start|stop|restart"
    ;;  
esac
 
exit $?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值