openEuler系统离线安装Elasticsearch 7.8版本,配置集群,设置账号密码(一)
·
openEuler系统离线安装Elasticsearch7.8版本,配置集群,设置账号密码(一)
1.下载es
下载地址Elasticsearch 7.8.0 | Elastic

2.上传和解压
mkdir -p /home/mydata
将 elasticsearch-7.8.0-linux-x86_64.tar.gz上传到/home/mydata目录下
cd /home/mydata
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
3.创建es用户
# 新增es用户
useradd es
# 为es用户设置密码,不设置密码
# passwd es
# 修改目录所有者
chown -R es:es /home/mydata/elasticsearch-7.8.0
4.修改系统配置
修改/etc/security/limits.conf
vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536

修改/etc/security/limits.d/20-nproc.conf
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表Linux所有用户名称

修改/etc/sysctl.conf
vim /etc/sysctl.conf
# 在文件中增加下面内容
# 一个进程可以拥有的VMA(虚拟内存区域)的数量,默认值为65536
vm.max_map_count=655360

重新加载配置
sysctl -p
5.修改es配置,形成集群
cd /home/mydata/elasticsearch-7.8.0/config
vim elasticsearch.yml
第一个节点,配置如下,network.host改成本机ip
# 集群名称必须一致
cluster.name: TBL_YTH
# 节点名称不一样
node.name: node-1
# 此处必须做修改,为本机ip
network.host: xxx.xxx.x.1
http.port: 9200
transport.tcp.port: 9300
# The default list of hosts is ["127.0.0.1", "[::1]"]
#对于第一个Elasticsearch节点,您不需要显式地在配置中指定discovery.seed_hosts。因为第一个节点是集群的初始节点,它将成为种子节点,等待其他节点加入。
#当您启动第一个Elasticsearch节点时,它将自动成为集群的初始节点,并监听默认的传输端口9300和HTTP端口9200。其他节点可以通过该初始节点的IP地址和端口来发现和加入集群。
#建议在集群中的所有节点上配置相同的 discovery.seed_hosts,这样每个节点都能正确地发现集群中的其他节点,并作为集群的一部分启动和运行。
discovery.seed_hosts: ["xxx.xxx.x.1:9300", "xxx.xxx.x.2:9300"]
# Bootstrap the cluster using an initial set of master-eligible nodes:
#一旦集群已经初始化并且主节点选举成功完成,您应该从所有节点的配置中移除 cluster.initial_master_nodes 参数。集群状态将被保存,所以在后续的重新启动中,这个参数不再需要。
#请注意,只有在形成全新集群或添加新的主节点候选到集群时,才需要设置 cluster.initial_master_nodes 参数。在日常操作中,这个参数通常不需要在 elasticsearch.yml 文件中出现。
#最后,主节点的稳定性非常关键,因此在选择主节点候选时,应确保这些节点的硬件资源、网络连接和可靠性都是足够的。
#移除 cluster.initial_master_nodes 参数后,通常情况下不需要重启 Elasticsearch 节点。一旦集群形成并且第一次主节点选举已经成功完成,集群状态将会持久化。这个参数仅在集群的初始启动阶段需要,用于避免分裂脑症状并确保正确的主节点选举。
#这个参数,启动完注释掉,集群不用重启
cluster.initial_master_nodes: node-1
# 跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
第二个节点,配置如下,network.host改成本机ip
# 集群名称必须一致
cluster.name: TBL_YTH
# 节点名称不一样
node.name: node-2
network.host: xxx.xxx.x.2
http.port: 9200
transport.tcp.port: 9300
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#对于第一个Elasticsearch节点,您不需要显式地在配置中指定discovery.seed_hosts。因为第一个节点是集群的初始节点,它将成为种子节点,等待其他节点加入。
#当您启动第一个Elasticsearch节点时,它将自动成为集群的初始节点,并监听默认的传输端口9300和HTTP端口9200。其他节点可以通过该初始节点的IP地址和端口来发现和加入集群。
#最佳实践通常是在所有节点上配置相同的discovery.seed_hosts列表
discovery.seed_hosts: ["xxx.xxx.x.1:9300", "xxx.xxx.x.2:9300"]
# Bootstrap the cluster using an initial set of master-eligible nodes:
#一旦集群已经初始化并且主节点选举成功完成,您应该从所有节点的配置中移除 cluster.initial_master_nodes 参数。集群状态将被保存,所以在后续的重新启动中,这个参数不再需要。
#请注意,只有在形成全新集群或添加新的主节点候选到集群时,才需要设置 cluster.initial_master_nodes 参数。在日常操作中,这个参数通常不需要在 elasticsearch.yml 文件中出现。
#最后,主节点的稳定性非常关键,因此在选择主节点候选时,应确保这些节点的硬件资源、网络连接和可靠性都是足够的。
#移除 cluster.initial_master_nodes 参数后,通常情况下不需要重启 Elasticsearch 节点。一旦集群形成并且第一次主节点选举已经成功完成,集群状态将会持久化。这个参数仅在集群的初始启动阶段需要,用于避免分裂脑症状并确保正确的主节点选举。
#这个参数,启动完注释掉,集群不用重启
cluster.initial_master_nodes: node-1
# 跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
6.使用es用户启动es
# 切换es启动服务
su es
cd /home/mydata/elasticsearch-7.8.0
#后台启动
bin/elasticsearch -d
bin/elasticsearch -d -Xmx2g -Xms2g #后台启动,启动时指定内存大小(2G)
bin/elasticsearch -d -Des.logger.level=DEBUG #可以在日志中打印出更加详细的信息。
7.报错,提示版本过低,需要使用es内置的jdk
错误原因,系统为jdk8,es7需要jdk11,修改为es自身jdk

cd /home/mydata/elasticsearch-7.8.0/bin
cp elasticsearch-env elasticsearch-env-back
vim elasticsearch-env
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$ES_HOME/jdk/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# # macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi

使用命令启动
su es
cd /home/mydata/elasticsearch-7.8.0/bin
./elasticsearch -d
http:ip1:9200/_cluster/health?pretty,查看集群

8.避坑
1.es启动必须单独创建一个账号,root启动会报错,需要新建一个es账号启动
2.es启动,有时候权限没给足,也会导致启动失败,注意查看日志,给足启动账号文件夹权限命令
chown -R es:es /home/mydata/elasticsearch-7.8.0
3.es需要很大内存才能启用,否者很容易启动不成功或者启动后停止,一台机器上配置集群时,注意给够内存
4.集群启动失败时,注意发布ip需要修改为本机

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)