HBASE - 技术教程文章
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 ...
Hadoop之HBase
从BigTable说起:BigTable用于解决互联网的搜索问题1. 建立互联网的索引 爬虫持续不断的抓取新的网页,这些网页每一页一行的存储到BIgTable中 MapReduce计算作业运行在整个表上,生成索引,为网络搜索应用做准备2. 搜索互联网 用户发起网络搜索请求 搜索网络应用查询建立好的索引,从BigTable中得到网页 提交用户 HBase:高可靠,高性能,面向列,可伸缩的分布式数据库。存储非结构化或者半结构数据的松散数据...
《OD学HBase》20160821
一、HBase性能调优1. JVM内存调优MemStore内存空间,设置合理大小memstore.flush.size 刷写大小 134217728 = 128Mmemstore.mslab.enabledpreclose.flush.sizeJVM堆内存初生代内存空间:数据停留时间较短 128~512M -Xmn128M老生代内存空间:数据停留时间比较长,几GB内存碎片 GC清理 -->进程停顿当垃圾过多,GC进程限制应用程序进程的进行GC垃圾回收策略:Parrallel New Collector垃圾回收策略并行标记垃圾回收器 原文:http://ww...
大数据学习(16)—— HBase环境搭建和基本操作【代码】
部署规划HBase全称叫Hadoop Database,它的数据存储在HDFS上。我们的实验环境依然基于上个主题Hive的配置,参考大数据学习(11)—— Hive元数据服务模式搭建。在此基础上,增加HBase的部署规划。我感觉这8G的内存马上要跑不动了。主机RegionServerMasterserver01 ? server02 ? server03 ??安装HBase把HBase解压到/usr目录下,版本是2.26。[root@server01 home]# tar -xvf hbase-2.2.6-bin.tar.gz -C /usr/把解压好的目录权限修改为...
浅谈Hive和HBase区别【图】
出处:http://www.cnblogs.com/zlslch/p/5659641.html. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop。 Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能...
HBase表的架构原理【代码】【图】
HBase整体架构图 Hbase Table的基本单位是Region,一个Table对应多个Region,Table层级关系如下:Table (HBase table) Region (Regions for the table) Store (Store per ColumnFamily for each Region for the table) MemStore (MemStore for each Store for each Region for the table) StoreFile (StoreFiles for each Store for each Region fo...
用Spark向HBase中插入数据【代码】
java代码如下:package db.insert; import java.util.Iterator; import java.util.StringTokenizer;import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.VoidFunction;publicclass SparkInsertData {publicstaticvoid main(String[] args){//初始化sparkContext,SparkConf sparkConf = new SparkConf(...
hive与hbase整合【代码】
配置环境.hadoop 2.4hbase 0.98.3hive 0.13.1(源用的mysql)配置。分2种情况(1.hbase与hive在一台机器上,2.hbase与hive不在同一台机器上) (1)hbase与hive在一台机器上 比较简单,只需要在环境变量里把hbase,hive的home配置好即可。当然也可以按照不在一台进行配置。#config hadoop export HADOOP_HOME=/home/hUser/hadoop-2.4.0 export PATH=$HADOOP_HOME/bin:$PATH#config hbase export HBASE_HOME=/home/hUser/hbase-0...
hbase遇到问题及解决方法【代码】
hbase遇到问题及解决方法1.zookeeper启动报错错误日志启动zookeeper报错信息如下:java.net.NoRouteToHostException: No route to hostat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)at java.net.AbstractPlainSocketImpl.connect(AbstractP...
熟悉常用的HBase操作,编写MapReduce作业【代码】
1. 以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:学生表(Student)(不包括最后一列)学号(S_No)姓名(S_Name)性别(S_Sex)年龄(S_Age)课程(course)2015001Zhangsanmale23 2015003Maryfemale22 2015003Lisimale24数学(Math)85 create ‘Student‘, ‘ S_No ‘,‘S_Name‘, ’S_Sex’,‘S_Age‘ put ‘Student‘,‘s001‘,‘S_No‘,‘2015001‘ put ‘Student‘,‘s001‘,‘S_Name‘,‘...
Hive与Hbase的区别【图】
1. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop。 Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任...
hbase split 源码分析之split策略【代码】
在工作中接触到split,于是查看了这块的源代码,先看到了split的策略,今天就说说这个吧,后续还会有split的其他源码分析和compact相关的源码分析。 看了很多其他人的博客,很多都是转发的,原创的也都没有注明是哪个版本。其实给很多读者造成混淆,我这里是基于Hbase-0.98.13 版本作为分析的,注意:不同版本的此部分源码很可能不一样。 在这个版本中使用的split策略是IncreasingToUpperBoundRegionSplitPolicy。确切来...
HBASE CREATE 命令解析【代码】
create ‘NewsClickFeedback‘,{NAME=>‘Toutiao‘,VERSIONS=>3,BLOCKCACHE=>true,BLOOMFILTER=>‘ROW‘,COMPRESSION=>‘SNAPPY‘,TTL => ‘ 259200 ‘},{SPLITS => [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]} VERSIONscan ‘NewsClickFeedback‘,{VERSIONS => 2} BLOOMFILTERvalue: NONE|ROW|ROWCOL作用:对于get操作以及部分scan操作可以剔除掉不会用到的存储文件,减少实...
HBase Go客户端Row构造注意事项【代码】
1. Hbase 的Go客户端语言使用方法2. Hbase的Row使用注意事项2.1. Row的前几个字段尽量散列2.2. Row的排序是把所有Row中的字符做字典排序我们最近在一个项目中使用Hbase做日志数据的存储,在其之上做一些数据分析工作,相对java来说,团队成员对Go的使用更熟练,所以自然使用Go作为Client的开发语言, 以前从来没有跟Hbase打过交道,本来一个比较简单的任务,愣是磕磕绊绊做了好久。。。本文只说说Hbase的Row构造时的注意事项1 Hbas...
大数据性能调优之HBase的RowKey设计
Hbase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定位。HBase中rowkey可以唯一标识一行记录,在HBase查询的时候,有以下几种方式:通过get方式,指定rowkey获取唯一一条记录通过scan方式,设置startRow和stopRow参数进行范围匹配全表扫描,即直接扫描整张表中所有行记录(较新的hbase还可以通过column和values 进行索引,但是不走...
最新Hadoop-2.7.2+hbase-1.2.0+zookeeper-3.4.8 HA高可用集群配置安装
Ip?主机名程序进程192.168.128.11h1JdkHadoophbaseNamenodeDFSZKFailoverControllerHamster192.168.128.12h2JdkHadoophbaseNamenodeDFSZKFailoverControllerHamster192.168.128.13h3JdkHadoopresourceManager192.168.128.14h4JdkHadoop?resourceManager192.168.128.15h5JdkHadoopZookeeperHbaseDatanodenodeManagerJournalNodeQuorumPeerMainHRegionServer192.168.128.16h6JdkHadoopZookeeperHbaseDatanodenodeManagerJournalNodeQ...
HBase编程 API入门之scan【图】
package zhouls.bigdata.HbaseProject.Test1;import javax.xml.transform.Result;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apac...
mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位是什么?
当SQL满足不了你的需求或者SQL 已经不是必须的或者最佳的选择时,就是你考虑这类NoSQL 的时候了。当你的内存大于你的数据时,schema也不是太确定时,mongodb在这里静静地等待My SQL转业户为了尝鲜过来看热闹的,不改变设计模式,爽在前面痛在后面;当你唯一追求的就是速度,又对memcached的过于简单心存芥蒂,刚好内存也比数据多时,redis俏生生站在那里;大,好大,太大了,我说的是数据,我们128GB内存双路CPU25TB存储只够一星期的...
关于hbase集群
1 一个hadoop data node上运行一个region serverregion server和data node在同一台机器上,这样就保证了数据的局部性。2 hbase region server的构成2.1 WALwrite ahead log。2.2 MemStore写缓存。2.3 BlockCache读缓存。2.4 Hfile3 hbase写数据的过程数据先写入WAL中,写完之后,再写入MemStore中,当MemStore写了足够的数据之后,最后写入一个新的Hfile文件中。3 Hfile文件的结构4 hbase client和hbase交互的过程5 zookeeper的部署...
hbase的四种压缩格式【代码】
Hbase支持的压缩格式:hbase支持的压缩格式:GZ(GZIP),LZ0,LZ4,SnappyGZ:用于冷数据压缩,与Snappy和LZ0相比,GZIP的压缩率更高,但是更消耗CPU,解压/压缩速度更慢。Snappy和LZ0:用于热数据压缩,占用CPU少,解压/压缩速度比GZ快,但是压缩率不如GZ高。Snappy与LZ0相比,Snappy整体性能优于LZ0,Snappy压缩率比LZ0更低,但是解压/压缩速度更快。LZ4与LZ0相比,LZ4的压缩率和LZ0的压缩率相差不多,但是LZ4的解压/压缩速度更快...