elasticsearch
1.环境
- centos 7.7
- jdk 1.8
2.安装
安装
坑,我默认安装在了root路径下,后面会提到这个问题
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz.sha512
$ shasum -a 512 -c elasticsearch-7.3.0-linux-x86_64.tar.gz.sha512
$ tar -xzf elasticsearch-7.3.0-linux-x86_64.tar.gz
$ cd elasticsearch-7.3.0/
在 Linux 上,你可以通过以 root 用户身份运行以下命令来增加限制:
sysctl -w vm.max_map_count=262144
要永久设置此值,请更新 /etc/sysctl.conf 中的 vm.max_map_count 设置。配置完毕后,我们可以使用如下的命令来使之起作用:
sysctl -p
要在重新引导后进行验证,请运行
sysctl vm.max_map_count
可以从命令行启动 Elasticsearch,如下所示:
./bin/elasticsearch
报错:can not run elasticsearch as root
原因:说是不能使用root权限启动,要创建一个新的普通用户es
groupadd es
useradd es -g es -p password # -g 指定组 -p 密码 我的:123456
chown es:es -R /root/es/elasticsearch-7.3.0/ # -R 处理指定目录以及其子目录下的所有文件
.切换到es用户,启动
su es
./bin/elasticsearch
报错:Error: Could not find or load main class org.elasticsearch.tools.JavaVersionChecker
原因:说是es不能安装在root路径下
#移动
mv /root/es . #转移到 opt目录下 .->代表我当前所在路径
.切换到es用户,启动
su es
./bin/elasticsearch
报错:could not find java in JAVA_HOME or bundled at /root/es/elasticsearch-7.3.0/
原因:就是java配置不对,原本是用root用户配置的,现在是普通用户
解决:
1、查看jdk路径
which java
输出:/usr/bin/java
ls -lr /usr/bin/java
输出:/usr/bin/java -> /etc/alternatives/java
ls -lrt /etc/alternatives/java
输出:/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/bin/java
java的安装目录为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
2、配置java_home
#1、打开配置环境变量的文件
vi /etc/profile
#2、添加以下配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#3. 让配置生效
source /etc/profile
#4、测试
echo $JAVA_HOME
报错:future versions of Elasticsearch will require Java 11; your Java version from [/usr/java/jdk1.8.0_121/jre] does not meet this requirement
原因:说是es7.3需要jdk11
有的帖子说不是问题,我访问下es界面 ,看是否成功
启动失败:贴子说不是问题,3个解决方法,分别是 1、安装jdk11 ;2、修改es配置文件 ;3、使用es自带的jdk。我选了2
#打开es下的config
#找到vi.options 加一条配置文件
-XX:MaxDirectMemorySize=64m
.切换到es用户,启动
成功
publish_address {127.0.0.1:9200}, bound_addresses {127.0.0.1:9200}
[2022-05-11T13:13:33,485][INFO ][o.e.n.Node ] [iZbp18gmxmxwd5c8z9zywiZ] started
访问
curl 127.0.0.1:9200
报错:curl: (7) Failed connect to 127.0.0.1:9200; Connection refused
原因:说是es的配置文件的network端口没开
打开
#进入es下的config文件夹,有一个 elasticsearch.yml
#修改其中的 network.host:192.168.0.1 为 0.0.0.0
问题:我好像是即时启动,意思是我离开就会断开,还是要找一下后台启动命令。
访问:
curl 127.0.0.1:9200
成功示例:
{
"name" : "iZbp18gmxmxwd5c8z9zywiZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6xMU5YCOQlWTZsZc4IIbww",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}