文章插图
图片
安装成功,然后看一下 ES 的主目录,是不是很熟悉呢 。所有 Java 编写的大数据组件都是类似的,每个目录作用如下:
- bin 目录放一些启动脚本、以及用于命令行操作的脚本;
- config 目录放一些配置文件;
- lib 目录存放程序依赖的 jar 包;
- logs 目录负责存放日志文件;
- modules 目录存放功能模块;
- plugins 目录存放一些插件 。
下面我们启动 ES , 不过启动之前需要修改一下配置文件 config/elasticsearch.yml 。
# ES 默认只允许本机访问,将其修改为 0.0.0.0network.host: 0.0.0.0# 端口默认为 9200http.port: 9200
然后再创建用户,因为 ES 要求不能以 root 用户启动 , 因此我们要创建一个用户,并赋予它相关权限 。# 创建一个组 esgroupadd es# 创建一个用户 es,并关联到组 es 中useradd es -g es# 赋予它 ES 目录的操作权限chown es:es /opt/elasticsearch-8.11.3/ -R
下面切换用户,进入 ES 目录中 , 输入 bin/elasticsearch 启动 ES 。如果你配置了环境变量,那么直接输入 elasticsearch 就行 。但如果你启动时发现报了下面这个错,那么说明空间不足 。
文章插图
图片
此时应该修改 config/jvm.options 配置文件 。
# 设置 JVM 的初始内存为 1G,此值可以与 -Xmx 相同# 避免每次垃圾回收完成后 JVM 重新分配内存-Xms1g# 设置 JVM 最大可用内存为 1G-Xmx1g
然后再来启动 ES , 默认是以前台启动的 。但如果你发现输出一堆日志信息后,进程又退出了,并且最后输出了 ERROR: Elasticsearch exited unexpectedly, with exit code 78 。那么你需要切换回 root 用户 , 然后执行如下命令:sysctl -w vm.max_map_count=262144
然后再打开 /etc/security/limits.conf,并在里面追加如下内容 。es hard nofile 65536es soft nofile 65536
这里的 es 就是刚才创建的用户,如果你创建的用户不叫 es , 那么记得修改 。完事之后,再切换回 es 用户,再次启动 , 会发现启动成功 。然后我们测试一下,浏览器中输入 http://ip:9200 , 看看能否返回内容 。
然而很不幸,会发现无法访问,并且 ES 会输出如下内容:
文章插图
图片
这是因为 ES 默认只允许通过 HTTPS 访问 , 如果想支持 HTTP,那么需要再次修改配置文件 。
打开 config/elasticsearch.yml,在里面配置如下内容:
# 是否需要用户名密码,这里改成 falsexpack.security.enabled: false# 是否开启 SSL 认证 , 这里将 enabled 给改成 false# 否则只允许 https 请求,而 http 请求会被拒绝xpack.security.http.ssl:enabled: truekeystore.path: certs/http.p12
然后重新启动 ES,此时再访问 ip:9200 就没有问题了 , 会返回如下内容 。文章插图
图片
返回了一条 JSON,我们说 ES 的 Document(文档)就类似于一条 JSON,其字段就是 Field 。然后里面的 name 字段表示节点名称 , cluster_name 表示集群名称 , 这些都可以通过配置文件 elasticsearch.yml 进行修改 , 至于其它字段就见名知意了 。
到目前为止,整个 ES 算是启动成功了,但目前是前台启动 , 我们需要改成后台启动 。
bin/elasticsearch -d
只需要在结尾加一个 -d 即可 。小结到目前为止,我们就介绍了什么是 ES,以及它解决了什么问题 。然后了解了它的核心概念,以及安装方式 。
推荐阅读
- 简易版的SpringBoot是如何实现的!!!
- 掌握Java并发编程,避免无处不在的竞态条件
- 什么是Python中的LEGB规则?
- 说一下MySQL主从复制的原理?
- 浅谈ArkUI之Web组件的基础用法
- 50 条实用的编写Python 程序建议
- 有什么好用的C/C++源代码混淆工具?
- 如何将加密的pdf解密?
- pdf怎么解密你知道吗?
- 今年的年休假没休完怎么办?