hbase

Hbase- 二级索引

。_饼干妹妹 提交于 2020-04-06 13:14:30
二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。 这篇文章会以HBase做为对象来讨论如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary index, ITHbase, Facebook方案和官方Coprocessor的介绍。 理论目标 在HBase中实现二级索引与索引Join需要考虑三个目标: 1,高性能的范围检索。 2,数据的低冗余(存储所占的数据量)。 3,数据的一致性。 性能与数据冗余,一致性是相互制约的关系。 如果你实现了高性能地范围检索,必然需要靠冗余索引数据来提升性能,而数据冗余会导致更新数据时难以实现一致性,特别是分布式场景下。 如果你不要求高效地范围检索,那么可以不考虑产生冗余数据,一致性问题也可以间接避免,毕竟share nothing是公认的最简单有效的解决方案。 理论结合实际,下文会以实例的方式来阐述各个方案是如何选择偏重点。 这些方案是经过笔者资料查阅和同事的不断交流后得出的结论,如有错误,欢迎指正: 1,按索引建表 每一个索引建立一个表,然后依靠表的row key来实现范围检索。row key在HBase中是以B+ tree结构化有序存储的,所以scan起来会比较效率。 单表以row key存储索引

CDH使用Solr实现HBase二级索引

五迷三道 提交于 2020-04-06 13:12:22
一、为什么要使用Solr做二级索引 二、实时查询方案 三、部署流程 3.1 安装HBase、Solr 3.2 增加HBase复制功能 3.3创建相应的 SolrCloud 集合 3.4 创建 Lily HBase Indexer 配置 3.5创建 Morphline 配置文件 3.6 注册 Lily HBase Indexer Configuration 和 Lily HBase Indexer Service 3.7 同步数据 3.8批量同步索引 3.9 设置多个indexer 四、数据的增删改查 4.1 增加 4.2更新 4.3删除 4.4 总结 五、 扩展命令 六、F&Q 6.1创建indexer失败,原来indexer已经存在 6.2创建indexer失败 6.3使用自带的indexer工具批量同步索引失败,提示找不到morphlines.conf 6.4使用自带的indexer工具批量同步索引失败,提示找不到solrconfig.xml 6.5使用自带的indexer工具批量同步索引失败,提示找不到Java heap space 6.6 HBaseIndexer启动后一会儿就自动退出 6.7 HBaseIndexer同步的数据与Solr不一致 6.8 出现了6.7的问题之后,修改了read-row="never"后,丢失部分字段 一、为什么要使用Solr做二级索引

Solr与HBase架构设计

Deadly 提交于 2020-04-06 13:12:02
大数据架构-使用HBase和Solr将存储与索引放在不同的机器上 摘要: HBase可以通过协处理器 Coprocessor 的方式向Solr发出请求,Solr对于接收到的数据可以做相关的同步:增、删、改索引的操作,这样就可以同时使用HBase存储量大和Solr检索性能高的优点了,更何况HBase和Solr都可以集群。这对海量数据存储、检索提供了一种方式,将存储与索引放在不同的机器上,是大数据 架构的必须品。 关键词: HBase, Solr, Coprocessor , 大数据 , 架构 正如我的之前的博客“ Solr与HBase架构设计 ” http://http://www.cnblogs.com/wgp13x/p/a8bb8ccd469c96917652201007ad3c50.html ​中所述,HBase和Solr可以通过协处理器 Coprocessor 的方式向Solr发出请求,Solr对于接收到的数据可以做相关的同步:增、删、改索引的操作。将存储与索引放在不同的机器上,这 是大数据架构的必须品,但目前还有很多不懂得此道的同学,他们对于这种思想感到很新奇,不过,这绝对是好的方向,所以不懂得抓紧学习吧。 有个朋友给我的那篇博客留言,说CDH也可以做这样的事情,我还没有试过,他还问我要与此相关的代码,于是我就稍微整理了一下,作为本篇文章的主要内容。关于CDH的事

HBASE+Solr实现详单查询--转

二次信任 提交于 2020-04-06 13:11:30
原文地址:https://mp.weixin.qq.com/s?srcid=0831kfMZgtx1sQbzulgeIETs&scene=23&mid=2663994161&sn=cee222a8534cbc6e28c401706e979dc0&idx=1&__biz=MzA3ODUxMzQxMA%3D%3D&chksm=847c675cb30bee4a5c4e9a03a41662ba6f312d4ba28407311a80c4a36f3f93a4bb624ada50e5&mpshare=1#rd 最近群里面讨论HBASE的使用场景,以及是会没落,这个还真是一句话说不清楚。本文讲其中一个场景:详单查询。 背景 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询。HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级的快速检索,对于多字段的组合查询却无能为力。针对HBase的多条件查询也有多种方案,但是这些方案要么太复杂,要么效率太低,本文只对基于Solr的HBase多条件查询方案进行测试和验证。 原理 基于Solr的HBase多条件查询原理很简单,将HBase表中涉及条件过滤的字段和rowkey在Solr中建立索引,通过Solr的多条件查询快速获得符合过滤条件的rowkey值,拿到这些rowkey之后在HBASE中通过指定rowkey进行查询。

Solr与HBase架构设计

