专栏首页Golang开发Elasticsearch(一)——环境配置

Elasticsearch(一)——环境配置

Elastic地址

elasticsearch 的官方中文网址:https://www.elastic.co/cn/products/elasticsearch.点击download进入下载页面,当前显示最新的版本是 6.4.0,发布时间是 2018 年 8 月 23,根据操作系统和安装方式 下载不同的安装包

image.png

Java虚拟机

elasticsearch推荐使用Java8编译运行环境

image.png

CentOS安装

$wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.rpm
$yum install  -y elasticsearch-6.4.0.rpm
Creating elasticsearch group... OK
Creating elasticsearch user... OK
  Installing : elasticsearch-6.4.0-1.noarch                                                                                                                                                                             1/1
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch
  Verifying  : elasticsearch-6.4.0-1.noarch                                                                                                                                                                             1/1

Installed:
  elasticsearch.noarch 0:6.4.0-1

Complete!

启动es

sudo systemctl start elasticsearch.service

Mac OS安装

 brew install elasticsearch
==> Downloading https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
######################################################################## 100.0%
==> Caveats
Data:    /usr/local/var/lib/elasticsearch/elasticsearch_baxiang/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_baxiang.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config:  /usr/local/etc/elasticsearch/

To have launchd start elasticsearch now and restart at login:
  brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
  elasticsearch
==> Summary
?  /usr/local/Cellar/elasticsearch/6.2.4: 112 files, 30.8MB, built in 13 minutes 23 seconds

测试启动状态

$ curl -XGET http://localhost:9200
{
  "name" : "gSbjp2X",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "elsrR7ocRAa6n9PcQcXK6A",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

目录结构

$ tree -d -L 1
.
├── bin
├── config
├── lib
├── logs
├── modules
└── plugins

6 directories

(1)bin 目录下面存放是一系列可执行程序,同名 .bat 后缀是用于 Windows 平台的可执行脚本: elasticsearch,Elasticsearch 的启动进程,Elasticsearch 程序的主入口。 elasticsearch-env,用于环境变量的配置,可以在这里修改相关的环境配置,大部分情况不建议直接修改此配置文件,可以通过在外部通过变量名来进行设置。 elasticsearch-translog,主要用于对 Translog 进行清理操作。 elasticsearch-keystore,主要用于管理 Elasticsearch 的密钥。 elasticsearch-plugin,插件安装工具。 elasticsearch-service* 开头的几个程序是为 Windows 平台提供的服务管理工具。 (2)config 目录,主要是存放一下配置文件信息: elasticsearch.yml,Elasticsearch 的配置文件,使用 Yaml 文件格式作为标准。 jvm.options,Java 虚拟机运行环境的相关参数配置。 log4j2.properties,日志文件相关的配置。 (3)lib 目录是 Elasticsearch 依赖的 Jar 包和自己的 Java 本身程序所在的地方。 (4)data 目录,数据默认存放的位置。 (5)logs 目录,日志默认存放的位置。 (6)modules 目录,存放 Elasticsearch 的内部功能模块。 (7)plugins 目录,存放 Elasticsearch 的外部扩展插件。

elasticsearch-head 安装

Chrmoe 安装Elasticsearch-head插件

image.png

源码安装elasticsearch-head

首先安装node.js,更新node.js各版本yum源 Node.js v8.x安装命令

#curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -

Node.js v7.x安装命令

#curl --silent --location https://rpm.nodesource.com/setup_7.x | bash -

Node.js v6.x安装命令

#curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

Node.js v5.x安装命令

#curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

yum安装node.js

yum install -y nodejs

查看node.js版本

# node -v

安装运行elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

Elasticsearch和关系数据库之间的比较

在Elasticsearch中,索引是类型的集合,因为数据库是关系数据库中表的集合。每个表都是行的集合,就像每个映射都是JSON对象的Elasticsearch集合一样。

Elasticsearch

关系数据库

索引

数据库

碎片

碎片

映射

字段

字段

JSON对象

元组

Elasticsearch核心概念

(1)Near Realtime(NRT):近实时,两个意思,①从写入数据到数据可以被搜索到有一个小延迟(大概1s);②基于es执行搜索和分析可以达到秒级 (2)Cluster:集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常 (3)Node:节点,集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(在执行运维管理操作的时候),默认节点会去加入一个名称为“elasticsearch”的集群,如果直接启动一堆节点,那么他们会自动组成一个elasticsearch集群,一个节点也可以组成一个elasticsearch集群。 (4)Document:文档,es中的最小数据单元,一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON表示,每个index下的type中,都可以去存储多个document,一个document里面有多个field,每个field就是一个数据字段。 (5)Index:索引,包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称,一个index包含很多document,一个index就代表了一类类似的或者相同的document。比如建立一个product index,商品索引,里面可能就存放了所有的商品数据,所有的商品document。 (6)Type:类型,每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type。 (7)shard:单台机器无法存储大量数据,es可以将一个index中的数据拆分为多个shard,每个shared存储当前index的一部分数据。有了shard就可以横向扩展,存储更多数据,众所周知单个shard的QPS是一定的,多shard可以让搜索和分析等操作分布到多台服务器上去并行分布执行,提升吞吐量和性能。 (8)replica:任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本,replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个index是10个shard(5个primary shard,5个replica shard),为了高可用性,需要将shard和replica放置在不同的node上,因此最小的高可用配置,是需要2个分开的node。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • macOS包管理工具Homebrew

    Homebrew 是 macOS 下的包管理工具,类似于 centos 下的 yum,ubuntu下的apt 可以很方便地进行安装/卸载/更新各种软件包,bre...

    羊羽shine
  • C++基础——函数

      返回类型是必须的,当没有返回类型的时候就用void代替,如果参数个数超过1,则用逗号分隔参数列表,参数列表可以为空。

    羊羽shine
  • Go语言核心编程(2)——函数

    首字母大小写决定函数在其他包的可见性,大写时其他包可见,小写时只有相同的包可以访问。 多个相邻的同类型的参数可以使用简写模式 不支持默认参数 不支持函数重...

    羊羽shine
  • 手摸手 Elastic Stack 使用教程 - 环境安装

    在日常的开发中,会涉及到对一些中间件以及基础组件的使用,日志汇总分析、APM 监控、接口的健康检查、站内搜索,以及对于服务器、nginx、iis 等等的监控,最...

    程序员宇说
  • elasticsearch环境搭建

    centos7 64位 elasticsearch 6.3.0 之前一开始用的32位,后来报错 elasticsearch6.3版本依赖的X-pack插件不支持...

    歪歪梯
  • ElasticSearch 6.x head插件安装

    ElasticSearch-head是一个H5编写的ElasticSearch集群操作和管理工具,可以对集群进行傻瓜式操作。

    py3study
  • es的安装

    2、不能以root身份运行,因此需要新建一个用户专门运行elasticSearch

    爱撒谎的男孩
  • 阿里云服务器上安装 ElasticSearch 和 Kibana 与 IK 分词器错误解决

    然后获取第一列的那个 PID ,执行 kill -9 pid 杀死该进程,然后重新启动。

    wsuo
  • ELK 基础安装配置

    老七Linux
  • Java开发环境系列:全文搜索引擎elasticsearch的安装(windows、linux)

    Elastic Search要求使用较高版本JDK,本文使用D:\DevTools\jdk1.8.0_131,并配置环境变量

    架构师小跟班

扫码关注云+社区

领取腾讯云代金券