hbase

Hbase总结(八)Hbase中的Coprocessor

不想你离开。 提交于 2020-01-21 11:19:46
1.起因(Why HBase Coprocessor) HBase作为列族数据库最常常被人诟病的特性包含:无法轻易建立“二级索引”,难以运行求和、计数、排序等操作。比方,在旧版本号的(<0.92)Hbase中, 统计数据表 的总行数。须要使用Counter方法,运行一次MapReduce Job才干得到。尽管HBase在 数据存储层 中集成了MapReduce。能够有效用于数据表的分布式计算。然而在非常多情况下,做一些简单的相加或者聚合计算的时候,假设直接将计算过程放置在server端,能够降低通讯开销,从而获得非常好的性能提升。于是,HBase在0.92之后引入了协处理器(coprocessors)。实现一些激动人心的新特性:能够轻易建立二次索引、复杂过滤器(谓词下推)以及訪问控制等。 2.灵感来源( Source of Inspration) HBase协处理器的灵感来自于Jeff Dean 09年的 演讲 ( P66-67)。 它依据该演讲实现了相似于bigtable的协处理器,包含以下特性: 每一个表服务器的随意子表都能够 运行代码 client的高层 调用接口 (client能够直接訪问数据表的行地址。多行读写会自己主动分片成多个并行的RPC调用) 提供一个非常灵活的、可用于建立分布式服务的数据模型 能够自己主动化扩展、负载均衡、应用请求路由

How to store Primitive Datatypes , Strings in a HBase Column and Retrieve Them Using Serialization and Deserialization?

