• ElasticSearch第一天


    版权申明:

    本文仅适用于学习,更多内容请访问原创作者:

    微信公众号:江南一点雨

    博客:https://www.javaboy.org/

     

    ElasticSearch简介

    1.1 Lucene

    Lucene是一个开源、免费、高性能、纯java编写的全文检索引擎,可以算作是开源邻域最好的全文检索工具包。适用于很多语言,如C++、C#、paython等。它是出名的Doug Cutting的作品,当然还有hadoop也是他的。

     

    Lucene主要特点:

    • 简单

    • 跨语言

    • 强大的搜素引擎

    • 索引速度快

    • 索引文件兼容不同平台

     

    1.2 ElasticSearch

    ElasticSearch是一个分布式、可扩展、近实时性的高性能搜索与数据分析引擎,是基于Java编写,通过进一步封装Lucene,开发者可以用RESTful API

    操作全文搜索。

     

    整体上来说,ElasticSearch有三大功能:

    • 数据搜集

    • 数据分析

    • 数据存储

     

    ElasticSearch主要有如下特点:

    1. 分布式实时文件存储

    1. 实时分析的分布式搜索引擎

    1. 高可扩展性

    1. 可插拔的插件支持

     

    所以可以有很多用例

    - 应用程序搜索

    - 网站搜索

    1.3ElasticSearch安装

    首先是打开以下链接的Es官网,找到ElasticSearch:

    ES官网

    ElasticSearch对应的JDK关系,如下链接:

    JDK对应关系

    1.3.1单节点安装

    基本上正常的window、linux、mac等系统都可以使用。

     

    在Centos7.x上解压文件后,解压后的目录含义如下:

     

    目录含义
    modules 依赖模块目录
    lib 第三方依赖库
    logs 输出日志目录
    plugins 插件目录
    bin 可执行文件目录
    config 配置文件目录
    data 数据存储目录

     

    启动方式:

    进入到bin目录下,直接执行:

    [#]./elasticsearch
    • 启动过程中出现的问题

     

    原因:为了安全不允许使用root用户启动,es5之后的都不能使用添加启动参数或者修改配置文件等方法启动了, 创建一个用户就可以了

    1. 创建用户choleen

    [root#]adduser choleen

    2. 创建用户密码,需要输入两次

    [root#]passwd choleen

    3. 将对应的文件夹权限赋给该用户

    [root#]chown -R choleen elasticsearch-7.10.0

    4. 切换至choleen用户

    [root#]su choleen

    5. 进入bin启动,看到started就算成功

    [root#]./elasticsearch

    6. [root#]curl ip:9200,若看到json数据说明启动成功

    可能没有成功,去elasticsearch.yml文件,更改network.host: 0.0.0.0即可,冒号后面又空格。

    7. 在浏览器中输入localhost:9200访问,则需要更改配置文件。

     

    当改完配置文件之后,会报如下错误:

    1. 最大文件描述4096对于es进程太小了,至少增加到65535

    1. 最大线程数量3754,对于这个用户太低了,至少增加到46096

    1. 最大虚拟内存65535太低,至少增加到262144

    1. 这个默认的发现设置不适用与生产使用,至少seed_host、seed_prividers、initial_master_node其中必须配置一个

     

     

    解决方法:

    • 切换到root

    #文件

    [root#]echo "* soft nofile 65535" >> /etc/security/limits.conf

    [root#]echo "* hard nofile 65535" >> /etc/security/limits.conf

    #内存锁,不限制

    [root#]echo "* soft memlock unlimited" >> /etc/security/limits.conf

    [root#]echo "* hard memlock unlimited" >> /etc/security/limits.conf

    [root#]echo "vm.max_map_count=262144" >> /etc/sysctl.conf

    # 进程

    [root#]echo "* soft nproc 4096" >> /etc/security/limits.d/20-nproc.conf

    [root#] echo "* hard nproc 4096" >> /etc/security/limits.d/20-nproc.conf

    [root#] sysctl -p
    • 对于jdk环境变量

    jdk环境变量可以加在环境中,加es包里自带的。这个环境变量若不加,7.x版本的es启动会尝试在自己的程序所在路径获取jdk环境。若

    要在这台机器启动kibana,可以加上,或者直接加到kibana启动脚本中。

    [root#]cat >> /etc/profile.d/java.sh <<EOF

    > export JAVA_ES_HOME="/home/software/elasticsearch-7.10.0/jdk"

    > export PATH=$JAVA_ES_HOME/bin:$PATH

    > export CLASSPATH=.:$JAVA_ES_HOME/lib/dt.jar:$JAVA_ES_HOME/lib/tools.jar

    > EOF

     

    • 对于config/elasticsearch.yml配置文件修改

     node.name: node-1

    bootstrap.memory_lock: false

    bootstrap.system_call_filter: false

    network.host: 0.0.0.0

    http.port: 9200

    cluster.initial_master_nodes: ["node-1"]

    # head插件需要这两个配置

    http.cors.allow-origin: "*"

    http.cors.enabled: true

    http.max_content_length: 200mb

    当看到started时,启动成功。

    在内网执行,出现json字符串则成功

    [root#]curl ip:9200

     

    弯弯月亮,只为美好的自己。
  • 相关阅读:
    14个以春天为主题的网页设计
    使用 CSS3 创建下拉菜单
    视觉灵感:30个漂亮的的网站设计
    Null Object设计模式
    js插件库之图像幻灯片和画廊
    C#读取HTML文件内容写入记事本
    最好的图片水印实现思路
    抽奖系统
    对过万条数据的数据库字段内容批量替换程序
    通用 图片/文字 水印函数
  • 原文地址:https://www.cnblogs.com/Choleen/p/14071721.html
Copyright © 2020-2023  润新知