文档章节

Elasticsearch-5.3.0集群搭建

K_Zhiqiang
 K_Zhiqiang
发布于 2017/05/23 11:04
字数 1479
阅读 71
收藏 1

    本文档为Elasticsearch(以下简称ES)集群的安装配置文档。本次安装的ES集群由服务器xwhadoop225、xwhadoop226两个节点组成。

1    安装之前需要配置好Java环境,需要Java8及以上版本

1.1   验证java已正确安装

[root@xwhadoop225 ~]$ java -version

java version "1.8.0_121"

Java(TM) SE Runtime Environment (build 1.8.0_121-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

2    创建用户bd,属组bdES将以此用户安装、运行)

# 创建用户组bd

groupadd bd

# 创建用户bd,属组bd

useradd bd -g bd

# 给用户bd设置密码

passwd bd

3    xwhadoop225安装ES

# bd用户ssh登录至xwhadoop225

ssh bd@xwhadoop225

# 创建ES安装包存放目录

mkdir /bigdata/package/elasticsearch

# 进入ES安装包存放目录

cd /bigdata/package/elasticsearch

# 下载ES安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz

# 创建ES安装目录

mkdir /bigdata/software/elasticsearch

# 解压elasticsearch-5.3.0.tar.gz至安装目录

tar –zxvf elasticsearch-5.3.0.tar.gz –C /bigdata/software/elasticsearch

4    配置ES

4.1   进入ES的配置文件目录

cd /bigdata/software/elasticsearch/elasticsearch-5.3.0/config

4.2   进行如下配置

# 编辑elasticsearch.yml

vi elasticsearch.yml

# 配置ES集群的名称

cluster.name: xw-es-225_226

# 配置ES集群当前节点的名称

node.name: es-xwhadoop225

# 配置ES绑定的ip地址。默认为127.0.0.1,客户端和ES集群的其他非本机节点都无法访问

network.host: 0.0.0.0

# 配置ES集群各个节点的ip列表。默认为127.0.0.1

discovery.zen.ping.unicast.hosts: ["xwhadoop225", "xwhadoop226"]

5    启动ES

5.1   进入ES的可执行文件目录

cd /bigdata/software/elasticsearch/elasticsearch-5.3.0/bin

5.2   启动ES

./elasticsearch

# 后台启动ES

# ./elasticsearch -d

5.3   启动之后打开另一个终端进行测试,看到如下信息则说明启动成功,本地访问正常:

[bd@xwhadoop225 ~]$ curl 'http://localhost:9200/?pretty'

{

  "name" : "2Y1Usby",

  "cluster_name" : "elasticsearch",

  "cluster_uuid" : "Jk-rYEUyRhCNvGAWCtAFrw",

  "version" : {

    "number" : "5.3.0",

    "build_hash" : "3adb13b",

    "build_date" : "2017-03-23T03:31:50.652Z",

    "build_snapshot" : false,

    "lucene_version" : "6.4.1"

  },

  "tagline" : "You Know, for Search"

}

5.4   验证非本地访问是否成功,打开一个非本地浏览器,请求http://172.17.93.225:9200/?pretty,返回以下信息则说明非本地访问正常:

6    配置xwhadoop226服务器,组建ES集群

参照上述步骤1~5,完成服务器xwhadoop226上ES的安装,注意:4.2中的配置需要做相应改动

7    启动ES集群

xwhadoop225、xwhadoop226分别安装、配置ES,并成功启动后,查看集群状态

# 请求url:http://xwhadoop225:9200/_cluster/health?pretty,如下所示,集群正常运行

KangdeMacBook-Pro:Documents Kang$ curl xwhadoop225:9200/_cluster/health?pretty

{

  "cluster_name" : "xw-es-225_226",

  "status" : "green",

  "timed_out" : false,

  "number_of_nodes" : 2,

  "number_of_data_nodes" : 2,

  "active_primary_shards" : 0,

  "active_shards" : 0,

  "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

}
  • es-head安装:

yum install git npm nodejs

npm install grunt-cli

npm install grunt



git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

vim _site/app.js

修改http://localhost:9200 为http://xwhadoop225:9200



npm install phantomjs-prebuilt@2.1.13 --ignore-scripts (如果npm install有问题,先执行这句)

npm install

grunt server >>head.log 2>&1 &

open http://xwhadoop225:9100/

     注:es-head安装文件不要放在$Elasticsearch_HOME/plugins或modules目录下,否则Elasticsearch将不能正常启动

  • FAQ

I.   出于安全方面的考虑,ES默认禁止使用root用户启动,异常信息如下:

[root@xwhadoop225 bin]# ./elasticsearch

[2017-03-30T15:39:40,951][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:127) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.3.0.jar:5.3.0]

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:204) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:360) ~[elasticsearch-5.3.0.jar:5.3.0]

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123) ~[elasticsearch-5.3.0.jar:5.3.0]

... 6 more

    解决方案:

A.   需要使用非root用户来启动ES,以解决此问题。

 

II. 需要按提示配置系统参数max file descriptorsmax virtual memory areas vm.max_map_count,异常信息如下:

[bd@xwhadoop225 bin]$ ./elasticsearch

[2017-03-30T15:54:39,673][INFO ][o.e.n.Node               ] [] initializing ...

[2017-03-30T15:54:39,767][INFO ][o.e.e.NodeEnvironment    ] [2Y1Usby] using [1] data paths, mounts [[/mnt (/dev/vdb1)]], net usable_space [455.5gb], net total_space [492gb], spins? [possibly], types [ext3]

