ES+Hbase的使用

  • 一、ES+Hbase解决的问题
  • 二、ES核心原理
  • 2.1、Cluster(集群)
  • 2.2、shards(分片)
  • 2.3、Replicas(副本)
  • 2.4、Recovery(恢复)
  • 三、ElasticSeach的使用
  • 四、ElasticSeach的分词
  • 4.1、分词器作用
  • 4.2、分词工作流程
  • 五、Hbase基本介绍


一、ES+Hbase解决的问题

  • 实现【海量数据的存储】+【快速复杂查询的】解决方案
  • 整合的基本原理

二、ES核心原理

♦ Elasticsearch是一个实时的分布式【搜索和分析引擎】
♦ 它是对Lucene进行了封装,能够达到实时搜索,提供稳定 ,可靠,快速,等特点

HBASE和ES数据库 hbase与es结合_hbase

  • 核心概念

2.1、Cluster(集群)

代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举
产生的,主从节点是对于集群内部来说的。 ES的一个概念就是去中心化,字面上理解就是无中
心节点,这 是对于集群外部来说的,因为从外部来看ES集群,在逻辑上是个 整体,你与任
何一个节点的通信和与整个ES集群通信是等价的。

	主节点的职责是负责管理集群状态,包括管理分片的状态和副本的状态,以及节点的发现
和删除。

	注意:
	主节点不负责对数据的增删改查请求进行处理,只负责维 护集群的相关状态信息;

2.2、shards(分片)

代表索引分片,ES可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的
索引水平拆分成多个,分布到不同的 节点上。构成分布式搜索,提高性能和吞吐量。分片的
数量只能在创建索引库时指定,索引库创建后不能更改。
	默认是一个索引库有5个分片)每个分片中最多存储 lnteger.MAXVALUE-128 条数据。

2.3、Replicas(副本)

代表索引分片的副本,副本的作用:一是提高系统的容错性,当 某个节点某个分片损坏
或丢失时可以从副本中恢复。二是提高ES 的查询效率,ES会自动对搜索请求进行负载均衡。
副本的数量可以随时修改。
	注意:主分片和副本不会存在一个节点中

2.4、Recovery(恢复)

代表数据恢复或叫数据重新分布,ES在有节点加入或退出时会根据 机器的负载对索引分
片进行重新分配,挂掉的节点重新启动时也会 进行数据恢复
三、ElasticSeach的使用
可以通过RestAP操作或者SDK(JavaAPI)操作
	使用 RestAPI 操作日 asticsearch
	使用 JavaAPI 操作 Elasticseajch
四、ElasticSeach的分词

4.1、分词器作用

Analyzer (分词器)的作用是把一段文本中的词按一定规则进 行切分。对应的是
Analyzer类,这是一个抽象类,切分词的具 体规则是由子类实现的,所以对于不同的语
言,要用不同的分 词器。(也就是说不同的分词器分词的规则是不同的!)
	在创建索引时会用到分词器,在搜索时也会用到分词器,这 两个地方要使用同一个
分词器,否则可能会搜索不出结果。

HBASE和ES数据库 hbase与es结合_hbase_02

4.2、分词工作流程

1、切分关键词
	2、去除停用词(的、了、是、a、an. the)
	3、对于英文单词,把所有字母转为小写(搜索时不区分大小写)

几个重要的分得器
	1 分词器分词方式
		StandardAnalyzer 单字分词
		ChineseAnalyzer  单字分词
		CJKAnalyze       二分法分词 
		IKAnalyzer       词库分词
  • 中文分词器工作原理
单字分词:”我们是中国人“效果:”我““们“”是““中一国…人”
	二分法分词:按两个字进行切分。效果:“我们二”们是“ 、“是中二”中国“、“国人”。
	词库分词:按某种算法构造词,然后去匹配已建好的词库集合,如果匹配到就切分出
来成为词语。通常词库分词被认为是最理想的中文分词算法。

HBASE和ES数据库 hbase与es结合_java_03

五、Hbase基本介绍
HBase - Hadoop Database:是一个高可靠、高性能、 面向列、可伸缩的NoSQL数据
库(Key-Value类型)
	HBase基于H DFS作为其文件存储系统
	HBase支持对海量数据的增删改查

HBASE和ES数据库 hbase与es结合_java_04