linux上elasticsearch集群搭建

本文详细介绍如何在三台虚拟机上部署Elasticsearch集群,包括用户与权限配置、JDK环境搭建、ES安装与配置修改等关键步骤,确保集群稳定运行。

一,准备三台虚拟机

修改主机映射:vi/etc/hosts
192.168.***.*** 主机名

二,es启动时需要使用非root用户,所有创建一个用户

  • 注:(***)为你定义的用户名字

useradd ***;

三,为新创建的用户添加密码

echo *** | passwd --stdin ***

四,为新创建的用户添加用户权限

  • 注:需用root用户来进行操作

echo "*** ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/***

/etc/sudoers的权限必须是0440
设置限为:0440
chmod 0440 /etc/sudoers.d/***

五,创建一个***目录

  • 注:(***)为你定义的目录名字

mkdir /{***,**}

六,给相应的目录添加权限

chown -R ***(用户名):***(用户名)/{***,**(目录) }

七,安装jdk并配置环境变量(jdk要求1.8以上)

1,下载Linux环境下的jdk1.8
2,导入jkd1.8
3,解压到 usr/local/

tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/

4.修改环境变量,通过命令

vim /etc/profile

在文件尾加入:

export JAVA_HOME=路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

保存并退出
保存完之后,我们还需要让这个环境变量配置信息里面生效,要不然只能重启电脑生效了。
通过命令source /etc/profile让profile文件立即生效
5.测试是否安装成功
java -version

八,上传es安装包并解压

tar -zxvf elasticsearch-6.3.0.tar.gz -C /***(你定义的目录名字)/

九,修改es配置

!!!注:冒号后面加空格!!!

vim /***(你定义的目录名字)/elasticsearch-6.3.0/config/elasticsearch.yml

  • 集群名称

cluster.name: ***

  • 节点名称,要唯一

node.name: **

  • 数据存放位置

path.data: ***/data

  • 日志存放位置(可选)

