栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch笔记(二)安装与使用

Elasticsearch笔记(二)安装与使用

Elasticsearch笔记(一)生态圈简介

后续会在 Docker 中使用 ELK,简单了解一下下述安装

ES

安装 准备工作

运行Elasticsearch,需安装并配置JDK

  • 各个版本对Java的依赖
    • Elasticsearch 5 需要Java 8 以上的版本
    • Elasticsearch 从 6.5 开始支持 Java 11
    • Elasticsearch 7.0 开始内置了Java环境
下载

也支持 Docker 环境运行
Elasticsearch下载地址
选择对应版本,此处下载 Linux x86_64 版本

解压

通过非root用户启动

如果使用root账户启动会报以下错误

java.lang.RuntimeException: can not run elasticsearch as root

注意通过非root账户启动时,要注意 elasticsearch 和 jdk 目录的权限是否为当前用户权限是否可以访问,如果权限不足,要进行修改

目录介绍

使用 启动服务

通过运行 elasticsearch 目录下bin目录中的 elasticsearch 启动 elasticsearch 服务

elasticsearch-7.14.0/bin/elasticsearch

elasticsearch启动后访问:端口号:9200

只能在linux虚拟机中访问,无法通过外部访问
在config/elasticsearch.yml中增加

network.host: 0.0.0.0

再次启动,报错

ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: 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 配置完成后退出当前用户,重新登录
vim /etc/security/limits.conf

wcj hard nofile 65536
wcj soft nofile 65536

解决错误2
修改 config/elasticsearch.yml 文件

cluster.initial_master_nodes: ["node-1"]

解决上述错误后,再次启动服务,可以访问到虚拟机中的 ES 服务

JVM 配置
  • 修改 JVM - config/jvm.options
    • 7.1 下载的默认设置是 1 GB
  • 配置建议
    • Xmx 和 Xms 设置成一样
    • Xmx 不要超过机器内存的 50%
    • 不要超过 30 GB - https://www.elastic.co/cn/blog/a-heap-of-trouble
插件

查看已安装插件

命令方式

bin/elasticsearch-plugin list

浏览器方式
访问 ip:9200/_cat/plugins

插件安装

安装 analysis-icu 插件

bin/elasticsearch-plugin install analysis-icu
集群模拟
bin/elasticsearch -E node.name=node1 - E cluster.name=集群名称 -E path.data=node1_data -d
bin/elasticsearch -E node.name=node2 - E cluster.name=集群名称 -E path.data=node2_data -d
bin/elasticsearch -E node.name=node3 - E cluster.name=集群名称 -E path.data=node3_data -d

查看节点

ip:9200/_cat/nodes

Kibana 安装 下载

注意Kibana版本要和Elasticsearch版本一致
Kibana下载地址

解压

下载完成后解压文件

使用 启动

访问 ip:5601

bin/kibana

kibana 启动后外网无法访问

修改 config 目录下的 kibana.yml 文件

#server.host: "localhost"
server.host: "0.0.0.0"

配置kibana为中文

在配置文件(config/kibana.yml )中增加 i18n.locale: “zh-CN”

i18n.locale: "zh-CN"
插件

安装方式和 ES 类似

# 安装插件
bin/kibana-plugin install /插件路径
# 查看已安装插件 
bin/kibana-plugin list
# 移除插件
bin/kibana-plugin remove
Docker 安装 ELK 准备 安装docker-compose

下载docker-compose

移动到/usr/local/bin目录下

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

修改文件的执行权限

sudo chmod +x /usr/local/bin/docker-compose
docker-compose.yaml 文件

同时将 cerebro、kibana、elasticsearch 运行在 docker compose 容器中

  • cerebro 可以查看 ES 集群的状态
version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.3
    container_name: cerebro
    ports:
      - "9000:9000"
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
    networks:
      - es7net
  kibana:
    image: docker.elastic.co/kibana/kibana:7.14.0
    container_name: kibana7
    environment:
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    networks:
      - es7net
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
    container_name: es7_01
    environment:
      - cluster.name=geektime
      - node.name=es7_01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01,es7_02
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - es7net
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
    container_name: es7_02
    environment:
      - cluster.name=geektime
      - node.name=es7_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01,es7_02
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data2:/usr/share/elasticsearch/data
    networks:
      - es7net

volumes:
  es7data1:
    driver: local
  es7data2:
    driver: local

networks:
  es7net:
    driver: bridge
运行

在 docker-compose.yml 文件所在的路径执行 docker-compose up 命令

执行命令报错

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

错误原因:最大虚拟内存区域 vm.max_map_count 65530 太低了,增加到至少 262144

解决方式

编辑 /etc/sysctl.conf,添加 以下信息

vm.max_map_count=262144

执行以下命令使配置生效

sysctl -p 
Logstash

通过logstash将csv文件转换为json格式数据

安装 下载

注意Logstash版本要和elasticserach和kibana版本一致
下载Logstash

解压

下载完成后解压文件

使用 准备 测试数据下载

测试数据下载

测试数据处理

将下载好的压缩包解压,movies.csv是要导入的测试数据
logstash.conf文件(放在了Logstash的bin目录下),将movies.csv中的数据输出到Elasticsearch

logstash.conf文件

input {
  file {
  ## 数据文件存放地址,注意下面地址要换成movies.csv存放的地址
    path => "/Users/yiruan/dev/elk7/logstash-7.0.1/bin/movies.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
  csv {
    separator => ","
    columns => ["id","content","genre"]
  }

  mutate {
    split => { "genre" => "|" }
    remove_field => ["path", "host","@timestamp","message"]
  }

  mutate {

    split => ["content", "("]
    add_field => { "title" => "%{[content][0]}"}
    add_field => { "year" => "%{[content][1]}"}
  }

  mutate {
    convert => {
      "year" => "integer"
    }
    strip => ["title"]
    remove_field => ["path", "host","@timestamp","message","content"]
  }

}
## 上面对数据进行逻辑处理
## 最后将处理好的数据输出到localhost:9200端口
output {
   elasticsearch {
     hosts => "http://localhost:9200"
     index => "movies"
     document_id => "%{id}"
   }
  stdout {}
}
启动Logstash

bin 目录下运行

./logstash -f logstash.conf

数据输入到了Elasticsearch

使用

后续使用通过 docker 启动这些服务

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号