8.1 ElasticSearch & Kibana

搜索模式

SQL模式

1,zhangsan,yuwen,98
2,lisi,yuwen,92
	select * from user where name like '%l%';
	select * from user where name like '%l%' and name like '%s%' ;
-缺点:
	-需要将数据从头至尾遍历一遍
	-我们的数据量在一直增加

倒排索引

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)

-文本
	-我是中国人 (我 是 我是 中国 中国人)
	-2,我是中华人民共和国公民
	-... (1000万)
	-1003,中国领土的主权不容侵犯
	-1004,台湾国中生生活节奏很懒散
	-1005,中国人民正在实现中国梦
	
-古诗
七月在野,八月在宇,九月在户,十月蟋蟀入我床下。 先秦 《诗经·七月》
小时不识月,呼作白玉盘。——《古朗月行》李白。
烽火连三月,家书抵万金。——《春望》杜甫。

-更换数据的存储模式
	-中国 1[2] 1003[0] 1005[0] 1005[8]
	-月 1[2] 1[6] 1[10] 1[14] 1[24] 2[4] 2[13] 3[4]

https://developer.51cto.com/art/201904/594615.html



ElasticSearch概念

  • 实时的数据搜索分析框架,使用restful风格

  • 与Lucene和Solr的关系
    es和solr都基于lucene

  • 与关系型数据库的对比
    查询的时候从上到下查询,查询下面的就需要提供上面的

关系型ES
数据库 DataBaseIndex
表 TableType
行 RowDocument
列 ColumnField

只是大小包含关系类似



搭建流程

上传解压移动

--解压:
tar -zxf elasticsearch-2.4.5.tar.gz 
--移动:
mv elasticsearch-2.4.5 /opt/sxt/ 

配置文件:

--进入配置目录:
cd /opt/sxt/elasticsearch-2.4.5/config
修改配置文件
vim elasticsearch.yml

配置文件示例:

cluster.name: shsxt
node.name: node-bd1301
network.host: 192.168.241.211

上面对应行数 17 23 54

下面的代码添加到配置文件最后:

discovery.zen.ping.multicast.enabled: false
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.241.211","192.168.241.212", "192.168.241.213"]

在这里插入图片描述

--拷贝elasticsearch-2.4.5到其他主机并修改配置信息
scp -r elasticsearch-2.4.5 root@bd1302:/opt/sxt/
scp -r elasticsearch-2.4.5 root@bd1303:/opt/sxt/
--修改对应的name.node和network.host

创建用户&修改权限:

--3个主机创建新用户专门管理ES
--3台主机创建用户es 及密码
useradd es 
passwd es
--设置文件的权限(修改文件所属)
cd /opt/sxt/
chown -R es:es elasticsearch-2.4.5
--切换用户
su es
--3台主机启动集群
./elasticsearch 

在这里插入图片描述
一些可能出现的错误提示:

don’t run elasticsearch as root(忘记切换用户)
Log4j (没有为文件夹设置es用户权限)
访问集群
RestFul



数据库操作CRUD

restful

-URL可以唯一定位到一个资源
-我们使用固定的词去访问URL,我们得到的效果是不同的
-curl -X(GET获取 POST创建替换追加 PUT创建替换 DELETE删除)
-可以很好的屏蔽语言的差异

Index的操作

-创建是命名全部小写,不能使用_开头,中间不能使用,
-创建Index
	curl -XPUT http://192.168.241.211:9200/xxxxx/
-获取索引
	curl -XGET http://192.168.241.211:9200/xxxxx/
-删除索引
	curl -XDELETE http://192.168.241.211:9200/xxxxx/

Document的操作

-创建type和插入数据(Post)
	-每次操作得到的效果有可能是不同的
curl -XPOST http://192.168.241.211:9200/xxxxx/emp -d '{
"first_name" : "john",
"last_name" : "smith",
"age" : 25,
"about" : "I love to go rock climbing"
}'

curl -XPOST http://192.168.241.211:9200/xxxxx/emp -d '{
"first_name" : "zhang",
"last_name" : "san",
"age" : 18,
"about" : "pretty"
}'

curl -XPOST http://192.168.241.211:9200/xxxxx/emp -d '{
"first_name" : "li",
"last_name" : "si",
"age" : 18,
"about" : "pretty2"
}'
创建type和插入数据(put)
	一般put操作为幂等操作,每次执行效果都是一样的
