Elaticsearch7.7.0的安装(ELK)

Elaticsearch7.7.0

Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。

  基本概念有:Cluster 集群、Node节点、Index索引、Document文档、Shards & Replicas分片与副本等

elasticsearch的优势:

  • 分布式:横向扩展非常灵活
  • 全文检索:基于lucene的强大的全文检索能力;
  • 近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析
  • 高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据
  • 模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。
  • RESTful API:JSON + HTTP

1-安装Elaticsearch

1.1-下载

Elaticsearch7.7.0下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz
Elatic下工具和版本下载中心: https://elasticsearch.cn/download/

1.2-解压

解压elasticsearch-7.7.0-linux-x86_64.tar.gz得到elasticsearch-7.7.0文件夹

tar -zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz

elasticsearch-7.7.0文件夹下内容:

  • bin/ 存放一些脚本文件,比如启动文件、安装插件的脚本等
  • config/ 配置文件目录,重要的配置文件我们接下来总结一下
  • data/ 数据文件
  • jdk/ java运行环境
  • lib/ java类库
  • logs/ 日志
  • modules/
  • plugins/ 包含所有安装的插件

1.3-为elasticsearch新增用户

ES在启动的时候是不允许使用root账户的,所以我们要新建一个elasticsearch用户

[root@zxone elk]# useradd esuser           ##新增esuser用户
[root@zxone elasticsearch-7.7.0]# chown  esuser:esuser -R /home/elk/elasticsearch-7.7.0  ##授权esuser用户权限
[root@zxone elasticsearch-7.7.0]# su - esuser    ##切换到esuer用户

1.4-系统配置

启动ES之前需要修改LINUX的系统配置

1.4.1-关闭swapping

临时关闭方案:

sudo swapoff -a

长久关闭方案:

vim /etc/fstab #注释掉所有的swap相关的行,永久禁用
1.4.2-ulimit调整和线程的数量
vim /etc/security/limits.conf  

在文件的最后添加

esuser - nofile 65535

esuser - nproc 4096

然后保存退出。

1.4.3-调整mmapfs的数值
vim /etc/sysctl.conf 
vm.max_map_count=262144 #永久修改
sysctl -p  #执行该命令新增的参数才会生效

image-20200820180234564

1.4.4-配置集群参数

单机也可以算一个集群,不过只有一个机器而已。放开注释即可:

cluster.name: my-application
node.name: node-1
node.attr.rack: r1
cluster.initial_master_nodes: ["node-1"]      #有时候报如下错误时,配置此参数
ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

1.5-启动ES

[esuser@zxone elasticsearch-7.7.0]$ ./bin/elasticsearch

启动ES出现错误:

image-20200820152645393

(1)处理JDK版本问题:

因为elasticsearch-7.7.0要求JDK版本是11,现在LINUX安装的是JDK版本是1.8,elasticsearch是自带JDK的。

将elasticsearch-env中的下面内容修改一下,是ES使用自带的JDK

# now set the path to java
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

修改成:

# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
  JAVA="$ES_HOME/jdk/bin/java"
  JAVA_TYPE="bundled jdk"
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

然后再启动ES,JDK环境问题处理完成。

image-20200820154016671

(2)内存太小问题处理error='Not enough space'

该问题是因为ES默认的需要内存大小超过当前运行ES系统的内存大小,需要修改ES的默认内存大小即可。

error:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
	at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)
	at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
	at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:139)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)

修改elasticsearch-7.7.0/config/jvm.options 中的Xms和Xmx参数(根据自己电脑配置修改)

-Xms128m
-Xmx128m

此时再启动ES,则出现如下日志,则说明成功启动ES

image-20200820170551700

换一个窗口进行验证:curl 127.0.0.1:9200 出现以下信息ES成功启动。

image-20200820170640813

在浏览器中输入: IP:9200 无法获取到信息

  • 原因一:未开通9200端口

  • 原因二:在LINUX安装的ES需要修改elasticsearch-7.7.0/config/jvm.options/elasticsearch.yml中的network.host=0.0.0.0 ,不然只能本机ES,其他电脑无法连接ES。

network.host= 0.0.0.0 

修改完成之后重启ES,浏览器输入:IP:9200 出现如下ES的JSON信息。

{
    "name": "node-1",
    "cluster_name": "my-application",
    "cluster_uuid": "tt6QC-ZrQAKRvblTZinmpg",
    "version": {
        "number": "7.7.0",
        "build_flavor": "default",
        "build_type": "tar",
        "build_hash": "81a1e9eda8e6183f5237786246f6dced26a10eaf",
        "build_date": "2020-05-12T02:01:37.602180Z",
        "build_snapshot": false,
        "lucene_version": "8.5.1",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}
posted @ 2020-08-21 16:03  zxone公子  阅读(415)  评论(0编辑  收藏  举报