赞
踩
记录下Linux下Elasticsearch的安装过程。
在这里推荐使用第一个下载地址,下载速度很快。第二个由于是外网,下载速度较慢。
这里我使用7.9.3的elasticsearch版本, 因为项目使用的springboot2.4.3,避免低版本客户端,高版本索引库·,这里我先退回使用低版本索引库
下载以上三个软件,插件下载完成之后,将【elasticsearch-analysis-ik-7.9.3】压缩包解压到 elasticsearch的plugins目录。
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行。由于我在linux主机安装的java1.8版本,导致运行出错。
注:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错
解决办法:
进入bin目录cd /usr/local/elasticsearch-7.9.3/bin
修改elasticsearch配置vim ./elasticsearch
- ############## 添加配置解决jdk版本问题 ##############
- # 将jdk修改为es中自带jdk的配置目录
- export JAVA_HOME=/usr/local/elasticsearch-7.9.3/jdk
- export PATH=$JAVA_HOME/bin:$PATH
-
- if [ -x "$JAVA_HOME/bin/java" ]; then
- JAVA="/usr/local/elasticsearch-7.9.3/jdk/bin/java"
- else
- JAVA=`which java`
- fi
- #root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES
-
- #创建用户
- useradd elastic
-
- #创建所属组:
- chown elastic:elastic -R /usr/local/elasticsearch-7.9.3
-
- #切换到elastic用户
- su elastic
-
- #进入bin目录
- cd /usr/local/elasticsearch-7.9.3/bin
-
- #启动elasticsearch -d 是指在后台运行
- ./elasticsearch -d
-
- # 数据目录位置(非必须)
- path.data: /home/新用户名称/elasticsearch/data
- # 日志目录位置(非必须)
- path.logs: /home/新用户名称/elasticsearch/logs
- #初始化节点名称(非必须)
- cluster.name: my-application
- node.name: node-1
- cluster.initial_master_nodes: ["node-1"]
- #修改端口号(非必须)
- http.port: 9200
-
- #默认只允许本机访问,修改为0.0.0.0后则可以远程访问(必须改)
- # 绑定到0.0.0.0,允许任何ip来访问
- network.host: 0.0.0.0
- “Failure running machine learning native code. This could be due to running on an
- unsupported OS or distribution, missing OS libraries, or a problem with the temp
- directory. To bypass this problem by running Elasticsearch without machine learning
- functionality set [xpack.ml.enabled: false].]”
解决处理:**这个错误是因为版本不兼容或者Mac系统没有给Elasticsearch太多的权限导致报错,这个时侯根据报错提示:到config文件夹下的elasticsearch.yml把自学习关闭掉,添加一个配置信息:xpack.ml.enabled: false;
- ERROR: [3] bootstrap checks failed
- [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at
- least [65536]
解决办法:编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效
- [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
- [262144]
解决办法:编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=655360
保存后,执行:
sysctl -p
- [3]: max number of threads [2048] for user [tongtech] is too low, increase to at least
- [4096]
elasticsearch用户的最大线程数太低
解决办法:
vim /etc/security/limits.d/90-nproc.conf
将2048改为4096或更大
- [4]: the default discovery settings are unsuitable for production use; at least one of
- [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be
- configured
修改elasticsearch.yml
取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
这个的话,这里的node-1是上面一个默认的记得打开就可以了
- [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at
- least [65535]
切换到root用户,执行命令:
vi /etc/security/limits.conf
添加如下内容:
- * soft nofile 65536
- * hard nofile 131072
- * soft nproc 2048
- * hard nproc 4096
可以通过http://127.0.0.1:19200/访问,如果出现以下内容,说明ES安装成功:
- {
- "name": "es-node0",
- "cluster_name": "elasticsearch",
- "cluster_uuid": "SRwJX4sYQ8el4N5wj4tOmA",
- "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"
- }
编辑配置文件vim /usr/local/elasticsearch-7.9.3/config/elasticsearch.yml
在 elasticsearch.yml 末尾,加入以下内容:
- xpack.security.enabled: true
- xpack.security.transport.ssl.enabled: true
编辑内容后重启Elasticsearch服务(必须操作)
设置用户名和密码
/usr/local/elasticsearch-7.9.3/bin/elasticsearch-setup-passwords interactive
这里依次设置elastic、kibana、logstash等的访问密码,test123
设置了访问密码,再次访问ES时,需要输入密码
4、最后聊下如何在谷歌安装 elasticsearch-head 插件,具体如下链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。