es _ elasticsearch集群安装

目录

A.索引

正排索引:

倒排索引:

B.准备工作

1. 安装jdk11(集群中每个节点都要进行安装)

a.安装 jdk

b.修改 /etc/profile 文件,并重新加载

2.安装 elasticsearch-head 插件

3.安装 git

4.使用 git 拉取安装包

5.下载 node.js  https://nodejs.org/en/download/

6.上传到服务器,解压缩

7.修改 profile 配置文件

9.查看 node 的版本

10.下载 head 

11.安装head

12.开启 head 服务 (在后台工作)

C.安装elasticsearch集群

1.创建用户

2.修改密码

3.根目录创建文件夹

 4.修改 文件夹的属组

5.修改文件夹的权限

6.移动压缩文件到新建的文件夹

7.修改 elasticsearch 文件夹中,压缩文件的属主,属组

 8.切换用户,使用新建的用户解压缩

9.修改配置文件 elasticsearch.yml(每个节点都要修改)

 10.启动 elastic 服务

11.通过浏览器访问

问题 

问题1:Fatal error: Port 9100 is already in use by another process

npm ERR! Failed at the elasticsearch-head@0.0.0 start script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

问题2:ERROR: [2] bootstrap checks failed[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535][2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

【1】max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

【2】max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 问题3:显示 http://192.168.232.30:9200/  集群健康值: 未连接


A.索引

正排索引:

正排索引是指文档ID为key,表中记录每个关键词出现的次数,查找时扫描表中的每个文档中字的信息,直到找到所有包含查询关键字的文档。

易维护;缺点是搜索的耗时太长;

倒排索引:

由于正排的耗时太长缺点,倒排就正好相反,是以word作为关键索引。表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。

倒排在构建索引的时候较为耗时且维护成本较高,但是搜索耗时短。

a.html小明是一个三好学生
b.html小明是一个爱国人士
c.html小明是一个三好学生而且是一个爱国人士
拆词a.html小明一个三好学生    
拆词b.html小明一个爱国人士    
拆词c.html小明一个三好学生而且一个爱国人士
位置 12345678
正排索引索引内容出现次数位置 
 a.html小明11 
  12 
  一个13 
  三好学生14 
 b.html小明11 
  12 
  一个13 
  爱国人士14 
 c.html小明11 
  22,42,表示第一次出现的位置是,
4,表示第二次出现的位置是相对第一次出现的位置
  一个23,4 
  三好学生14 
  而且15 
  爱国人士18 
倒排索引索引位置  
 小明(a.html,1){1}(b.html,1){1}(c.html,1){1}
 (a.html,1){2}(b.html,1){1}(c.html,2){2,6}
 一个(a.html,1){3}(b.html,1){3}(c.html,2){3,7}
 三好学生(a.html,1){4}(c.html,1){4} 
 爱国人士(b.html,1){4}(c.html,1){8} 
 而且(c.html,1){5}  
  (a,b){c,d}a:表示出现的文章 
   b:表示该文章出现的次数 
   c:表示该文章第一次出现的位置 
   d:表示改文章第二次出现的位置 

查询的数据在多个节点都存在

elsearch 会找到一个空闲的节点,作为临时的主节点,将其他节点的数据汇聚到该主节点

客户端发出请求后,临时的主节点,会向其他节点派发请求,获得所有包含数据的 document,将内容汇聚到主节点

主节点负责计算,做倒排索引
备节点数据备份,分担主的搜索压力

在一个 lucene 节点,多开启几个 Lucene 进程,这样在后面进行扩展的时候,可以不用对集群重新搭建,
只要将每个节点 Lucene 进程分配到新的节点即可

B.准备工作

1. 安装jdk11(集群中每个节点都要进行安装)

安装jdk https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

a.安装 jdk

 rpm -ivh jdk-11.0.9_linux-x64_bin.rpm

b.修改 /etc/profile 文件,并重新加载

2.安装 elasticsearch-head 插件

缺少 head 插件 property [elasticsearch.version] is missing for plugin [head]

3.安装 git

4.使用 git 拉取安装包

git clone git://github.com/mobz/elasticsearch-head.git

5.下载 node.js  https://nodejs.org/en/download/

6.上传到服务器,解压缩

tar -xvJf node-v14.15.0-linux-x64.tar.xz

7.修改 profile 配置文件

# set java environment
JAVA_HOME=/usr/java/jdk-11.0.9
JRE_HOME=/usr/java/jdk-11.0.9/jre
NODE_HOME=/app/node-v14.15.0-linux-x64
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH NODE_HOME PATH

9.查看 node 的版本

10.下载 head 

方法1:

git clone git://github.com/mobz/elasticsearch-head.git

或者

方法2:

直接在 https://github.com/mobz/elasticsearch-head 进行下载,然后进行解压

安装 unzip

yum -y install unzip

解压缩,

unzip elasticsearch-head-master.zip

11.安装head

 npm install

使用原有的 npm 源,下载的速度非常的慢 

 修改 npm 源

npm config set registry https://registry.npm.taobao.org

清空缓存 

npm cache clean --force

再次安装安装,下载的速度非常快

npm install

12.开启 head 服务 (在后台工作)

npm run start &

 

C.安装elasticsearch集群

只允许普通用户操作,不允许root用户
注意:因为elasticsearch有远程执行脚本的功能所以容易中木马病毒,所以不允许用root用户启动,root用户是起不来的,赋权限,用一般的用户启动
要配置network.host才能别的机器或者网卡访问,否则只能是127.0.0.1或者localhost访问,这里配置成自己的局域网ip
注意配置yml结尾的配置文件都需要冒号后面加空格才行

下载安装包   https://www.elastic.co/cn/downloads/elasticsearch

1.创建用户

后面对 elasticsearch 的所有操作,都必须使用该用进行(安装,启动),head 插件可以使用 root 用户进行安装

useradd elastic

2.修改密码

passwd elastic

 

3.根目录创建文件夹

mkdir elasticsearch

 4.修改 文件夹的属组

chgrp elastic elasticsearch/

5.修改文件夹的权限

chmod 775 elasticsearch/

6.移动压缩文件到新建的文件夹

mv elasticsearch-7.10.0-linux-x86_64.tar.gz /elasticsearch/

7.修改 elasticsearch 文件夹中,压缩文件的属主,属组

chown elastic:elastic elasticsearch-7.10.0-linux-x86_64.tar.gz

 8.切换用户,使用新建的用户解压缩

 tar -xvzf elasticsearch-7.10.0-linux-x86_64.tar.gz 

9.修改配置文件 elasticsearch.yml(每个节点都要修改)

cluster.name: yang_es

node.name: yang100

network.host: 0.0.0.0

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

http.port: 9200

discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["192.168.232.100","192.168.232.101", "192.168.232.102"]
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s

 10.启动 elastic 服务

./elasticsearch 

11.通过浏览器访问


 

问题 

问题1:Fatal error: Port 9100 is already in use by another process

npm ERR! Failed at the elasticsearch-head@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

显示的是,Fatal error: Port 9100 is already in use by another process.  应该是之前已经开启过服务了

查询端口,发现 elasticsearch-head 已经开启

 netstat -ntlp | grep 9100

 

npm install -g grunt-cli

问题2:ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

【1】max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

vim /etc/security/limits.conf 

elastic 代表的是 启动 elasticsearch 的用户 

elastic hard nofile 65536
elastic soft nofile 65536

 

【2】max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

sysctl -w vm.max_map_count=262144
 vim /etc/sysctl.conf
vm.max_map_count=262144

 问题3:显示 http://192.168.232.30:9200/  集群健康值: 未连接

通过浏览器访问 http://192.168.232.30:9100/ 

这个时候,将地址修改为正确的地址,显示集群健康值: 未连接,查看请求,发现请求被拦截

 修改 elasticsearch.yml  文件,注意使用 elastic 用户进行

network.host: 0.0.0.0
#xpack.security.transport.ssl.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

再次启动集群,进行访问正常

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值