curl -XPUT http://192.168.241.212:9200/xxxxx/emp/1 -d '{
"first_name" : "wang",
"last_name" : "wu",
"age" : 50,
"about" : "handsome",
"address": "shanghai"
}'
-查看数据
//查询index
curl -XGET http://192.168.241.211:9200/xxxxx/_search
//查询type
curl -XGET http://192.168.241.211:9200/xxxxx/emp/_search
//按照ID查询文档
curl -XGET http://192.168.241.211:9200/xxxxx/emp/1
//查询指定的列
curl -XGET http://192.168.241.211:9200/xxxxx/emp/AW799O_-HSjlOiL4J82L?_source=age
curl -XGET http://192.168.241.211:9200/xxxxx/emp/_search?_source=age
//按照条件查询
curl -XGET http://192.168.241.211:9200/xxxxx/emp/_search?q=age:18
-修改数据
-------------------直接替换---------------------------------
curl -XPUT http://192.168.241.212:9200/xxxxx/test/1 -d '{
"hello":"world"
}'
curl -XPUT http://192.168.241.212:9200/xxxxx/test/1 -d '{
"hello":"moto"
}'

curl -XGET http://192.168.241.211:9200/xxxxx/test/_search?pretty
--------------------局部替换---------------------------------
curl -XPOST http://192.168.241.213:9200/xxxxx/stu/1 -d '{
"uname":"jiangyue",
"age":18
}'

curl -XPOST http://192.168.241.213:9200/xxxxx/stu/1/_update -d '{
"doc":{"uname":"zyn","city":"beijing"}
}'

curl -XGET http://192.168.241.212:9200/xxxxx/stu/1?pretty 
-删除数据
curl -XDELETE http://192.168.241.212:9200/xxxxx/dept/2 

curl -XGET http://192.168.241.212:9200/xxxxx/dept/_search
-DSL语言
//查询语句
curl -XGET http://192.168.241.211:9200/xxxxx/emp/_search?pretty -d '{
"query":
{"match":{"age":"18"}}
}'


Elasticsearch的插件配置

插件head

--进入bin目录
cd /opt/sxt/elasticsearch-2.4.5/bin
--安装3个主机的head插件命令
./plugin install file:/root/elasticsearch-head-master.zip
--在es的bin目录中执行plugin

插件license

--安装3个主机的license插件命令
./plugin install file:/root/license-2.4.5.zip

--在es的bin目录中执行plugin

插件Marvel-agent

--安装3个主机的Marvel-agent插件命令
./plugin install file:/root/marvel-agent-2.4.5.zip

--在es的bin目录中执行plugin

3种插件完成安装示意图:

在这里插入图片描述
修改3个插件的所属权限(直接修改整个目录)

--语法:
chown -R es:es elasticsearch-2.4.5/

修改后示意图:
在这里插入图片描述



Kibana

  • ELK技术栈都属于Elastic公司
    Elasticsearch + Logstash + Kibana
  • 给运维人员使用的工具,时刻监控es集群的状态

安装 Kibana(配置1台即可)

--解压tar包:
tar -zxvf kibana-4.6.2-linux-x86_64.tar.gz
--移动
mv kibana-4.6.2-linux-x86_64 /opt/sxt/
在安装目录中修改目录名
mv kibana-4.6.2-linux-x86_64/ kibana-4.6.2

安装 Kibana的marvel插件

--进入bin目录
cd /opt/sxt/kibana-4.6.2/bin/
--(本地 建议)
./kibana plugin --install marvel --url file:///root/marvel-2.4.6.tar.gz

--(网络 不推荐)安装kibana的marvel插件
./kibana plugin --install elasticsearch/marvel/latest
--修改配置文件
vim /opt/sxt/kibana-4.6.2/config/kibana.yml

修改示意图:
在这里插入图片描述
修改成任一主机地址都可以



启动es和kibana

启动3台es

--进入kibana的bin目录
cd /opt/sxt/elasticsearch-2.4.5/bin/ 
--切换用户
su es
--进入elasticsearch的bin目录后启动es
./elasticsearch

bd1301:9200
bd1301:9200/_plugin/head/

启动1台kibana

另开一个主机1用来开启kibana

--进入kibana的bin目录后启动kibana
cd /opt/sxt/kibana-4.6.2/bin/
./kibana

bd1301:5601

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值