Elasticsearch京东搜索分析引擎数据库单点转集群模式

Elasticsearch京东搜索分析引擎数据库部署与基本使用

0122
添加主机名解析:
[root@db02 ~]# echo '172.18.1.77 db01' >> /etc/hosts
安装JDK1.8:
[root@db02 ~]# yum install java-1.8.0-openjdk -y
[root@db02 ~]# java -version

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
配置内核参数:
  • max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。调优这个值将限制进程可拥有VMA的数量。限制一个进程拥有VMA的总数可能导致应用程序出错,因为当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。如果你的操作系统在NORMAL区域仅占用少量的内存,那么调低这个值可以帮助释放内存给内核用。
[root@db02 ~]# echo 'vm.max_map_count = 655360' >> /etc/sysctl.conf
[root@db02 ~]# sysctl -p /etc/sysctl.conf
vm.max_map_count = 655360
下载并安装软件包:
[root@db02 ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
[root@db02 ~]# rpm -ivh elasticsearch-6.6.0.rpm
配置ES参数:
  • 只要指定 Elastic集群中 Master节点的 IP地址就可以加入整个集群中。

  • 同时不要设置node.master参数,一个集群中只能有一个Master节点

#修改es配置文件
[root@elk-02 ~]# grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml

# cluster.name: es-cluster                # 集群名称(单机节点ES需要注释,多节点需要打开。区别:日志文件不同)
node.name: db01                         # 节点名称
node.data: true                         # 当前为数据节点
path.data: /var/lib/elasticsearch       # 数据存放位置
path.logs: /var/log/elasticsearch       # 日志存放位置
bootstrap.memory_lock: true             # 内存空间锁定(固定分配给ES的内存空间)
network.host: 172.18.1.77               # 监听的IP地址
http.port: 9200                         # 监听的端口
discovery.zen.ping.unicast.hosts: ["172.18.1.76", "172.18.1.77"]    # 节点监测的主机名或IP地址
http.cors.enabled: true                 # 当前及以下一行都放在文件最后一行
http.cors.allow-origin: "*"             # 支持跨域访问
开放ES可用内存:
  • 在[Service]标签下加入以下参数(对内存使用是无穷大)
[root@db02 ~]# vim /usr/lib/systemd/system/elasticsearch.service

[Service]
LimitMEMLOCK=infinity
设置ES可用内存:
  • 当前设置为最大与最小都是 512Mb内存。官方说明最大不要超过32G,超过32G性能反而会下降。
# 默认就是 1G
[root@db02 ~]# vim /etc/elasticsearch/jvm.options +22

-Xms512m
-Xmx512m
启动ES服务:
[root@db02 ~]# systemctl daemon-reload
[root@db02 ~]# systemctl start elasticsearch.service
[root@db02 ~]# systemctl enable elasticsearch.service
[root@db02 ~]# netstat -tunpl |grep java
tcp6       0      0 172.18.1.76:9200        :::*                    LISTEN      6050/java           
tcp6       0      0 172.18.1.76:9300        :::*                    LISTEN      6050/java
验证Elastic集群状态:
[root@db01 ~]# curl 172.18.1.76:9200/_cluster/health?pretty
{
  "cluster_name" : "elasticsearch",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,          # 两个节点
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 5,
  "active_shards" : 10,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
[root@db01 ~]# curl -XGET 'http://172.18.1.76:9200/_cat/health?v&pretty'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1576207332 03:22:12  elasticsearch green           2         2     10   5    0    0        0             0                  -                100.0%

Elastic集群指定分片数量:

  • 创建index2索引,然后指定分片数量为 3 个 , 副本为 1 个。
[root@db01 ~]# curl -XPUT '172.18.1.76:9200/index2?pretty' -H 'Content-Type: application/json' -d'
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}'

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论