linux elasticsearch以及ik分词器的安装
说明
使用版本为7.9.0版本的elasticsearch以及ik分词器插件,非集群模式。
准备工作
下载elasticsearch安装包以及ik分词器编译好的zip包,将相关包上传至服务器
安装es
新建安装目录elasticsearch目录,解压elasticsearch-7.9.0-linux-x86_64.tar.gz包,进入解压后文件夹。
tar xvf elasticsearch-7.9.0-linux-x86_64.tar.gz
文件夹中如图目录结构,在该目录下创建data以及logs(如果没有的话)文件夹。
进入config文件夹,修改elasticsearch.yml配置文件,将以下变量放开并修改。
cluster.name: elasticsearch // 服务名称
node.name: node-1 // 节点名称
path.data: /path/to/data // 索引数据的储存路径 刚刚建立的文件夹地址,也可以换目录
path.logs: /path/to/logs // 日志文件的储存路径 刚刚建立的文件夹地址,也可以换目录
network.bind_host: 0.0.0.0 // 绑定ip地址 设置为本机
http.port: 9200 // 对外端口9200
bootstrap.memory_lock: false // 是否锁住内存
cluster.initial_master_nodes: ["node-1"] // 初始化节点 由于非集群 只有一个节点
进入jvm.options进行修改,这里修改为,初始化堆空间和最大堆空间为1G,按照自己要求来,如果配置错误可能出现不打印日志killed情况,所以此处需要调整好堆空间大小。
-Xms1g
-Xmx1g
7.9.0版本的es采用的是jdk11,所以如果服务器上jdk版本不是jdk11需要使用es自带的jdk。
进入bin目录
打开文件elasticsearch-env将以上代码替换为下方代码,使用es自带jdk11,修改结果如下图所示。
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
接下来解决分配内存不足的问题: 执行立即生效的命令
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
由于以上修改重启系统之后将失效,所以:
/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
安装ik分词器
建立ik文件夹,将elasticsearch-analysis-ik-7.9.0.zip文件移动至文件夹中,进行解压:
unzip elasticsearch-analysis-ik-7.9.0.zip
将解压之后的文件拷贝到es根目录的plugins插件文件夹中,ik分词器插件安装完成。
启动es
root是不能启动es的,会报出如下异常,所以需要新建一个用户,或者可以采用已有的除了root之外的用户, 这里使用es用户。
将文件夹拥有权给es用户
chown -R es:es elasticsearch-7.9.0
切换到es用户
su - es
文件夹bin下启动es
./elasticsearch // 正常启动
./elasticsearch // 后台启动