醉酒当歌 提交于 2020-01-21 10:35:46
问题 How to store Primitive Datatypes , Strings in a HBase Column and Retrieve Them. Normally when we want to store data in HBase table we do as below. Configuration conf = HBaseConfiguration.create(); HTable table = new HTable(conf, "people"); Put put = new Put(Bytes.toBytes("doe-john-m-12345")); put.add(Bytes.toBytes("personal"), Bytes.toBytes("givenName"), Bytes.toBytes("John")); put.add(Bytes.toBytes("personal"), Bytes.toBytes("mi"), Bytes.toBytes("M")); put.add(Bytes.toBytes("personal"),

大数据【四】ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

倖福魔咒の 提交于 2020-01-20 20:55:59
hbase shell执行脚本时,报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing zookeeper集群配置出错,可以先配置一个节点,后续再添加其它节点: 比如修改成如下配置: <property> <name>hbase.zookeeper.quorum</name>#zookeeper地址 <value>192.168.1.152:2181</value> </property> 然后停止hbase,删除hadoop下的/hbase节点、删除zookeeper下的/hbase节点 重新启动hbase 相应的脚本如下 删除hadoop数据节点:hadoop fs -rm -f /hbase 删除zookeeper数据节点:deleteall /hbase 后续添加zookeeper集群再相应完善此文。 来源: CSDN 作者: eulers 链接: https://blog.csdn.net/jiangxuexuanshuang/article/details/104049882

hbase干货

淺唱寂寞╮ 提交于 2020-01-20 16:58:27
区别 做nosql有很多,hive与hbase,二者都是基于hadoop的,不同是,hive基于类sql引擎的,所以可以用HSQL语句来 用来统计查询,返回数据比较慢,默认是便利表中所有的数据。 hbase呢是key/value的数据库,用来实时查询是比较擅长的,facebook的消息实时分析用此, 名词:MapReduce 由master分配任务给worker执行,map函数读取被分配的输入数据片段,输出中间key/value pair值的集合,reduce函数手机具有相中中间key值的value值,合并这些value值,形成一个较小的value值的集合 把一些数据通过map来归类,通过reducer来把同一类的数据进行处理 hbase理解的应该有以下几个模块 简单理解hbase更新数据,首先写到hlog日志,然后同时通过hregionserver 到region,再通过store模块的memstore存储,如果达到设置的值则执行store file,flush到hfile中,这样这几个模块都用上了 master或者hmaster 是Master Server的实现,负责监控集群中的RegionServer实例,同时是所有metadata改变的接口,在集群中,通常运行在NameNode上面 hregionserver 是RegionServer的实现,服务和管理Regions

hbase干货

久未见 提交于 2020-01-20 16:47:01
区别 做nosql有很多,hive与hbase,二者都是基于hadoop的,不同是,hive基于类sql引擎的,所以可以用HSQL语句来 用来统计查询,返回数据比较慢,默认是便利表中所有的数据。 hbase呢是key/value的数据库,用来实时查询是比较擅长的,facebook的消息实时分析用此, 名词:MapReduce 由master分配任务给worker执行,map函数读取被分配的输入数据片段,输出中间key/value pair值的集合,reduce函数手机具有相中中间key值的value值,合并这些value值,形成一个较小的value值的集合 把一些数据通过map来归类,通过reducer来把同一类的数据进行处理 hbase理解的应该有以下几个模块 简单理解hbase更新数据,首先写到hlog日志,然后同时通过hregionserver 到region,再通过store模块的memstore存储,如果达到设置的值则执行store file,flush到hfile中,这样这几个模块都用上了 master或者hmaster 是Master Server的实现,负责监控集群中的RegionServer实例,同时是所有metadata改变的接口,在集群中,通常运行在NameNode上面 hregionserver 是RegionServer的实现,服务和管理Regions

HBase性能优化方法总结

旧城冷巷雨未停 提交于 2020-01-20 06:40:44
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考: 淘宝Ken Wu同学的博客 。 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 有关预分区,详情参见: Table Creation: Pre-Creating Regions ,下面是一个例子: public static boolean createTable(HBaseAdmin admin, HTableDescriptor table, byte[][] splits) throws IOException { try { admin.createTable(table, splits); return true; } catch (TableExistsException e) { logger.info("table " + table.getNameAsString() + "

HBase Java API使用(一)

白昼怎懂夜的黑 提交于 2020-01-20 03:19:02
前言 1. 创建表:(由master完成) 首先需要获取master地址(master启动时会将地址告诉zookeeper)因而客户端首先会访问zookeeper获取master的地址 client和master通信,然后有master来创建表( 包括表的列簇,是否 cache ,设置存储的最大版本数,是否压缩等 )。 2. 读写删除数据 client与regionserver通信,读写、删除数据 写入和删除数据时讲数据打上不同的标志append,真正的数据删除操作在compact时发生 3. 版本信息    API基础知识 CRUD操作:   put:插入单行或者多行   get: 读取数据或者使用scan()   delete:删除数据   batch(): 批量处理操作 scan:   类似于数据库中的游标cursor HTable常用方法:   void close(): 用完一个HTable实例后需要调用一次close(),(这个方法会隐式的调用flushCache方法)   byte[] getTableName() 获取表名   Configuration getConfiguration(): 获取HTable实例中的配置   HTableDescriptor getTableDescriptor(): 获取表的结构   static boolean

第1章 HBase简介

人盡茶涼 提交于 2020-01-20 01:13:30
1、什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。 官方网站: http://hbase.apache.org – 2006年Google发表BigTable白皮书 – 2006年开始开发HBase – 2008年北京成功开奥运会,程序员默默地将HBase弄成了Hadoop的子项目 – 2010年HBase成为Apache顶级项目 – 现在很多公司二次开发出了很多发行版本,你也开始使用了。 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。 HBase是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务

15个nosql数据库

喜欢而已 提交于 2020-01-20 00:39:16
1、MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万~1.5万次读写请求。MongoDB还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。 MongoDB也有一个Ruby的项目MongoMapper,是模仿Merb的DataMapper编写的MongoDB接口,使用起来非常简单,几乎和DataMapper一模一样,功能非常强大。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名

OpenTSDB介绍

爱⌒轻易说出口 提交于 2020-01-19 21:43:34
OpenTSDB 2.0, the scalable, distributed time series database可扩展、分布式时间序列数据库 1、背景 一些老的监控系统,它常常会出现这样的问题: 1)中心化数据存储进而导致单点故障。 2)有限的存储空间。 3)数据会因为时间问题而变得不准确。 4)不易于定制图形。 5)不能扩展采集数据点到100亿级别。 6)不能扩展metrics到K级别。 7)不支持秒级别的数据。 OpenTSDB解决上面的问题: 1、它用 hbase存储所有的时序 (无须采样)来构建一个分布式、可伸缩的时间序列数据库。 2、它支持 秒级数据采集所有metrics ,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。 3、OpenTSDB可以从 大规模的集群( 包括集群中的网络设备、操作系统、应用程序)中 获取相应的metrics并进行存储、索引以及服务 从而使得这些数据更容易让人理解,如web化,图形化等。 对于运维工程师而言,OpenTSDB可以获取基础设施和服务的实时状态信息,展示集群的各种软硬件错误,性能变化以及性能瓶颈。 对于管理者而言,OpenTSDB可以衡量系统的SLA,理解复杂系统间的相互作用,展示资源消耗情况。集群的整体作业情况,可以用以辅助预算和集群资源协调。 对于开发者而言,OpenTSDB可以展示集群的主要性能瓶颈