[NLP] Elasticsearch 全流程配置

8 篇文章 1 订阅
本文档详细介绍了在Linux系统中如何检查和配置Java环境,包括查找JDK路径和设置环境变量。接着讲解了Elasticsearch的下载、解压、创建数据及日志目录以及配置文件的修改,特别是内存和权限的调整。最后,演示了如何使用Python的Elasticsearch库进行数据插入和搜索操作,并提供了关闭Elasticsearch鉴权的方法。
摘要由CSDN通过智能技术生成

OS: linux

  • jdk

若机器已配置java环境,则可以跳过此部分。

$ echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

否则:

先看是否有java(可能仅仅是没有配置环境变量)

                若有,则按如下步骤找到jdk的位置(如下所示,本机中,该位置为:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java):

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~18.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

# 按如下步骤找到jdk的位置
$ which java
/usr/bin/java
$ ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 7月  22  2021 /usr/bin/java -> /etc/alternatives/java
$ ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 46 7月  22  2021 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

lrwxrwxrwx 1 root root 46 7月  22  2021 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

找到位置(如标红的字串所示)之后,配置环境变量:

$vi /etc/profile

 export JAVA_HOME=$/path/to/java 
 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
 export PATH=$PATH:${JAVA_HOME}/bin

若找不到java,即java -version 没有信息返回。则需要先下载jdk,安装并配置环境变量。(具体方法搜索即可,不介绍。)

  • elasticsearch_config

官网上下载对应的elasticsearch版本,解压,改名。(为了方便我切换了root用户。)

root@zhengjia:/home/software/es# ls
elasticsearch-8.2.0-linux-x86_64.tar.gz
root@zhengjia:/home/software/es# tar -zvxf elasticsearch-8.2.0-linux-x86_64.tar.gz

进入 elasticsearch 新建文件夹data, logs

root@zhengjia:/home/software/es/elasticsearch# mkdir data
root@zhengjia:/home/software/es/elasticsearch# mkdir logs

 修改配置

vi config/elasticsearch.yml
 cluster.name: my-application #集群名称
 node.name: node-1 #节点名称
 #数据和日志的存储目录
 path.data: /path/to/elasticsearch /data
 path.logs: /path/to/elasticsearch /logs
 #设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
 network.host: 0.0.0.0
 http.port: 9200 #端口
 #设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
 cluster.initial_master_nodes: ["node-1"]

修改java的jvm内存配置,elasticsearch使用javajvm默认是使用4G的内存,修改为512M

$ vi config/jvm.options
 -Xms512m
 -Xmx512m

 elasticsearch是不能使用root用户操作,创建一个用户并赋予操作权限。

  useradd esuser
  passwd esuser
  # 输入两次密码
 chown -R esuser /path/to/elasticsearch

vi 编辑 /etc/security/limits.conf,在末尾加上:

 esuser soft nofile 65536
 esuser hard nofile 65536
 esuser soft nproc 4096
 esuser hard nproc 4096

vi 编辑 /etc/sysctl.conf,在末尾加上:

vm.max_map_count = 655360

在root用户下执行sysctl -p,可看到修改结果。

root@zhengjia:/home/software/es/elasticsearch# sysctl -p
vm.max_map_count = 655360

切换esuser用户,并启动elasticsearch

esuser@zhengjia:/home/software/es/elasticsearch$ ./bin/elasticsearch

  • data_insert_search

# !pip install elasticsearch


from elasticsearch import Elasticsearch
es = Elasticsearch( "http://localhost:9200" )

# 批量插入
# data 为元素为dict 的 list
for i,body in enumerate(data):
    es.create(index='test1', id=i, body=body)

# 数据获取
# -- get 方法 指定索引,文档类型, id 查询出单条数据
res = es.get(index='test1', id=1)
print(res)

# -- search 方法 查询满足条件的所有文档, 没有id属性, 且index, doc_type和body均可为None
res = es.search(index='test1')
print(res)

# -- 在search 方法中 body 并不是文档中的body 而是一个query查询对象


query = {
    "query":{
        "match":{
            "<中文摘要>":"新石器时代"
        }
    }
}

res = es.search(index='test1', body=query)
print(res)

关闭鉴权使得任何访问都不需要账号密码:
 

sudo vi config//elasticsearch.yml
xpack.security.enabled: false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半九拾

援助一个bug吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值