目录
5.更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
1.下载elasticsearch
如下:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2.tar.gz
2.解压安装包
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz
3.直接使用es自带的jdk:
cd elasticsearch-7.13.2/bin/elasticsearch-env
修改:
old:
# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; then
JAVA="$ES_JAVA_HOME/bin/java"
JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then
# fallback to JAVA_HOME
echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
new:
# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; then
JAVA="$ES_JAVA_HOME/bin/java"
JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then
# fallback to JAVA_HOME
echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
# JAVA="$JAVA_HOME/bin/java"
# JAVA_TYPE="JAVA_HOME"
JAVA="$ES_JAVA_HOME/bin/java"
JAVA_TYPE="ES_JAVA_HOME"
echo "hello world"
修改部分主要是:
# JAVA="$JAVA_HOME/bin/java"
# JAVA_TYPE="JAVA_HOME"
JAVA="$ES_JAVA_HOME/bin/java"
JAVA_TYPE="ES_JAVA_HOME"
这里修改的目的是如果在服务器上面找不到java环境,就使用ES自带的java环境,老版本的es是不自带jdk的,新版是有的,为了防止部署的时候没有提前安装jdk这里直接一劳永逸解决。
4. 创建elasticsearch用户
说明
如果我们当前登录的用户是root用户,然后进入elasticsearch 的 bin目录中执行启命令:./elasticsearch 时会出现错误,
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch
创建elasticsearch 用户组及elasticsearch 用户:
groupadd elasticsearch
useradd elasticsearch -g elasticsearch -p elasticsearch-7.13.2
5.更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
chown -R elasticsearch:elasticsearch elasticsearch-7.13.2
elasticsearch-7.13.2是解压后的elasticsearch的文件夹的名称
6.修改服务器参数
编辑 vim /etc/security/limits.conf
,追加以下内容;
*soft nofile 65536
*hard nofile 131072
*soft nproc 2048
*hard nproc 4096
此文件修改后需要重新登录用户,才会生效
7.修改参数2
编辑 vim /etc/sysctl.conf
,追加以下内容:
vm.max_map_count=262144
保存后,执行:
sysctl -p
8.集群配置:
修改 elasticsearch-7.13.2/config/elasticsearch.yml 文件:
主节点所在服务器:74.1.58.216,两个子节点所在服务器分别是:74.1.58.217,74.1.58.218
#主节点:
cluster.name: test-application
node.name: node-1
node.master: true
network.host: 74.1.58.216
http.port: 9200
transport.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["74.1.58.217","74.1.58.218"]
cluster.initial_master_nodes: ["node-1"]
#子节点1:
cluster.name: test-application
node.name: node-2
network.host: 74.1.58.217
http.port: 9200
transport.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["74.1.58.216","74.1.58.218"]
cluster.initial_master_nodes: ["node-1"]
#子节点2:
cluster.name: test-application
node.name: node-3
network.host: 74.1.58.218
http.port: 9200
transport.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["74.1.58.216","74.1.58.217"]
cluster.initial_master_nodes: ["node-1"]
9.安装分词器:
elasticsearch-7.13.2/bin目录下
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.13.2/elasticsearch-analysis-ik-7.13.2.zip
如果服务器报错,显示下载不了那么,就本地安装:
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 根据es版本下载对应的分词器版本
,
然后解压到 elasticsearch-7.13.2/plugins目录下的 analysis-ik文件夹里面,即可,如果es已经启动,记得重启。
10.切换用户 elasticsearch
su elasticsearch
进入elasticsearch-7.13.2/bin 执行
./elasticsearch
(这个是前台启动, crtl+C 结束运行)
后台启动命令为:
./elasticsearch -d
注意: 三个节点需要分别指定第十步!
11.单个节点验证:
在浏览器中输入 ip:端口 74.1.58.216:9200
应该会有显示:
{
"name" : "node-1",
"cluster_name" : "test-application",
"cluster_uuid" : "x1PxZAzWSHmyeY6WqPRzzQ",
"version" : {
"number" : "7.13.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "4d960a0733be83dd2543ca018aa4ddc42e956800",
"build_date" : "2021-06-10T21:01:55.251515791Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
否则说明节点启动有问题
12.集群验证
查看集群节点连接状态,在任意集群的服务器上面输入:
curl -XGET 'http://74.1.58.216:9200/_cluster/health?pretty'
正常情况下回显示:
[root@216 ~]# curl -XGET 'http://74.1.58.216:9200/_cluster/health?pretty'
{
"cluster_name" : "test-application",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"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
}
[root@216 ~]#
遇到的问题:集群节点没有连接
集群节点之前没有连接起来,经排查是服务器防火墙没关闭
查看防火墙:
systemctl status firewalld
关闭防火墙:
systemctl stop firewalld
节点重启
然后重启es各个节点,
重启方式:先杀死进程,然后后台启动
查找进程:
ps -ef | grep elsatic
找个按个进程id
kill -9 进程id
然后后台启动:
./elasticsearch -d
es客户端推荐
这里推荐一个es集群查看工具 elasticHD ,感觉搜索不是很对,不过可以凑合用,ElasticHD: ElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作Es了。,无脑安装即可。
本博客仅做学习只用,如有侵权,联系速删!
参考博客:
elasticsearch7已配置JAVA_HOME的情况下使用自带jdk__荣耀之路_的博客-CSDN博客_elasticsearch7使用自带jdk
elasticsearch7已配置JAVA_HOME的情况下使用自带jdk__荣耀之路_的博客-CSDN博客_elasticsearch7使用自带jdk