[2017-03-30T15:54:39,767][INFO ][o.e.e.NodeEnvironment    ] [2Y1Usby] heap size [1.9gb], compressed ordinary object pointers [true]

[2017-03-30T15:54:39,768][INFO ][o.e.n.Node               ] node name [2Y1Usby] derived from node ID [2Y1UsbyoT-yXjr10Ckf2bw]; set [node.name] to override

[2017-03-30T15:54:39,769][INFO ][o.e.n.Node               ] version[5.3.0], pid[17908], build[3adb13b/2017-03-23T03:31:50.652Z], OS[Linux/3.10.0-514.6.2.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_121/25.121-b13]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [aggs-matrix-stats]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [ingest-common]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [lang-expression]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [lang-groovy]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [lang-mustache]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [lang-painless]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [percolator]

[2017-03-30T15:54:40,458][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [reindex]

[2017-03-30T15:54:40,459][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [transport-netty3]

[2017-03-30T15:54:40,459][INFO ][o.e.p.PluginsService     ] [2Y1Usby] loaded module [transport-netty4]

[2017-03-30T15:54:40,459][INFO ][o.e.p.PluginsService     ] [2Y1Usby] no plugins loaded

[2017-03-30T15:54:42,409][INFO ][o.e.n.Node               ] initialized

[2017-03-30T15:54:42,410][INFO ][o.e.n.Node               ] [2Y1Usby] starting ...

[2017-03-30T15:54:42,548][INFO ][o.e.t.TransportService   ] [2Y1Usby] publish_address {172.17.93.225:9300}, bound_addresses {0.0.0.0:9300}

[2017-03-30T15:54:42,554][INFO ][o.e.b.BootstrapChecks    ] [2Y1Usby] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks

ERROR: bootstrap checks failed

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2017-03-30T15:54:42,595][INFO ][o.e.n.Node               ] [2Y1Usby] stopping ...

[2017-03-30T15:54:42,615][INFO ][o.e.n.Node               ] [2Y1Usby] stopped

[2017-03-30T15:54:42,615][INFO ][o.e.n.Node               ] [2Y1Usby] closing ...

[2017-03-30T15:54:42,625][INFO ][o.e.n.Node               ] [2Y1Usby] closed

    解决方案:

A.   配置max file descriptors

从异常信息可知,需要将max file descriptors的值由65535调整为65536(或以上)

        i.      确认当前max file descriptors的值

[bd@xwhadoop225 ~]$ ulimit -n

65535

        ii.      调整max file descriptors的值

# 以root身份编辑limits.conf

sudo vi /etc/security/limits.conf

# 增加以下内容

bd soft nofile 65536

bd hard nofile 65536

# 因为是改了配置文件,需退出重新登录

exit

ssh bd@xwhadoop225

     iii.      确认修改后的max file descriptors的值

[bd@xwhadoop225 ~]$ ulimit -n

65536

B.   配置vm.max_map_count

从异常信息可知,需要将vm.max_map_count的值由65530调整为262144(或以上)

        i.      确认当前vm.max_map_count的值

[bd@xwhadoop225 ~]$ sysctl vm.max_map_count

vm.max_map_count = 65530

       ii.      调整vm.max_map_count的值

# 以root身份修改系统参数vm.max_map_count的值

sudo sysctl vm.max_map_count=262144

     iii.      确认修改后的vm.max_map_count的值

[bd@xwhadoop225 ~]$ sysctl vm.max_map_count

vm.max_map_count = 262144

 

© 著作权归作者所有

K_Zhiqiang
粉丝 0
博文 26
码字总数 14955
作品 0
海淀
程序员
私信 提问
Grafana、elasticsearch、kafka、logstash和pinpoint结合

一、Grafana 1)下载安装 wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x8664.rpm sudo yum localinstall grafana-4.2.0-1.x86_64.rpm 2)启动 serv......

半船水
2017/10/25
265
0
蛋疼的ElasticSearch(三)之配置elasticsearch-analysis-ik和集群

配置elasticsearch-analysis-ik 1.下载https://github.com/medcl/elasticsearch-analysis-ik 2.解压 elasticsearch-analysis-ik-master.zip 3.mvn clean package 4.打开编译targetreleases,......

cmazxiaoma
2018/10/23
0
0
elasticsearch集群搭建手册(伪集群搭建)

安装部署 创建程序目录 安装目录 数据目录 下载程序 3.1 下载Elasticsearch 6.4.3 tar 3.2 解压文件 修改配置文件 01节点 vi /usr/local/elasticsearch/6.4.3/01/config/elasticsearch.yml ...

watermelon11
2018/11/07
103
0
部署 elk 日志系统 elasticsearch、logstash、 kibana

安装elk 安装Java 1.8环境 解压源码安装包: tar xf jdk-8u121-linux-x64.tar.gz ll mkdir /work/opt -p mv jdk1.8.0_121 /work/opt/jdk ll /work/opt/jdk/ chown -R root.root /work/opt v......

lvnian2009
2018/06/26
0
0
CentOS7.3下ELK日志分析系统集群搭建

Elasticsearch是个基于Lucene实现的开源、分布式、restful的全文本搜索引擎,此外他还是一个分布式实时文档存储,其中每个文档的每个filed均是可被索引的数据,且可被搜索,也是一个带实时分...

wujunqi1996
2018/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.7K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部