五迷三道 提交于 2020-04-06 13:11:14
如何在保证存储量的情况下,又能保证数据的检索速度 。 HBase提供了完善的海量数据存储机制,Solr、SolrCloud提供了一整套的数据检索方案。 使用 HBase搭建结构数据存储云,用来存储海量数据;使用 SolrCloud集群用来搭建搜索引擎,将要查找的结构化数据的 ID查找出来,只配置它存储ID。 1.用户write data写数据(wd) 从用户提交写数据请求wd1开始;经历wd2写入MySQL数据库或写入结构数据存储云中;wd3提交到Solr集群中,从而依据业务需求创建索引。 2.用户read data读数据(rd) 从用户提交读数据请求rd1开始;经历rd2直接读取MySQL中数据或向Solr集群请求搜索服务;rd3向Solr集群请求得到的搜索结果为ID,再向结构数据存储云中通过ID取出数据,最后返回给用户结果。 参考文档: Solr与HBase架构设计 来源: https://www.cnblogs.com/badboy200800/p/10011180.html

hbase1.1.2安装

你。 提交于 2020-04-06 12:45:09
环境:hadoop2.6.1,zk3.4.6 1.配置环境变量 sudo vi /etc/profile.d/hbase-env.sh export HBASE_HOME=/usr/local/hbase-1.1.2 export PATH=$PATH:/usr/local/hbase-1.1.2/bin source /etc/profile.d/hbase-env.sh 2.修改配置文件 mkdir /usr/local/hbase-1.1.2/pid vi hbase-env.sh export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_66 export HBASE_PID_DIR=/usr/local/hbase-1.1.2/pid export HBASE_MANAGES_ZK=false false代表zk不交给hbase管理,需要手动启动 vi conf/hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <

HBase中的备份和故障恢复方法

不打扰是莪最后的温柔 提交于 2020-04-06 12:43:19
本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍。 随着HBase在重要的商业系统中应用的大量添加,很多企业须要通过对它们的HBase集群建立健壮的备份和故障恢复(backup and disaster recovery, BDR)机制来保证它们的企业(数据)资产。 HBase和Apache Hadoop系统提供了很多内置的机制,能够高速而轻松的完毕PB级数据的备份和恢复工作。 在这篇文章中,你将会对在HBase中可用的数据备份机制有一个高层次的简要了解,而且知道多种数据恢复/容灾机制。在阅读了这篇文章之后,你应该能对你的业务须要那种BDR策略有了自己的推断。 你也应该明确各种机制各自的优缺点(适用于CDH 4.3.0/HBase 0.94.6及更高版本号)。 备份 HBase是一个基于LSM树(log-structured merge-tree)的分布式数据存储系统,它使用复杂的内部机制确保数据准确性、一致性、多版本号等。因此。你怎样获取数十个region server在HDFS和内存中的存储的众多HFile文件、WALs(Write-Ahead-Logs)的一致的数据备份? 让我们从最小的破坏性,最小的数据占用空间,最小的性能要求机制和工作方式到最具破坏性的逐一讲述: Snapshots Replication Export

hbase_存储模型

孤人 提交于 2020-04-06 12:40:44
Hbase 是按列存储,所以每个列族存储在一个HDFS文件上。 Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的) region 是hbase中分布存储和负载均衡的最小单元(不是存储的最小单元),不同region分布到不同regionserver上。 region有一个或多个store组成,每个store保存一个columns family列族。 每个store又由一个memstore和0到多个storefile组成 memstore存储在内存中,storefile存储在HDFS上 Hbase高速实现数据存储和访问源于hbase数据存储: 连接Zookeeper,从Zookeeper中找要读的数据。需要知道表中rowkey在region中的位置 客户端查找HRegionServer,HRegionServer管理众多Region HMaster也需要连接Zookeeper,链接的作用是:HMaster需要知道哪些HRegionServer是活动的及HRegionServer所在的位置,然后管理HRegionServer Hbase内部把数据写到HDFS上,DFS有客户端 Region中包含HLog,Store, 若一张表有几个列族,就有几个Store。Store中有多个Memstore及storefile

HBase架构原理详情

家住魔仙堡 提交于 2020-04-06 12:38:49
本文从网上看到的,自己看过了,同时收藏下!感谢分享! HBase定义 HBase 是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群。    HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用Hadoop HDFS 作为其文件存储系统;Google 运行MapReduce 来处理Bigtable中的海量数据, HBase 同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable 利用Chubby作为协同服务, HBase 利用Zookeeper作为对应。 HBase 的特点 HBase 中的表一般有以下特点。 1)大:一个表可以有上亿行,上百万列。 2)面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。 3)稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。 HBase 访问接口 HBase 支持很多种访问,访问HBase的常见接口如下。 1、Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据。 2、HBase Shell,HBase的命令行工具,最简单的接口

关于hbase安装出现的问题

依然范特西╮ 提交于 2020-04-03 01:23:16
按照书上的配置如下 <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <configuration> 然后出现以下错误 2017-12-21 14:59:04,866 ERROR [main] quorum.QuorumPeerConfig: Invalid configuration, only one server specified (ignoring) 2017-12-21 14:59:04,888 INFO [main] server.ZooKeeperServerMain: Starting server 其实下面还有很多错误,不过都是由于这最前面的这个错误导致的 开始以为是不同步导致错误(以为错误日志太长,没看到前面这错误),于是利用ntp把各节点同步,并且在hbase-site.xml配置了 <property> <name>hbase.master.maxclockskew</name> <value>120000</value> <