path.logs: ***/logs

  • es绑定的ip地址((三台虚拟机各为自己的ip)

network.host: 192.168.**.**

  • 初始化时可进行选举的节点(主机映射的名称)

discovery.zen.ping.unicast.hosts: ["***", "***", "***"]

十,更改配置

用户最大可创建文件数太小
sudovi/etc/security/limits.conf

*hardnofile65536
*softnproc4096
*hardnproc4096

十一,最大虚拟内存太小

sudovi/etc/sysctl.conf
vm.max_map_count=262144

十二,查看虚拟内存的大小

sudosysctl-p

十三,在其他节点上修改es配置

需要修改的有:node.name和network.host

十四,重启环境变量

source /etc/profile

十五,测试

1,选择创建的用户

su ***

2,启动es

cd /**/elasticsearch-6.3.0/bin/

./elasticsearch

3,Linux中查看集群状态

curl-XGET'http://192.168.**.**:9200/_cluster/health?pretty'

4,浏览器中查看集群状态

输入:http://192.168.**😗*9200/

展示出以下内容,即为成功

{
  "name" : "es-1",
  "cluster_name" : "my-es",
  "cluster_uuid" : "QxEaRDhzTIiGyNm_6KX15A",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
<think>嗯,用户问的是如何在Linux系统上构建Elasticsearch集群。首先,我需要回忆一下之前关于Elasticsearch集群搭建的步骤。根据提供的引用内容,有三个引用涉及到安装步骤,比如引用1提到搭建步骤和注意事项,引用2提到了分发文件夹的命令xsync,引用3提到了二进制安装和keystore的创建。 首先,我应该整理搭建集群的基本流程。通常安装Elasticsearch需要先准备环境,比如Java环境,然后下载并解压安装包。接着是配置文件,特别是elasticsearch.yml里的集群名称、节点名称、网络主机、初始主节点列表等。然后可能需要处理系统配置,比如内存限制和文件描述符数量。之后是分发安装文件到其他节点,每个节点都要调整各自的配置。最后启动服务并验证集群状态。 用户提供的引用中提到使用xsync分发文件夹,这应该是在集群中的其他机器上同步安装目录。另外,引用3提到了二进制安装,所以可能用户需要的是通过二进制包安装的方式,而不是使用包管理器。需要注意版本的一致性,确保所有节点使用相同的Elasticsearch版本。 还要考虑安全配置,比如生成keystore,不过引用3中的命令是创建keystore,可能在8.x版本中安全功能更严格,需要SSL/TLS配置。但用户提供的引用中,引用2用的是7.6.2版本,引用38.14.2,所以可能需要分情况说明,或者统一推荐一个版本?但用户的问题没有指定版本,可能需要给出通用步骤,同时提到版本差异。 另外,系统配置部分,比如修改/etc/security/limits.conf和/etc/sysctl.conf,这些是Linux系统优化的一部分,确保Elasticsearch有足够的资源运行。需要提醒用户根据实际环境调整参数,比如内存大小。 在启动服务时,可能需要使用systemd管理,或者直接运行bin/elasticsearch。但生产环境建议用守护进程方式运行,所以创建systemd服务单元是有必要的。 验证集群状态可以通过curl或者Kibana,但用户可能没有安装Kibana,所以用curl检查节点加入情况即可。最后,注意事项里要提到版本一致、防火墙设置、资源监控,这些引用1也提到了合理配置和监控的重要性。 生成的问题部分需要围绕搭建集群的后续步骤,比如增加节点、安全加固、配置文件参数、监控方法、版本升级等。这些都是用户在搭建集群后可能遇到的问题,需要提前考虑。</think>### 在Linux系统上构建Elasticsearch集群的步骤 #### 一、环境准备 1. **操作系统要求** - 支持Linux发行版(如CentOS、Ubuntu等) - 确保所有节点时间同步(使用NTP服务) - 关闭防火墙或开放端口:9200(HTTP API)、9300(节点通信) 2. **依赖安装** - 安装Java环境(Elasticsearch 7.x需要JDK 11+,8.x需要JDK 17+) ```bash sudo apt install openjdk-17-jdk # Ubuntu示例 ``` --- #### 二、安装Elasticsearch 1. **下载和解压二进制包** ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.2-linux-x86_64.tar.gz tar -zxvf elasticsearch-8.14.2-linux-x86_64.tar.gz -C /opt/ ``` 2. **配置系统参数** - 修改`/etc/security/limits.conf`,添加: ```bash * soft nofile 65535 * hard nofile 65535 elasticsearch soft memlock unlimited # 用户名为elasticsearch时 ``` - 修改`/etc/sysctl.conf`,添加: ```bash vm.max_map_count=262144 ``` 执行`sysctl -p`生效[^3]。 --- #### 三、集群配置 1. **修改`elasticsearch.yml`** 配置文件路径:`/opt/elasticsearch-8.14.2/config/elasticsearch.yml` ```yaml cluster.name: my-cluster # 集群名称需一致 node.name: node-1 # 节点唯一标识 network.host: 0.0.0.0 # 绑定IP discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"] # 集群节点IP列表 cluster.initial_master_nodes: ["node-1", "node-2"] # 初始主节点 ``` 2. **分发配置到其他节点** 使用工具(如`scp`或`xsync`)同步安装目录: ```bash xsync /opt/elasticsearch-8.14.2 # 需提前配置SSH免密登录[^2] ``` --- #### 四、启动与验证 1. **启动服务** 在每个节点执行: ```bash cd /opt/elasticsearch-8.14.2/bin ./elasticsearch -d # 后运行 ``` 2. **验证集群状态** ```bash curl -XGET http://localhost:9200/_cluster/health?pretty ``` 输出应包含`"status" : "green"`和正确的节点数[^1]。 --- #### 五、注意事项 1. **安全加固**(针对Elasticsearch 8.x) - 生成keystore: ```bash ./elasticsearch-keystore create # 在bin目录下执行[^3] ``` - 配置TLS证书以实现节点间加密通信。 2. **性能优化** - 分配内存:修改`jvm.options`中的`-Xms`和`-Xmx`(不超过物理内存的50%) - 使用SSD硬盘提升I/O性能。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值