-
在Linux中安装ElasticSearch&Kibana&ik分词器
ElasticSearch&Kibana&ik分词器安装及安装时遇到的问题
概述:
- ElasticSearch是一个基于Lucene的搜索服务器
- 是一个分布式、高扩展、高实时的搜索与数据分析引擎
- 基于RESTful web接口
- Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎
下载地址: https://www.elastic.co/cn/downloads/elasticsearch
ElasticSearch安装
#1,上传ElasticSearch安装包 put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz
#2,解压压缩包 解压到/usr/local/elasticsearch 目录下 -C大写 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch #3,创建普通用户 ElasticSearch不允许root用户直接运行 useradd username # 新增用户 passwd password # 为用户设置密码 #4,为新用户授权 chown -R username:username /usr/local/elasticsearch/elasticsearch-7.4.0
修改内容:
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port:Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master
#5,修改 elasticsearch.yml文件 vim /usr/local/elasticsearch/elasticsearch-7.4.0/config/elasticsearch.yml #添加内容 cluster.name: my-application node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"]
修改配置文件
# 切换到root用户 su root #1. ===最大可创建文件数太小======= vim /etc/security/limits.conf # 在文件末尾中增加下面内容 username soft nofile 65536 username hard nofile 65536 # ===== vim /etc/security/limits.d/20-nproc.conf # 在文件末尾中增加下面内容 username soft nofile 65536 username hard nofile 65536 * hard nproc 4096 # 注:* 代表Linux所有用户名称 #2. ===最大虚拟内存太小======= vim /etc/sysctl.conf # 在文件中增加下面内容 vm.max_map_count=655360 # 重新加载,输入下面命令: sysctl -p
启动ElasticSearch
su username # 切换到username用户启动 cd /usr/local/elasticsearch/elasticsearch-7.4.0/bin ./elasticsearch #启动
此时运行会出现问题:
因为ElasticSearch内置了对应版本的jdk,而我们使用的Linux是已经配置了jdk(我的是jdk8),此时会因为版本不一致而出现问题,我们只需要修改ElasticSearch不使用Linux配置的jdk而使用内置的jdk即可
#修改ElasticSearch的运行文件内容 vim /usr/local/elasticsearch/elasticsearch-7.4.0/bin/elasticsearch #在文件中添加以下内容 #(此处配置为elastic解压后jdk的路径) export JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.4.0/jdk export PATH=$JAVA_HOME/bin:$PATH #添加的jdk判断 if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="/usr/local/elasticsearch/elasticsearch-7.4.0/jdk/bin/java" else JAVA=`which java` fi
完整的文件内容
#!/bin/bash # CONTROLLING STARTUP: # # This script relies on a few environment variables to determine startup # behavior, those variables are: # # ES_PATH_CONF -- Path to config directory # ES_JAVA_OPTS -- External Java Opts on top of the defaults set # # Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that # the Xms and Xmx lines in the JVM options file must be commented out. Example # values are "512m", and "10g". # # ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch #(此处配置为elastic解压后jdk的路径) export JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.4.0/jdk export PATH=$JAVA_HOME/bin:$PATH source "`dirname "$0"`"/elasticsearch-env if [ -z "$ES_TMPDIR" ]; then ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory` fi ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options JVM_OPTIONS=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"` ES_JAVA_OPTS="${JVM_OPTIONS//\$\{ES_TMPDIR\}/$ES_TMPDIR}" #添加的jdk判断 if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="/usr/local/elasticsearch/elasticsearch-7.4.0/jdk/bin/java" else JAVA=`which java` fi # manual parsing to find out, if process should be detached if ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then exec \ "$JAVA" \ $ES_JAVA_OPTS \ -Des.path.home="$ES_HOME" \ -Des.path.conf="$ES_PATH_CONF" \ -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \ -Des.distribution.type="$ES_DISTRIBUTION_TYPE" \ -Des.bundled_jdk="$ES_BUNDLED_JDK" \ -cp "$ES_CLASSPATH" \ org.elasticsearch.bootstrap.Elasticsearch \ "$@" else exec \ "$JAVA" \ $ES_JAVA_OPTS \ -Des.path.home="$ES_HOME" \ -Des.path.conf="$ES_PATH_CONF" \ -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \ -Des.distribution.type="$ES_DISTRIBUTION_TYPE" \ -Des.bundled_jdk="$ES_BUNDLED_JDK" \ -cp "$ES_CLASSPATH" \ org.elasticsearch.bootstrap.Elasticsearch \ "$@" \ <&- & retval=$? pid=$! [ $retval -eq 0 ] || exit $retval if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then sleep $ES_STARTUP_SLEEP_TIME fi if ! ps -p $pid > /dev/null ; then exit 1 fi exit 0 fi exit $?
启动ES后有个警告信息:OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. 这是提醒你 cms 垃圾收集器在 jdk9 就开始被标注为 @deprecated
此时修改 config目录下的jvm.options文件内容即可
将 : -XX:+UseConcMarkSweepGC
改为:-XX:+UseG1GC
完成以上操作后,启动ElasticSearch就没问题了,可以访问ElasticSearch
访问ElasticSearch之前,确保防火墙是关闭的
#暂时关闭防火墙 systemctl stop firewalld # 或者 #永久设置防火墙状态 systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原 systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原
浏览器输入
此时已经启动成功
重点几个关注下即可:
number" : "7.4.0" 表示elasticsearch版本
lucene_version" : "8.2.0" 表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch
Kibana安装
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。
安装:
#1,下载对应的安装包并上传到Linux https://www.elastic.co/cn/downloads/kibana #2,解压 tar -xzf kibana-7.4.0-linux-x86_64.tar.gz -C /usr/local/kibana
修改配置 :
server.port:http访问端口
server.host:ip地址,0.0.0.0表示可远程访问
server.name:kibana服务名
elasticsearch.hosts:elasticsearch地址
elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置
#3,修改配置 vim /usr/local/kibana/kibana-7.4.0-linux-x86_64/config/kibana.yml #添加内容 server.port: 5601 server.host: "0.0.0.0" server.name: "kibana-itcast" elasticsearch.hosts: ["http://127.0.0.1:9200"] elasticsearch.requestTimeout: 99999
启动Kibana:
由于kibana不建议使用root用户启动,如果用root启动,需要加--allow-root参数
# 切换到kibana的bin目录 cd /usr/local/kibana/kibana-7.4.0-linux-x86_64/bin # 启动 ./kibana --allow-root
访问Kibana
看到这个界面,说明Kibanan已成功安装。
Discover
:可视化查询分析器 Visualize
:统计分析图表 Dashboard
:自定义主面板(添加图表) Timelion
:Timelion是一个kibana时间序列展示组件(暂时不用) Dev Tools
:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便) Management
:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。
安装IK分词器:
环境准备:
下载maven安装包
wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
解压maven安装包
tar xzf apache-maven-3.1.1-bin.tar.gz
配置path
vim /etc/profile.d/maven.sh #将下面的内容复制到文件,保存 export MAVEN_HOME=/opt/maven #maven安装路径 export PATH=${MAVEN_HOME}/bin:${PATH}
设置好Maven的路径之后,需要运行下面的命令使其生效
source /etc/profile.d/maven.sh
验证是否安装成功
mvn -v
安装IK分词器
下载IK:
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip
解压IK 由于这里是zip包不是gz包,所以我们需要使用unzip命令进行解压,如果本机环境没有安装unzip,请执行:
#安装unzip yum install zip yum install unzip #解压IK unzip v7.4.0.zip
编译jar包
# 切换到 elasticsearch-analysis-ik-7.4.0目录 cd elasticsearch-analysis-ik-7.4.0/ #打包 mvn package
jar包移动
package执行完毕后会在当前目录下生成target/releases目录,将其中的elasticsearch-analysis-ik-7.4.0.zip。拷贝到elasticsearch目录下的新建的目录plugins/analysis-ik,并解压
#切换目录 cd /usr/local/elasticsearch/elasticsearch-7.4.0/plugins #新建目录 mkdir analysis-ik cd analysis-ik #执行拷贝 cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /usr/local/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik #执行解压 unzip /usr/local/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip
拷贝辞典
将elasticsearch-analysis-ik-7.4.0目录下的config目录中的所有文件 拷贝到elasticsearch的config目录
cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/config/* /opt/elasticsearch-7.4.0/config
完成以上配置后IK分词器安装并配置完成,配置完成后需要重启ElasticSearch
文中涉及的路径按自己的情况而定!
原文:https://www.cnblogs.com/xl99/p/14297417.html