Patrick's Blog

Once start, goes forward!

  • 首页
  • 文章归档
  • 关于页面

ElasticSearch6.3搭建快速入门

发表于 2018-02-25 | 分类于 数据科学 | 0 | 阅读次数 438

一、快速入门

  • Elasticsearch是一个实时分布式搜索和分析引擎

1.1 环境

  • java 1.8+
  • ubuntu 14.04/16.04

1.2 版本说明

  • 5.X之后的字段类型不再支持string,由text或keyword取代
  • 6.3支持sql

1.3 基本概念

1.2.1 索引(Indices): 同msql的db

  • 每个索引都有多个分片, 每个分片是一个Lucene索引
  • 分片: 默认每个索引5个分片
  • 副本: 默认每个分片1个副本

1.2.2 类型(Type): 同mysql的table

  • 6.x移除了types
    • https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html

1.2.3 文档(Documents): 同mysql的rows

  • 一条json串

1.2.4 字段(Fields): 同mysql的columns

  • Elasticsearch为对字段类型进行猜测,动态生成了字段和类型的映射关系
  • 可以预先使用mapping来定义

1.2.5 结点和集群

  • 节点(node)是一个运行着的Elasticsearch实例
  • 集群(cluster)是一组具有相同 cluster.name 的节点集合

二、多节点安装和部署

  • 至少3个结点保证集群可用, 2个结点容易出现脑裂

2.1 安装方式

  1. deb/rpm方式
# ubuntu/debain
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.deb
dpkg -i elasticsearch-6.3.0.deb
  1. zip/tar方式: 推荐
    • 便于同一台机器部署多个结点

2.2 同一台机器多节点部署

2.2.1 步骤

  1. 下载tar包并解压到/opt/elk/es目录
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
tar zxvf elasticsearch-6.3.0.tar.gz -C /opt/elk/es/
  1. 创建elsaticsearch用户和elsaticsearch用户组, 修改文件的用户和用户组
# 创建elasticsearch用户设置密码
adduser elasticsearch
# 修改文件所属用户
chown -R elasticsearch:elasticsearch elasticsearch-6.3.0
  1. 修改配置
# vi /opt/elk/es/elasticsearch-6.3.0/config/elasticsearch.yml
# 集群名称,同一集群,名称要设置相同
cluster.name: my-es
# 节点名称
node.name: node-0
# 绑定ip和端口
network.host: 192.168.1.101
http.port: 9200
  1. 复制2个结点
cp -pR elasticsearch-6.3.0 elasticsearch-6.3.0-node-1
cp -pR elasticsearch-6.3.0 elasticsearch-6.3.0-node-2
  1. 修改配置: node-1的端口为9201, node-2的端口为9202
# vi elasticsearch-6.3.0-node-1/config/elasticsearch.yml
http.port: 9201

# vi elasticsearch-6.3.0-node-2/config/elasticsearch.yml
http.port: 9202
  1. 依次启动3个结点: es必须用非root用户启动
# 切换为elasticsearch用户启动
su -elasticsearch
# 后台启动
./elasticsearch-6.3.0/bin/elasticsearch -d
./elasticsearch-6.3.0-node-1/bin/elasticsearch -d
./elasticsearch-6.3.0-node-2/bin/elasticsearch -d
  1. 查看ES是否启动成功: jps -l

2.2.3 启动报错

  1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
# vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 8192

#退出用户重新登录,使配置生效
ulimit -Hn
  1. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
  1. max number of threads [2048] for user [vagrant] is too low, increase to at least [4096]
  2. es 5.x Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Cannot allocate memory' (errno=12)
# vi config/jvm.options
-Xms512m
-Xmx512m

2.3 不同机器部署: 两台服务器, 3个结点

  • 每个结点都需要配置discovery.zen.ping.unicast.hosts

2.3.1 结点配置

  • node-0: 192.168.1.100
# 集群名称,同一集群,名称要设置相同
cluster.name: my-es
# 节点名称
node.name: node-0

# 绑定ip和端口
network.host: 192.168.1.100
http.port: 9200
transport.tcp.port: 9300

# 该属性是为了形成一个集群,有主节点资格并互相连接的节点的最小数目
discovery.zen.minimum_master_nodes: 2

#关闭多播,用单播。并指定至少一个能接受单播的主机, 每个节点配置均一致
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["192.168.1.100:9300", "192.168.2.100:9300", "192.168.2.100:9301"]
  • node-1: 192.168.2.100
# 集群名称,同一集群,名称要设置相同
cluster.name: my-es
# 节点名称
node.name: node-1

# 绑定ip和端口
network.host: 192.168.2.100
http.port: 9200
transport.tcp.port: 9300

# 该属性是为了形成一个集群,有主节点资格并互相连接的节点的最小数目
discovery.zen.minimum_master_nodes: 2

#关闭多播,用单播。并指定至少一个能接受单播的主机, 每个节点配置均一致
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["192.168.1.100:9300", "192.168.2.100:9300", "192.168.2.100:9301"]
  • node-2: 192.168.2.100
# 集群名称,同一集群,名称要设置相同
cluster.name: my-es
# 节点名称
node.name: node-2

# 绑定ip和端口
network.host: 192.168.2.100
http.port: 9201
transport.tcp.port: 9301

# 该属性是为了形成一个集群,有主节点资格并互相连接的节点的最小数目
discovery.zen.minimum_master_nodes: 2

#关闭多播,用单播。并指定至少一个能接受单播的主机, 每个节点配置均一致
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["192.168.1.100:9300", "192.168.2.100:9300", "192.168.2.100:9301"]

三、参考

  • Elasticsearch Reference [6.3]
  • 本文作者: 帕提克
  • 本文链接: https://blog.yaoyuehome.com/archives/quickstart-of-elasticsearch63
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 大数据
数据结构基础之图
大数据集群CDH5.11.0搭建及配置
  • 文章目录
  • 站点概览
帕提克

帕提克

29 日志
5 分类
9 标签
E-mail
Creative Commons
Links
  • 宇宙湾
0%
© 2015 — 2023 帕提克