HBASE - 技术教程文章

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的解压/压缩速度更快...

hbase 批量插入api

1、数据格式a.txt:1363157985066 1372623050300-FD-07-A4-72-B8:CMCC120.196.100.82i02.c.aliimg.com2427248124681200 1363157995052 138265441015C-0E-8B-C7-F1-E0:CMCC120.197.40.440 2640200 1363157991076 1392643565620-10-7A-28-CC-0A:CMCC120.196.100.9924 1321512 200 1363154400022 139262511065C-0E-8B-8B-B1-50:CMCC120.197.40.440 2400200 1363157993044 1821157596194-71-AC-CD-E6-18:CMCC-EASY120.196.100.99iface....

HBase命令(三) -- 增删改查【代码】

新增//语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp> //新增或者覆盖数据 put ‘表名‘,‘键名‘,‘列名(不是列簇名)‘,‘值‘ //指定的列名下单元格有值就覆盖..没有值就创建.所以HBase的添加数据和修改数据都是put语句.. //最后的时间戳可以不写..默认为系统时间,如果要写..切记不可使用引号括起来 hbase shell> put ‘mytable‘,‘woshikey‘,‘ct:msg‘,‘99999999999999‘ hbase shell> put ‘mytable‘,‘...

熟悉HBase基本操作【图】

1. 以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:学生表(Student)(不包括最后一列)学号(S_No)姓名(S_Name)性别(S_Sex)年龄(S_Age)课程(course)2015001Zhangsanmale23 2015003Maryfemale22 2015003Lisimale24数学(Math)85 2. 用Hadoop提供的HBase Shell命令完成相同任务:列出HBase所有的表的相关信息;list在终端打印出学生表的所有记录数据;向学生表添加课程列族;向课程列族添...

hadoop2.6和hbase1.0单机版安装配置【代码】

环境系统:Ubuntu 14.04 hadoop版本:2.6.0 hbase版本:1.0 jdk版本:1.8 下载地址:Apache上慢慢找吧~~jdk的环境配置这里就不列出来了,首先讲一下hadoop配置吧。hadoop安装1.安装位置:/opt 2.创建hadoop用户组 sudo addgroup hadoop 3.创建hadoop用户 sudo adduser -ingroup hadoop hadoop 4.给hadoop添加权限 sudo vim /etc/sudoers 在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL5.安装ssh sudo apt-get in...

搭建企业级HBase【代码】【图】

主要内容:1. 集群规划2. 企业级系统参数配置3. Hadoop动态替换节点4. HBase动态替换节点----------------------------------------------------------------------------------------------------------------------------------------------------------------------------1. 集群规划 HBase企业级使用常见场景: (1)大数据量(100TB级数据)且有快速随机访问的需求。 (2)容量扩展容易便捷,动态扩展系统容量是必须...

《HBase in Action》 第二章节的学习总结 ---- HBase基本组成

准备工作:采用的HBase版本是:CDH4.5,其中的Hadoop版本是:hadoop-2.0.0-cdh4.5.0;HBase版本是:hbase-0.94.6-cdh4.5.0;Hbase的配置文件的最基本设置conf/hbase-env.sh文件,需明确定义: export JAVA_HOME=/usr/local/jdk1.6.0_31conf/hbase-site.xml文件,需明确定义:<configuration><property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> //表明Hbase的文件存储在哪里?这里需要...

HBase性能测试【代码】

测试工具YCSB自带有hbase pe,但是pe只能统计每个线程执行的情况,不能统计整体的状态。所以还是推荐使用YCSBhttps://github.com/brianfrankcooper/YCSB使用参考文档:https://github.com/brianfrankcooper/YCSB/wiki 前置准备一:首先确认集群配置,比如cpu、内存、磁盘、网络带宽二:创建hbase表,设置表重要属性,比如使用哪种压缩,哪种块编码等等。一般也会创建好预分区,在创建预分区的时候,由于YCSB默认生成的rowkey是以“...

HBase 3、HBase练习题-学生课程表维护与查询【代码】【图】

1、建立学生和课程表  要求:学生可以选择多个课程,每个课程可以被多个学生选择。      查询某个学生所选的所有课程列表      查询某个课程,的学生列表      学生可以修改所选的课程  方案:学生与课程之间是多对多关系,那可以建三张表 学生表、课程表、学生课程关系表  查询某个学生所选的所有课程列表:通过学生ID到学生课程表中去匹配RowKey为studentxxx的记录,然后再根据获取到的记录可以得到课程I...

hbase与hdfs的交互【代码】

hdfs和hbase的交互,和写MapReduce程序类似,只是需要修改输入输出数据和使用hbase的javaAPI对其进行操作处理即可publicclass HBaseToHdfs extends ToolRunner implements Tool {private Configuration configuration;//配置文件需要配置的属性privatestaticfinal String HDFS_NAME = "fs.defaultFS";privatestaticfinal String HDFS_VALUE = "hdfs://mycluster";privatestaticfinal String MAPREDUCE_NAME = "mapreduce.framework.n...

Hbase基本语句用法【代码】

使用hbase shell命令进入hbase:[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# hbase shell SLF4J: Class path contains multiple SLF4Jbindings. SLF4J: Found binding in[jar:file:/usr/hdp/2.4.3.0-227/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in[jar:file:/usr/hdp/2.4.3.0-227/zookeeper/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticL...

数据批量导入HBase【代码】

测试数据:datas1001 lilei 17 13800001111 1002 lily 16 13800001112 1003 lucy 16 13800001113 1004 meimei 16 13800001114 数据批量导入使用mr,先生成HFile文件然后在用completebulkload工具导入。1、需要先在hbase 创建表名:hbase> create ‘student‘, {NAME => ‘info‘}maven pom.xml配置文件如下:<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactI...