Centos7基于源码包搭建Elasticsearch以及head插件

目录

1、jdk安装

2、创建centos用户启动es(高版本的es不能使用root进行启动)

 3、下载安装es

4、ik分词器安装

5、Head插件安装

5.1、node.js安装

5.2、grunt-cli安装

5.3、cnpm安装

5.4、Head插件的下载安装


info:elasticsearch7版本需要对应jdk 11, 所以建议使用 elasticsearch6,对应jdk8

1、jdk安装

如果服务器没有安装jdk,可以参考CentOS7安装jdk1.8-源码安装、openjdk安装、docker安装

2、创建centos用户启动es(高版本的es不能使用root进行启动)

创建 linux用户:adduser mostyEs

修改mostyEs用户的密码:passwd mostyEs (输入两次密码,比如当前为:Kevin123)

 3、下载安装es

在 /home/mosty 目录下创建es文件夹 mkdir -p /home/mosty/es

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz

如果内网不能执行wget可使用已下载的安装包自行上传,链接: https://pan.baidu.com/s/1Rs2fXrgPAge_5t9KduNFDQ?pwd=a9tbhttps://pan.baidu.com/s/1Rs2fXrgPAge_5t9KduNFDQ?pwd=a9tb解压:tar -zxvf elasticsearch-6.6.0.tar.gz

为上面创建的 mostyEs用户,设置es目录的权限:

chown -R mostyEs:mostyEs /home/mosty/es/elasticsearch-6.6.0

切换为 mostyEs用户: su mostyEs 输入密码

进入es安装目录的bin文件夹: cd /home/mosty/es/elasticsearch-6.6.0/bin

后台启动es:./elasticsearch -d

可以查看es进程是否启动: ps -ef| grep elasticsearch

 或者可以使用curl命令:curl 127.0.0.1:9200

4、ik分词器安装

此时,如果用户还是为mostyEs,需要先切回root用户:su root 输入密码

ik分词器的地址为:https://github.com/medcl/elasticsearch-analysis-ik

【不建议,会有很多问题】可以在bin目录下执行 ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.0.0/elasticsearch-analysis-ik-x.x.x.zip

下载ik分词器包(可以在es的安装目录的plugins文件下执行,或者解压后放到该目录下):wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip

解压:unzip elasticsearch-analysis-ik-6.6.0.zip

如果没有unzip命令,可以使用yum安装: yum install -y unzip

重命名:mv elasticsearch-analysis-ik-6.6.0 analysis-ik

 ik提供了两种分词策略:ik_max_word【往处理度拆分】或ik_smart【往细粒度拆分】,如果不满足,还可以自定义,设置一个列表:

在目录的 plugins/analysis-ik/config/IKAnalyzer.cfg.xml 文件中修改:ext_dict属性为:mosty.dic

此时可以在同级目录下创建文件,并写入想要分词的指定值:touch mosty.dic

 至此,ik分词器插件安装完成,可以重启es

查看es进程号: ps -ef| grep elasticsearch

kill -9 进程号

当然如果用户是root,则切换为mostyEs: su mostyEs

后台启动es(进入es bin目录): ./elasticsearch -d

5、Head插件安装

ElasticSearch-head插件要用到grunt,而grunt需要用到npm包管理器,所以node.js是必须安装的;

5.1、node.js安装

node可选包地址为:https://nodejs.org/en/download/https://nodejs.org/en/download/current/

下载安装包(比如当前的安装路径为/home/mosty/nodejs/):

wget https://nodejs.org/dist/v17.6.0/node-v17.6.0-linux-x64.tar.xz

如果执行wget不能链接外网镜像,也可以下载镜像后上传,链接:https://pan.baidu.com/s/1hBTuCYXVNGm8bbMMz8n1Rw?pwd=3wm7

解压安装包:tar -xvf node-v17.6.0-linux-x64.tar

建立软连接方便启动:

ln -s /home/mosty/nodejs/node-v17.6.0-linux-x64/bin/node /usr/local/bin/node

ln -s /home/mosty/nodejs/node-v17.6.0-linux-x64/bin/npm /usr/local/bin/npm

查看版本:node -v;         npm -v;

5.2、grunt-cli安装

执行命令安装:npm install -g grunt-cli

 查看grunt版本:npm list grunt

5.3、cnpm安装

npm install -g cnpm --registry=https://registry.npm.taobao.org

并创建cnpm的软链接:

ln -s /home/mosty/nodejs/node-v17.6.0-linux-x64/bin/cnpm /usr/local/bin/cnpm

5.4、Head插件的下载安装

下载文件:wget https://github.com/mobz/elasticsearch-head/archive/master.zip

解压:unzip master.zip

修改名称:mv elasticsearch-head-master elasticsearch-head

cd 到 elasticsearch-head目录下执行:cnpm install

修改head的配置文件 Gruntfile.js connect->server->options 增加host为 *(或者修改为 '0.0.0.0'),都可以访问: 

 在 _site/app.js文件修改head对应的 es地址,如果两个在一台服务器就不用改了(文件太大可以直接搜 /9200 ),【当前地址为 http://localhost:9200,需要修改为对应的内网或者外网ip 否则head上再发起请求时,发起的就是 该地址的url】如下:

不修改为本机的ip,head访问就会如下:

【最后还需要修改es配置】

es安装目录config下的 elasticsearch.yml 增加配置(es默认只能本机访问9200端口,此时需要允许cors方式的跨越访问),然后重启 es:

http.cors.enabled: true

http.cors.allow-origin: '*'

es默认只能本机访问9200,如果其他ip需要访问,则需要修改 config目录下的 elasticsearch.yml, 开放bind配置: network.host: 0.0.0.0

当配置network.host打开后,需要调整几个地方,否则启动会异常,

1)、修改系统map

修改 /etc/sysctl.conf 添加 vm.max_map_count = 262144

最后执行:sysctl -p

2)、查看当前的最大句柄数: ulimit -n

修改 /etc/security/limits.conf 可以将* 即所有用户的打开句柄数

也可以像下面一样,专门为用户设置句柄数

 需要重启centos服务 reboot

再切换用户为 mostyEs, 查看当前用户的句柄数:ulimit -Hn

es6.0的版本不支持,浏览器请求头信息带Content-Type header [application/x-www-form-urlencoded], 如果使用老版本的elasticsearch-head服务端的es会返回下面的错误信息,{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}

需要修改 _site/vendor.js 。找到对应的行 if ( !s.crossDomain && !headers["X-Requested-With"] ) 的前面增加一行 headers["Content-Type" ] = "application/json" ,如下图:

 启动head插件的 node_modules/grunt/bin 目录:

cd /home/mosty/head/elasticsearch-head/node_modules/grunt/bin/

启动 ./grunt server

后台启动:nohup grunt server &            exit;

关闭服务进程:netstat -anp| grep 9100 杀进程: kiill [-9] 进程号

 

 此时,如果防火墙没有开启,获取防火墙已经开启了9100端口,就可以使用浏览器查看head页面:http://ip:9100

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值