HBASE - 技术教程文章

Hbase葱岭探秘--过滤器Api【代码】

Hbase中提供了许多的过滤器接口,以此来对数据进行过滤,使得查询出想要的数据。行过滤器针对行信息进行过滤,参数中可以采用前缀匹配、按位与、或、异或以及子串匹配等匹配的方式。同时可以控制EQUAL、NOT_EQUAL选项进行控制筛选数据的条件。/*** 行过滤器 BinaryComparator NullComparator:是不是空值* BitComparator:通过BitwiseOp类提供的按位与、或、异或操作进行位级别比较 RegexStringComparator:正则匹配* SubStringCompar...

HBase代码学习---Flush流程

引言:在HBase的架构设计中,为了降低写入数据的延迟,将每个写请求分为了两个阶段,第一阶段是接收写请求并将数据写入内存,第二阶段是在后台批量地将数据刷写到磁盘。由此将内存的告诉随机写与磁盘的高速顺序写结合起来,已达到较低写入时延的目的。 基本原理:在hbase系统中,regionserver会不断接收到写请求,并将数据写入memstore,每个region的每个Store都有自己对应的MemStore。当发现某个memstore写满或者系统状态满足一些...

hbase日常运维管用命令,region管理【代码】

1 Hbase日常运维1.1 监控Hbase运行状况1.1.1 操作系统1.1.1.1 IO 群集网络IO,磁盘IO,HDFS IOIO越大说明文件读写操作越多。当IO突然增加时,有可能:1.compact队列较大,集群正在进行大量压缩操作。2.正在执行mapreduce作业可以通过CDH前台查看整个集群综合的数据或进入指定机器的前台查看单台机器的数据: Io wait磁盘IO对集群的影响比较大,如果io wait时间过长需检查系统或磁盘是否有异常。通常IO增加时i...

CentOS 7 伪分布式搭建 hadoop+zookeeper+hbase+opentsdb【代码】【图】

一、前期准备1、配置ip进入文件编辑模式:vim /etc/sysconfig/network-scripts/ifcfg-ens192 原内容:TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens192 UUID=f384ed85-2e1e-4087-9f53-81afd746f459 DEVICE=ens192 ONBOOT=no 修改后内容:TYPE=Etherne...

HBase命令终端测试【代码】【图】

[root@CloudDeskTop ~]# su -l hadoop[hadoop@CloudDeskTop ~]$ cd /software/hbase-1.2.6/bin/[hadoop@CloudDeskTop bin]$ type hbasehbase is /software/hbase-1.2.6/bin/hbase[hadoop@CloudDeskTop bin]$ hbase shell 表空间hbase默认有两个表空间,它们是default和hbase列出有多少个表空间hbase(main):003:0> list_namespaceNAMESPACE default (当未指定表空间时,数据存放在此处) hbase(存放元数据的表空间)查看default表...

hadoop hbase无法启动 2

今天又碰到的问题:Not able to place enough replicas2015-02-08 18:35:43,978 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:web cause:java.io.IOException: File /hbase/ule_file/fbade52c03733ec2aa6d5355052d9c89/recovered.edits/0000000000004181150.temp could only be replicated to 0 nodes, instead of 12015-02-08 18:35:43,978 INFO org.apache.hadoop.ipc.Server: IPC Se...

HBase之disable+drop删除表疑点解惑

HBase中删除一张表先disable ‘tableName’再drop ‘tableName’来删除表问:如果region非常多(但没有访问量了),对线上会有什么影响吗?答:disable只是改了一下ZK里面table的状态。drop也不是现场就把hfile删掉了,只是迁移到.archive目录下,然后有一个过期时间,定期清理的。这个过程需要做flush。所以执行drop命令,region数量对hbase的影响基本为0。主要是hdfs要move一下文件。问:drop后,hfile那些是异步删除还是同步?答...

Hive集成Hbase【代码】

Hive 集成 Hbase1. 使用 HQL 语句创建一个指向 HBase 的 Hive 表-- 尝试以下,所以全部为string类型 CREATE TABLE hbase_table(key string,name string,gender string,age string) -- 指定存储处理器 STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' -- 声明HBase中对应的表的列簇及列名 WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,base:name,base:gender,base:age") -- hbase.table.name声明HBase表名...

Hadoop,HBase集群环境搭建的问题集锦(三)【代码】【图】

16配置IK中文分词器。 1.下载最新的Ik中文分词器。 下载地址:http://ik-analyzer.googlecode.com/files/IK%20Analyzer%202012FF_hf1.zip 2.解压IK Analyzer 2012FF_hf1.zip,获得IK Analyzer 2012FF_hf1。将该目录下的IKAnalyzer.cfg.xml,stopword.dic放到之前安装TOMCAT_HOME/webapps/solr/WEB-INF/classes目录下(没有就创建classes文件夹。) IKAnalyzer2012FF_u1.jar放到之前安装的TOMCAT_HOME/webapps/solr/WEB-INF/lib目...

Hbase万亿级存储性能优化总结

hbase主集群在生产环境已稳定运行有1年半时间,最大的单表region数已达7200多个,每天新增入库量就有百亿条,对hbase的认识经历了懵懂到熟的过程。为了应对业务数据的压力,hbase入库也由最初的单机多线程升级为有容灾机制的分布式入库,为及早发现集群中的问题,还开发了一套对hbase集群服务和应用全面监控的报警系统。总结下hbase优化(针对0.94版本)方面的一些经验也算对这两年hbase工作的一个描述。服务端1.hbase.regionserver....

HBase里的HStore【图】

Store在HBase里称为HStore。HStore包括MemStore和StoreFiles。 原文:http://www.cnblogs.com/zlslch/p/6143599.html

HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master

windows下开发HBase应用程序,HBase部署在linux环境中,在运行调试时可能会出现无法找到主机,类似异常信息如下:java.net.UnknownHostException: unknown host: master解决办法如下: 在C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下信息:192.0.0.1 master原文:http://blog.csdn.net/lifuxiangcaohui/article/details/40861079

数据分页处理系列之二:HBase表数据分页处理【代码】

HBase是Hadoop大数据生态技术圈中的一项关键技术,是一种用于分布式存储大数据的列式数据库,关于HBase更加详细的介绍和技术细节,朋友们可以在网络上进行搜寻,笔者本人在接下来的日子里也会写一个HBase方面的技术专题,有兴趣的朋友们可以稍微的期待一下。不过本章节的重点是介绍下HBase表数据的分页处理,其他的就不多说了。首先说一下表数据分页中不可回避的一个指标:总记录数。在关系数据库中很容易统计出记录总数,但在HBas...

HBase总结(二十)HBase常用shell命令详细说明

进入hbase shell console $HBASE_HOME/bin/hbase shell 如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户 hbase(main)> whoami表的管理 1)查看有哪些表 hbase(main)>list2)创建表#语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}#例如:创建表t1,有两个family name:f1,f2,且版本数均为2hbase(main)>crea...

通过Java Api与HBase交互【代码】【图】

HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api。import java.io.IOException;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import...

安装HBase【代码】

安装HBase1.默认已经安装好java+hadoop+zookeeper 2.下载对应版本的HBase 3.解压安装包tar zxvf hbase-1.0.2-bin.tar.gz 4.配置环境变量(/etc/profile)#hbaseexport HBASE_HOME=/opt/hbase-1.1.2export PATH=$PATH:$HBASE_HOME/binexport CLASSPATH=$CLASSPATH:$HBASE_HOME/lib保存退出source /etc/profile 5.修改配置文件####backup-masters#### HA备份节点主机名hadoop.slaver1####hbase-env.sh####export JAVA_HOME=/usr/java/j...

Hbase Rowkey设计

因为一直在做hbase的应用层面的开发,所以体会的比较深的一点是hbase的表结构设计会对系统的性能以及开销上造成很大的区别,本篇文章先按照hbase表中的rowkey、columnfamily、column、timestamp几个方面进行一些分析。最后结合分析如何设计一种适合应用的高效表结构。 1、表的属性 (1)最大版本数:通常是3,如果对于更新比较频繁的应用完全可以设置为1,能够快速的淘汰无用数据,对于节省存储空间和提高查询速度有效果。...

HBASE手动触发major_compact【代码】

1.定时执行脚本#!/bin/bash source /etc/profile sh ./hbase shell <<EOF major_compact ‘table_name‘ EOF语法:#Compact all regions in a table: hbase> major_compact ‘t1‘#Compact an entire region: hbase> major_compact ‘r1‘#Compact a single column family within a region: hbase> major_compact ‘r1‘, ‘c1‘#Compact a single column family within a table: hbase> major_compact ‘t1‘, ‘c1‘ 原文:https...

Hbase时间同步

如果Hbase的时间没有同步,启动主节点会起来,子节点的regionServer就不会起来。错误日志如下:aused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.ClockOutOfSyncException): org.apache.hadoop.hbase.ClockOutOfSyncException: Server slave1,60020,1398673427650 has been rejected; Reported time is too far out of sync with master. Time difference of 43201045ms > max allo...

HBase client

通过HBase client访问HBase时,配置如下:Configuration conf = HBaseConfiguration.create();// Zookeeper地址 conf.set(HConstants.ZOOKEEPER_QUORUM, "master.hadoop");//Zookeeper端口conf.set(HConstants.ZOOKEEPER_CLIENT_PORT, "2181");//Zookeeper节点父目录 conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/hbase-unsecure"); HBaseAdmin admin = new HBaseAdmin(conf); boolean b = admin.tableExists("表名"); Sys...

Hbase中rowkey设计原则

1.热点问题  在某一时间段,有大量的数据同时对一个region进行操作 2.原因  对rowkey的设计不合理  对rowkey的划分不合理 3.解决方式  rowkey是hbase的读写唯一标识  最大长度是64KB。 4.核心原则  设计必须按照业务需求进行设计 5.长度原则  经验:10~100字节可以  官方:16字节,因为操作系统时8字节进行存储 6.散列原则  划分region是按照rowkey的头部进行划分。  有几种方式:  )组合字段    id+ti...

hbase系列之初识hbase【图】

一、概述  在hadoop生态圈里,hbase可谓是鼎鼎大名。江湖传言,hbase可以实现数十亿行X数百万列的实时查询,可横向扩展存储空间。如果传言为真,那得好好了解了解hbase。本文从概念上介绍hbase,稍微有点抽象,但这是学习hbase必须要了解的基础理论;如果想直接了解hbase的实操内容,可跳过本博文。二、hbase介绍  先看看hbase官方的介绍:hbase是hadoop数据库,是一个分布式的,可扩展的大数据存储库;当需要对大数据进行随机...

HBase应用开发回顾与总结系列之四:HBase配置管理类接口设计【代码】

利用Eclipse进行HBase应用开发时,至少需要确定三个配置信息,如下表所示:#hbase config#HMaster服务部署主机及端口号hbase.master=hdp-wuyong:60010#Zookeeper端口号 hbase.zookeeper.property.clientPort=2181#Zookeeper服务部署主机信息 hbase.zookeeper.quorum=hdp-songjiang,hdp-lujunyi,hdp-wuyong我们将以上信息配置进hadoop.config.properties文件中,系统调用HBase接口方法之前,初始化加载此配置信息即可。对HBase配置信...

HBase管理与监控——HMaster或HRegionServer自动停止挂掉【代码】【图】

问题描述HBase在运行一段时间后,会出现以下2种情况:1、HMaster节点自动挂掉;通过jps命令,发现HMaster进程没了,只剩下HRegionServer,此时应用还能正常往HBase写入数据此时以下界面无法打开: 2、HRegionServer节点自动挂掉通过jps命令,发现HRegionServer进程没了,此时应用往HBase写入数据时不报错 问题排查问题1:查看HMaster节点的日志,出现一些异常信息,且跟zk有关。以下标红的字说明:休眠了64293ms而不是3000ms,这可...

《HBase in Action》 第一章节的学习总结 ---- HBase是啥

1.HBase模仿了Google的BigTable,是一种开源的,面向列族的数据库。它基于行键(rowkey),列键(column key)和时间戳(TimeStamp)来建立索引。HBase是建立在分布式集群中的。HBase的最佳合作伙伴是Hadoop(提供HDFS文件系统和MapReduce操作)和Zookeeper(管理分布集群)2.HBase的安装分为三种模式:单机,伪分布式和全分布式,这也是和Hadoop的三种模式一一对应的。3.我使用的CDH4,里面提供了hadoop-2.0.0-cdh4.5.0.tar.gz,h...

Hive HBase 整合【图】

环境说明:l hadoop:2.4.0l Zookeeper:3.4.6l Hbase:0.96l Hive:0.13.1 1. Hive整合HBase原理Hive与HBase整合的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠Hive安装包\apache-hive-0.13.1-bin\lib\hive-hbase-handler-0.9.0.jar工具类,它负责Hbase和Hive进行通信的。Hive和HBase通信原理如下图:2. Hive的安装Step01:上传apache-hive-0.13.1-bin到Linux目录下说明:这里使用的是最新版本稳定版,...

HBase从入门到精通系列:误删数据如何抢救?

云栖君导读:有时候我们操作数据库的时候不小心误删数据,这时候如何找回?mysql里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了。如果是HBase,你没有做备份误删了又如何恢复呢? 数据保护当误删数据发生时候,不管三七二十一,第一要务是进入hbase shell,执行如下命令: 如果误删一张表的有多个family里的数据,需要都执行一下: alter ‘tt‘, { NAME=> ‘f1‘, KEEP_DELETED_CELLS=> TRUE }, { NAME=> ...

HBase入门【代码】

1).上传,解压,重命名,修改环境变量/etc/profile2).修改 hbase-env.sh 文件export JAVA_HOME=/usr/java/jdk1.7.0_27 //Java 安装路径 export HBASE_CLASSPATH=/hadoop/hbase-0.96.2 //HBase 类路径 export HBASE_MANAGES_ZK=true//由 HBase 自己负责启动和关闭 Zookeeper3).编辑 hbase-site.xml 文件<property><name>hbase.rootdir</name>//hbase 中数据存放的HDFS根路径<value>hdfs://hadoop01:9000/hbase</value></property><p...

Hbase中rowkey设计原则

1.热点问题  在某一时间段,有大量的数据同时对一个region进行操作 2.原因  对rowkey的设计不合理  对rowkey的划分不合理 3.解决方式  rowkey是hbase的读写唯一标识  最大长度是64KB。 4.核心原则  设计必须按照业务需求进行设计 5.长度原则  经验:10~100字节可以  官方:16字节,因为操作系统时8字节进行存储 6.散列原则  划分region是按照rowkey的头部进行划分。  有几种方式:  )组合字段    id+ti...

HBase 第四章 HBase原理【图】

1 体系图  HBase中的每张表都通过行键按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过256M就要被分割成两个,这个过程由HRegionServer管理,而HRegion的分配由HMaster管理。  HMaster    1、为Region server分配region    2、负责Region server的负载均衡    3、发现失效的Region server并重新分配其上的region    4、HDFS上的垃圾文件回收    5、处理schema更新请求  HRegionServer ...