【ElasticSearch】学习一

一、介绍:

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。
ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。构建在全文检索开源软件Lucene之上的ElasticSearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析。

总的来说就是:ElasticSearch是基于Restful标准的高扩展高可用的实时数据分析的全文搜索工具。

ElasticSearch MySQL
index database
type table
document ES一条数据对应一篇文档即相当于mysql数据库中的一行数据row,一个文档中可以有多个字段也就是MySQL 数据库一行可以有多列
field ES中一个文档中对应的多个列与mysql数据库中每一列对应
mapping mysql或者solr中对应的schema
indexed MySQL的索引
Query DSL MySQL的sql语句,只不过在ES中是使用的json格式的查询语句
GET/PUT/POST/DELETE 分别类似与MySQL中的select/update/delete

二、ElasticSearch

环境:CentOS 7(4G内存、防火墙已关闭)、jdk1.8、elasticsearch-6.5.4
下载:elasticsearch-6.5.4.tar.gz 猛击这里
[root@localhost install-package]# tar -zxvf  elasticsearch-6.5.4.tar.gz -C /usr/local/
[root@localhost local]# mv elasticsearch-6.5.4/ elasticsearch
1、由于ES从5.0版本开始就提高安全级别了,不允许root用户去启动,因此需要加一个用户
[root@localhost local]# groupadd esgroup
[root@localhost local]# useradd zhaoyoung -g esgroup -p espassword

更改elasticsearch文件夹及内部文件的所属用户及组:

[root@localhost local]# cd /usr/local/
[root@localhost local]# chown -R zhaoyoung:esgroup elasticsearch

切换用户

[root@localhost local]# su zhaoyoung
2、启动
[root@localhost local]# cd elasticsearch/bin/
# 前台启动
[root@localhost local]# ./elasticsearch
# 或者后台启动一
[root@localhost local]# ./elasticsearch -d
# 或者后台启动二
[root@localhost local]# nohup ./bin/elasticsearch &

如果报错

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

第一个问题解决方法:
错误意思:每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量

[root@localhost elasticsearch]$ ulimit -Hn
4096
[root@localhost elasticsearch]$ ulimit -Sn
1024

修改/etc/security/limits.conf,增加之后用户退出后再重新登录即可生效

[root@localhost elasticsearch]# vim /etc/security/limits.conf 

增加配置

* soft nofile 65536
* hard nofile 65536

第二个问题解决方法:
增加配置:vm.max_map_count=262144

[root@localhost bin]# vim /etc/sysctl.conf 
# 执行生效
[root@localhost bin]# sysctl -p
vm.max_map_count = 262144

3、测试
[root@localhost /]# curl 127.0.0.1:9200
{
  "name" : "Qt71Y3N",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "S0dYCybjQe6b0d_4ZQ1juw",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

4、设置为能远程访问
[root@localhost /]# cd /usr/local/elasticsearch
[root@localhost elasticsearch]# cd config/
[root@localhost config]# ls
analysis-ik  elasticsearch.keystore  elasticsearch.yml  jvm.options  log4j2.properties  role_mapping.yml  roles.yml  users  users_roles
[root@localhost config]# vim elasticsearch.yml 

#network.host: 192.168.0.1改为network.host: 0.0.0.0network.host: 本机ip

如果防火墙没关闭,可 systemctl stop firewalld.service 进行关闭

或者打开端口 firewall-cmd --zone=public --add-port=9200/tcp --permanent 并重启 firewall-cmd --reload


三、elasticsearch-head

elasticsearch-headelasticsearch的集群管理工具,可以用于数据的浏览和查询
(1)elasticsearch-head是一款开源软件,被托管在github上面,所以如果我们要使用它,必须先安装git,通过git获取elasticsearch-head;
(2)运行elasticsearch-head会用到grunt,而grunt需要npm包管理器,所以nodejs是必须要安装的;
(3)elasticsearch5.0之后,elasticsearch-head不做为插件放在其plugins目录下了。使用git拷贝elasticsearch-head到本地。

因此,需要先安装nodejs

nodejs下载地址 猛击这里
【ElasticSearch】学习一_第1张图片

1、安装
[root@localhost install-package]# wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
[root@localhost install-package]# xz -d node-v10.15.0-linux-x64.tar.xz
[root@localhost install-package]# tar -xvf node-v10.15.0-linux-x64.tar -C /usr/local/
[root@localhost local]# mv node-v10.15.0-linux-x64/ node
[root@localhost local]# cd node/bin/
[root@localhost bin]# ls
cnpm  grunt  node  npm  npx
# 查看nodejs版本
[root@localhost bin]# ./node -v
v10.15.0
2、配置
[root@localhost local]# vim /etc/profile
# 加入以下路径
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

[root@localhost local]# source /etc/profile
3、重启系统,检查版本
[root@localhost local]# node -v
v10.15.0
[root@localhost local]# npm -v
6.4.1

4、安装elasticsearch-head

[root@localhost local]# yum install -y bzip2
[root@localhost local]# cd /usr/local
[root@localhost local]# git clone https://github.com/mobz/elasticsearch-head.git

[root@localhost local]# npm install -g grunt-cli
[root@localhost local]# npm install cnpm -g --registry=https://registry.npm.taobao.org
[root@localhost elasticsearch-head]# cd elasticsearch-head/
[root@localhost elasticsearch-head]# cnpm install

[root@localhost elasticsearch-head]# vim Gruntfile.js
connect: {
            server: {
                options: {
                    hostname: '*', # 加入这一行,允许所有ip都可访问
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }

[root@localhost elasticsearch-head]# cd _site/
[root@localhost _site]# vim app.js
# 找到“http://localhost:9200”并改成ES的服务器地址
5、启动elasticsearch-head
[root@localhost elasticsearch-head]# node_modules/grunt/bin/grunt server

浏览器访问http://192.168.1.24:9100/


三、Kibana

Kibana是一个针对Elasticsearch的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。
1、下载
Kibana官网下载 猛击这里
kibana-6.5.4-linux-x86_64.tar.gz 百度网盘下载 猛击这里
提取码:mzqf
2、安装
[root@localhost install-package]# tar -zxvf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/
[root@localhost local]# mv kibana-6.5.4-linux-x86_64/ kibana
[root@localhost local]# cd kibana/config/
[root@localhost config]# vim kibana.yml
修改kibana.yml
# 将全文替换成以下内容
# Kibana默认端口
server.port: 5601
# 所在服务器的ip地址
server.host: "192.168.1.24"
# ES所在服务器的ip地址
elasticsearch.url: "http://192.168.1.24:9200"

kibana.index: ".kibana"
开启防火墙:systemctl start firewalld.service
开启5601端口:firewall-cmd --permanent --zone=public --add-port=5601/tcp
重启防火墙:firewall-cmd –reload
3、启动
[root@localhost /]# /usr/local/kibana/bin/kibana
4、访问

浏览器打开 http://192.168.1.24:5601

三、中文分词

1、安装
GitHub地址 猛击这里

【ElasticSearch】学习一_第2张图片
官方提供了两种安装方式,这里我们选择第二种

[zhaoyoung@localhost local]$ cd elasticsearch/bin/
[zhaoyoung@localhost bin]$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

然后重启ES,在启动日志中可以看到loaded plugin [analysis-ik]

你可能感兴趣的:(ElasticSearch)