elasticsearch安装步骤
今天我们来安装一下elasticsearch,我们采用RPM包安装的方式来,版本为6.5.4。系统为centos7.5版本。
1、首先设置系统环境
1)编辑/etc/sysctl.conf文件添加下面一行内容
vm.max_map_count=262144
这个参数会影响java线程数量,用于限制一个进程可以拥有的虚拟内存区域的大小。系统默认是65530,可以修改更高的值
添加内容完成后使用命令立即并永久生效
sysctl -p
2)编辑/etc/security/limits.conf文件添加一下内容:
#修改最大文件描述符
* soft nofile 65535
* hard nofile 65535
#修改最大线程数
* soft nproc 4096
* hard nproc 4096
#最大锁定内存地址空间
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
2、安装java环境
1)下载jdk。至少1.7版本以上,这里使用jdk1.8版本。可以选择使用oracle JDK或者Open JDK
2)我们这里直接使用yum一键安装来完成
yum install java-1.8.0-openjdk.x86_64
5)最后执行java -version命令看看是否立即生效:
[root@: /usr/local]#java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
3、安装elasticsearch的RPM包
[root@:vg_adn_tidbCkhsTest /usr/local/src]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
[root@:vg_adn_tidbCkhsTest /usr/local/src]#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm
--2019-01-14 14:57:17-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm
Resolving artifacts.elastic.co (artifacts.elastic.co)... 107.21.239.197, 54.225.214.74, 54.225.221.128, ...
Connecting to artifacts.elastic.co (artifacts.elastic.co)|107.21.239.197|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 113304673 (108M) [application/octet-stream]
Saving to: ‘elasticsearch-6.5.4.rpm’ 100%[=================================================================================================>] 113,304,673 73.5MB/s in 1.5s 2019-01-14 14:57:19 (73.5 MB/s) - ‘elasticsearch-6.5.4.rpm’ saved [113304673/113304673] [root@:vg_adn_tidbCkhsTest /usr/local/src]#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm.sha512
--2019-01-14 14:57:26-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm.sha512
Resolving artifacts.elastic.co (artifacts.elastic.co)... 107.21.237.188, 107.21.239.197, 54.225.214.74, ...
Connecting to artifacts.elastic.co (artifacts.elastic.co)|107.21.237.188|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 153 [application/octet-stream]
Saving to: ‘elasticsearch-6.5.4.rpm.sha512’ 100%[=================================================================================================>] 153 --.-K/s in 0s 2019-01-14 14:57:26 (29.0 MB/s) - ‘elasticsearch-6.5.4.rpm.sha512’ saved [153/153] [root@:vg_adn_tidbCkhsTest /usr/local/src]#sha512sum -c elasticsearch-6.5.4.rpm.sha512
elasticsearch-6.5.4.rpm: OK
[root@:vg_adn_tidbCkhsTest /usr/local/src]#rpm -ivh elasticsearch-6.5.4.rpm
Preparing... ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Updating / installing...
1:elasticsearch-0:6.5.4-1 ################################# [100%]
### 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
到最好一部我们看到已经安装成功了。
4、配置elasticsearch服务配置文件
1)修改/etc/sysconfig/elasticsearch文件内容
ES_JAVA_OPTS="-Xms4g -Xmx4g"
MAX_LOCKED_MEMORY=unlimited
替换4g为总内存的一半(Elasticsearch官方建议是主机总内存的一半)
2)使用命令systemctl edit elasticsearch,此时会进入编辑模式,输入一下内容后保存
[Service]
LimitMEMLOCK=infinity
5、配置elasticsearch文件,在/etc/elasticsearch目录下。
# cat /etc/elasticsearch/elasticsearch.yml cluster.name: mylab #集群名称,只有cluster.name相同时,节点才能加入集群。请设置为具有描述性的名字。不建议在不同环境中使用相同的集群名。
node.name: mylabb01 #节点描述名称,默认情况下,Elasticsearch将使用随机生成的UUID的前7个字符作为节点id。设为服务器的主机名 node.name: ${HOSTNAME}
node.attr.rack: r1 #指定节点的部落属性,机架位置,比集群范围更大。
path.data: /var/lib/elasticsearch #Elasticsearch的数据文件存放目录 如果是默认位置,在将Elasticsearch升级到新版本时,很可能会把数据删除。
path.logs: /var/log/elasticsearch #日志目录
bootstrap.memory_lock: true #启动后锁定内存,禁用swap交换,提高ES性能。
network.host: 0.0.0.0 #指定监听的地址
http.port: 9200 #监听的WEB端口
discovery.zen.ping.unicast.hosts: ["IP:9300"]: #默认网络配置中,Elasticsearch将绑定到回环地址,并扫描9300-9305端口,试图连接同一台服务器上的其他节点,可以自动发现并加入集群。
- 10.0.0.46:9300 #此端口为TCP传输端口,用于集群内节点发现、节点间信息传输、ES Java API也是通过此端口传输数据,transport.tcp.port定义。9200为HTTP端口。
- host1.vtlab.io
discovery.zen.minimum_master_nodes: 2 #为防止数据丢失,discovery.zen.minimum_master_nodes设置至关重要,主节点的最小选举数。避免脑裂,应将此值设为(master_eligible_nodes / 2) + 1,换言之,如果有3个节点,(3/2)+1 or 2
#以下选项仅在完全重启集群时生效
#本地网关模块在整个群集重新启动时存储群集状态和分片数据。
#以下静态设置必须在每个主节点上设置,控制新选择的主节点在试图恢复集群状态和集群数据之前应该等待多长时间:
gateway.expected_nodes: 0 #集群中预期的(数据或主)节点数量。一旦加入集群的节点数量达到预期,本地碎片的恢复就会开始。默认值为0
gateway.expected_master_nodes: 0 #集群中预期的主节点数量。一旦加入集群的主节点数量达到预期,本地碎片的恢复就会开始。默认值为0
gateway.expected_data_nodes: 0 #集群中预期的数据节点数量。一旦预期的数据节点数量加入集群,本地碎片的恢复就会开始。默认值为0
gateway.recover_after_time: 5 #如果没有达到预期的节点数量,则恢复过程将等待配置的时间量,然后再尝试恢复。如果配置了一个expected_nodes设置,则默认值为5m。
gateway.recover_after_nodes: 1 #只要有这么多数据或主节点加入集群,就可以恢复。
gateway.recover_after_master_nodes: 1 #只要有这么多主节点加入集群,就可以恢复。
gateway.recover_after_data_nodes: 1 #只要有这么多数据节点加入集群,就可以恢复。
action.destructive_requires_name: true #禁用通过api以通配符删除所有索引。删除索引时需要指定被删除的索引名称。
6、载入服务
systemtl daemon-reload
7、启动节点
systemctl start elasticsearch
8、检查是否启动成功
[root@:vg_adn_tidbCkhsTest /etc/elasticsearch]#curl http://172.31.26.133:9200
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "dc6CndO5TzS8T1GcBXiQKg",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
额外补充,我们对配置文件进行解析:
(1)cluster.name: esbigdata
配置elasticsearch集群名称,默认是elasticsearch。这里修改为esbigdata,elasticsearch会自动发现在同一网段下的集群名为esbigdata的主机,如果在同一网段下有多个集群,就可以通过这个属性来区分不同的集群。线上生产环境时建议更改。
(2)node.name: server1
节点名,任意指定一个即可,这里是server1,我们这个集群环境中有三个节点,分别是server1、server2和server3,记得根据主机的不同,要修改相应的节点名称。
(3)node.master: true
指定该节点是否有资格被选举成为master,默认是true,elasticsearch集群中默认第一台启动的机器为master角色,如果这台服务器宕机就会重新选举新的master。我们这个集群环境中,定义了server1和server3两个master节点,因此这两个节点上node.master的值要设置为true。
(4)node.data: true
指定该节点是否存储索引数据,默认为true,表示数据存储节点,如果节点配置node.master:false并且node.data:<br/>false,则该节点就是client node。这个client node类似于一个“路由器”,负责将集群层面的请求转发到主节点,将数据相关的请求转发到数据节点。在我们这个集群环境中,定义了server1、server2和server3均为数据存储节点,因此这三个节点上node.data的值要设置为true。
(5)path.data:/data1/elasticsearch, /data2/elasticsearch
设置索引数据的存储路径,默认是elasticsearch根目录下的data文件夹,这里自定义了两个路径,可以设置多个存储路径,用逗号隔开。
(6)path.logs: /usr/local/elasticsearch/logs
设置日志文件的存储路径,默认是elasticsearch根目录下的logs文件夹
(7)bootstrap.memory_lock: true
此配置项一般设置为true用来锁住物理内存。在linux下物理内存的执行效率要远远高于虚拟内存(swap)的执行效率,因此,当JVM开始使用swap内存时elasticsearch的执行效率会降低很多,所以要保证它不使用swap,保证机器有足够的物理内存分配给elasticsearch。同时也要允许elasticsearch的进程可以锁住物理内存,linux下可以通过“ulimit -l”命令查看最大锁定内存地址空间(memlock)是不是unlimited,这个参数在之前系统调优的时候已经设置过了。
(8)network.host: 0.0.0.0
此配置项是network.publish_host和network.bind_host两个配置项的集合,network.bind_host用来设置elasticsearch提供服务的IP地址,默认值为0.0.0.0,此默认配置不太安全,因为如果服务器有多块网卡(可设置多个IP,可能有内网IP,也可能有外网IP),那么就可以通过外网IP来访问elasticsearch提供的服务,显然,elasticsearch集群在外网访问的话将非常不安全,因此,建议将network.bind_host设置为内网IP地址比较好。
network.publish_host用来设置elasticsearch集群中该节点和其它节点间交互通信的IP地址,一般设置为该节点所在的内网IP地址即可。需要保证可以和集群中其它节点进行通信。
在elasticsearch新版本中,增加了network.host配置项,此配置项用来同时设置bind_host和publish_host上面两个参数,根据上面的介绍,此值设置为服务器的内网IP地址即可。也就是设置bind_host和publish_host为同一个IP地址。
(9)http.port: 9200
设置elasticsearch对外提供服务的http端口,默认为9200。其实,还有一个端口配置选项transport.tcp.port,此配置项用来设置节点间交互通信的TCP端口,默认是9300
(10)discovery.zen.minimum_master_nodes: 1
配置当前集群中最少的master节点数,默认为1,也就是说,elasticsearch集群中master节点数不能低于此值,如果低于此值,elasticsearch集群将停止运行。在三个以上节点的集群环境中,建议配置大一点的值,推荐2至4个为好。
(11)discovery.zen.ping.unicast.hosts:[172.16.213.37:9300,172.16.213.78:9300]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。这里需要注意,master节点初始列表中对应的端口是9300。即为集群交互通信端口。
------------------------------------------------------------更新----------------------------------------------------------------
1)启动报错:
$/usr/local/elasticsearch/bin/elasticsearch -d
Java HotSpot(TM) -Bit Server VM warning: Cannot open file logs/gc.log due to Permission denied
这是因为elasticsearch的logs目录下的一个日志文件没有权限所致,这个日志文件不知ES的访问、错误配置,而是在ES的安装目录下的一个logs目录,里面的gc.log没有权限所致,默认应该是“-rw-rw-r--”,所以解决问题最简单的方法是删除了,然后重启es集群即可,这个日志文件ES会自动创建。
elasticsearch安装步骤的更多相关文章
- ElasticSearch 安装配置
1. Elasticsearch5.5.2安装 1.1.Elasticsearch安装步骤 #安装之前需安装java 环境,并配置JAVA_HOME环境变量 #直接下载Elasticsearch- ...
- 【最新】docker 安装elasticsearch + kibana步骤【第一篇_elasticsearch】
最近在用docker 安装elasticsearch + kibana 遇到了很多坑,最后成功安装elasticsearch + kibana (6.8.1)版本 安装了一下午,现总结过程中遇到 ...
- Elasticsearch安装和使用
Elasticsearch安装和使用 Elasticsearch 是开源搜索平台的新成员,实时数据分析的神器,发展迅猛,基于 Lucene.RESTful.分布式.面向云计算设计.实时搜索.全文搜索. ...
- Elasticsearch安装使用
在网上有很多那种ES步骤和问题的解决 方案的,不过没有一个详细的整合,和问题的梳理:我就想着闲暇之余,来记录一下自己安装的过程以及碰到的问题和心得:有什么不对的和问题希望及时拍砖. 第一步:环境 li ...
- 我的ElasticSearch之ElasticSearch安装配置环境
最近一段时间比较忙,都很少来园子逛了,刚好,用到了ElasticSearch,感觉还不错,所以就给大家推荐一下,自己也顺便学习:虽然公司选择用ElasticSearch,但是以前都没有用过这个,而且公 ...
- 如何给Elasticsearch安装中文分词器IK
安装Elasticsearch安装中文分词器IK的步骤: 1. 停止elasticsearch 2.2的服务 2. 在以下地址下载对应的elasticsearch-analysis-ik插件安装包(版 ...
- ElasticSearch安装和核心概念
1.ElasticSearch安装 elasticsearch的安装超级easy,解压即用(要事先安装好java环境). 到官网 http://www.elasticsearch.org下载最新版的 ...
- Elasticsearch安装中文分词插件ik
Elasticsearch默认提供的分词器,会把每一个汉字分开,而不是我们想要的依据关键词来分词.比如: curl -XPOST "http://localhost:9200/userinf ...
- ElasticSearch安装及使用
ElasticSearch安装及使用 ELK由Elasticsearch.Logstash和Kibana三部分组件组成. Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置 ...
随机推荐
- shell脚本中打印所有匹配某些关键字符的行或前后各N行
在日常运维中,经常需要监控某个进程,并打印某个进程的监控结果,通常需要打印匹配某个结果的行以及其前后各N行. 注意:echo使用-e参数,对打印的结果中进行\n换行 [root@mq-master02 ...
- AI---训练集(train set) 验证集(validation set) 测试集(test set)
在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...
- (转)mysql升级5.5.20时遇到的问题:1548-Cannot load from mysql.proc. The table is probably corrupted
LINUX下将mysql从5.1升级至5.5后,发现存储过程不能用了.创建和使用存储过程时就会提示Cannot load from mysql.proc. The table is probably ...
- 常见的加密解密算法-MD5
一.MD5加密概述 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 13 ...
- linux笔记-tar 解压缩命令
tar 解压缩命令 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只 ...
- ActiveMQ与Spring整合-MessageListener
消费者,使用监听的实现方式. 1. pom.xml 2. 生产者 package org.ygy.mq.lesson04; import javax.jms.JMSException; import ...
- CSS学习笔记04 CSS文字排版常用属性
字体样式属性 font-size:字号大小 font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位.其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使 ...
- Android四大组件-Content Provider
http://www.jianshu.com/p/c3ce81b638bd 一.基础回顾. 简介ContentProvider(数据提供者)是在应用程序间共享数据的一种接口机制,虽然我们可以采用文件存 ...
- 漫画 | Java多线程与并发(二)
1.什么是线程池? 为什么要使用它? 2.Java中invokeAndWait 和 invokeLater有什么区别? 3.多线程中的忙循环是什么? 4.Java内存模型是什么? 线程内的代码能够按先 ...
- JS 正则截取字符串
1.js截取两个字符串之间的内容: varstr = "aaabbbcccdddeeefff"; str = str.match(/aaa(\S*)fff/)[1]; alert( ...