hbase

Hbase数据存储与读写详解

坚强是说给别人听的谎言 提交于 2020-02-14 13:06:44
1、HBase的数据存储原理 一个HRegionServer会负责管理很多个region 一个**region*包含很多个store 一个 列族就划分成一个 store** 如果一个表中只有1个列族,那么每一个region中只有一个store 如果一个表中有N个列族,那么每一个region中有N个store 一个store里面只有一个memstore memstore是一块 内存区域 ,写入的数据会先写入memstore进行缓冲,然后再把数据刷到磁盘 一个store里面有很多个 StoreFile , 最后数据是以很多个 HFile 这种数据结构的文件保存在HDFS上 StoreFile是HFile的抽象对象,如果说到StoreFile就等于HFile 每次memstore刷写数据到磁盘,就生成对应的一个新的HFile文件出来 2、HBase数据读流程 说明:HBase集群,只有一张meta表,此表只有一个region,该region数据保存在一个HRegionServer上 1、客户端首先与zk进行连接;从zk找到meta表的region位置,即meta表的数据存储在某一HRegionServer上;客户端与此HRegionServer建立连接,然后读取meta表中的数据;meta表中存储了所有用户表的region信息,我们可以通过 scan 'hbase:meta'

maven常见问题1:jdk jar包冲突

大城市里の小女人 提交于 2020-02-13 02:11:27
1 异常信息 Missing artifact jdk.tools:jdk.tools:jar:1.6 2 问题背景 pom.xml默认配置的jdk版本是1.8,但是引入了一个jar hbase-client,版本号1.3.0,hbase客户端依赖jdk的版本是1.6,所以产生了jar冲突 3 解决办法 使用exclusions 来进行排除依赖 这样就可以将hbase-client 依赖的jdk.tools 排除,也不会再本地加载。 来源: CSDN 作者: 赵ming 链接: https://blog.csdn.net/u013439440/article/details/104284119

【Hbase】hbase java api 增删改查

倖福魔咒の 提交于 2020-02-13 01:02:07
几个主要 Hbase API 类和数据模型之间的对应关系: java类 HBase 数据模型 Admin 数据库(DataBase) HBaseConfiguration Table 表(Table) HTableDescriptor 列簇(Column Family) HColumnDescriptor Put 列修饰符(Column Qualifier) Get Delete Result Scan ResultScanner 基本增删除改查demo package com . study . follow . hbase ; import org . apache . hadoop . conf . Configuration ; import org . apache . hadoop . hbase . * ; import org . apache . hadoop . hbase . client . * ; import org . apache . hadoop . hbase . util . Bytes ; import java . io . IOException ; /** * @author: honey * @date: 2020/2/8 */ public class HbaseDemoTest { static Configuration

HBase异常 -- 汇总

一世执手 提交于 2020-02-12 09:16:09
Server is not running yet 使用hbase shell ,list 命令时,报Server is not running yet hadoop进入了安全模式,需要退出安全模式 ,hadoop dfsadmin -safemode leave ERROR: Can't get master address from ZooKeeper; znode data == null 采用虚拟机时,挂起后,重新打开HBASE,产生的错误,重启HBASE /tmp/hbase-bigdata-master.pid: No such file or directory 修改HBASE的hbase-env.sh 的配置文件,修改HBASE_PID_XX的位置,默认是/tmp/..,容易被删除,导致找不到 HBASE的进程Hmaster一直就消失了 同步系统时间,删除掉Zookeeper中的HBASE节点。重启HBASE 来源: https://www.cnblogs.com/junzifeng/p/11818855.html

在全分布之上搭建hbase

痞子三分冷 提交于 2020-02-11 01:23:14
1、下载hbase 链接:https://pan.baidu.com/s/15V7_-NC0yzZigVEtqA17WQ 提取码:eji9 2、安装hbase 在master节点 $ tar -zxvf hbase-1.4.8-bin.tar.gz -C /opt $ cd /opt/hbase-1.4.8/conf/ $ vi hbase-env.sh 将下面这句话加到文件尾端 export JAVA_HOME=/usr/local/jdk1.8.0_151 3、配置文件 vi hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name>

HBase:客户端API之Admin与Table类的操作

孤人 提交于 2020-02-10 18:39:28
目录 连接HBase Table类:CRUD put 单行put 客户端的写缓冲区 多行Put 原子性Put get 单行Get Result类 多行Get delete 单行delete 多行delete 原子性Delete 批量处理操作 扫描 Scan ResultScanner 缓存和批量处理 Admin类:管理类操作 连接HBase 在HBase架构中的数据层面,HMaster负责管理类的操作(例如表、命令空间的创建删除),而HRegionServer负责表的读写(即CRUD)。对应地在客户端API中有两个类:Admin类与HTable(Table)类,Admin类对象职能类似于HMaster,而HTable的职能类似于HRegionServer。 通常这两个类的对象在一个应用程序中只创建一次,并且它们是由Connection对象获取的,Connection对象需要通过配置文件加载。所以以上对象一般为静态的,并且获取创建的过程在静态块中执行。 需要将core-site.xml、hdfs-site.xml、hbase-site.xml和log4j.properties放在src下 private static Configuration conf; private static Connection conn; private static Admin admin;

hbase thrift java util

ε祈祈猫儿з 提交于 2020-02-09 14:17:34
转载: https://github.com/ssw239/java-thrift-hbase-io/blob/master/HBaseThriftClient.java pom.xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-thrift</artifactId> <version>1.3.1</version> </dependency> ThriftUtil.java package hbase; import java.lang.Object; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.security.MessageDigest; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry;

Apache Sqoop

邮差的信 提交于 2020-02-08 05:24:18
概述 Apache Sqoop™是一种在Apache Hadoop和结构化数据存储(例如关系数据库)之间高效传输批量数据的工具。通过内嵌的MapReduce程序实现关系型数据库和HDFS、Hbase、Hive等数据的导入导出。 安装 1.访问sqoop的网址http://sqoop.apache.org/,选择相应的sqoop版本下载,本案例选择下载的是1.4.7下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,下载完相应的工具包后,解压Sqoop. [ root @CentOS ~ ] # tar - zxf sqoop - 1.4 .7 . bin__hadoop - 2.6 .0 . tar . gz - C / usr / [ root @CentOS ~ ] # cd / usr / [ root @CentOS usr ] # mv sqoop - 1.4 .7 . bin__hadoop - 2.6 .0 sqoop - 1.4 .7 [ root @CentOS ~ ] # cd / usr / sqoop - 1.4 .7 / 2.配置SQOOP_HOME环境变量 [ root @CentOS sqoop - 1.4

HBase基本数据操作详解

这一生的挚爱 提交于 2020-02-07 09:00:48
文章目录 概述 使用 命名空间Namespace 命名空间管理 预定义的命名空间 创建表 删除表 修改表 新增、更新数据Put 常用构造函数 常用方法 实例代码 删除数据Delete 构造函数 常用方法 实例代码 获取单行Get 构造函数 常用方法 实测代码 获取多行Scan 常用构造函数 常用方法 实测代码 概述 对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间。 对于数据操作,HBase支持四类主要的数据操作,分别是: Put :增加一行,修改一行; Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等; Get :获取指定行的所有信息,获取指定行和指定列族的所有colunm,获取指定column,获取指定column的几个版本, 获取指定column的指定版本等; Scan :获取所有行,获取指定行键范围的行,获取从某行开始的几行,获取满足过滤条件的行等。 这四个类都是 org.apache.hadoop.hbase.client的子类,可以到官网API去查看详细信息,本文仅总结常用方法,力争让读者用20%的时间掌握80%的常用功能。 使用 命名空间Namespace 在关系数据库系统中,命名空间namespace指的是一个 表的逻辑分组

hbase性能优化初探

雨燕双飞 提交于 2020-02-07 01:37:17
表的设计 1. 考虑提前设置多个region‘ 2. 列族尽量少 3. raw key的设计:尽量短,有利于业务需求,尽量散列开 考虑提前设置多个region‘ 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 列族尽量少 不要在一张表里定义太多的column family。目前Hbase并不能很好的处理超过2~3个column family的表。因为某个column family在flush的时候,它邻近的column family无论是否达到阀值,也会因关联效应被触发flush,最终导致系统产生更多的I/O,和更多的小文件,然后小文件增多再触发minor compaction raw key的设计:尽量短,有利于业务需求,尽量散列开 在HBase中,row key可以是任意字符串,最大长度64KB,实际应用中一般为10~100bytes,存为byte[]字节数组,一般设计成定长的。row key是按照字典序存储,因此,设计row key时,要充分利用这个排序特点,将经常一起读取的数据存储到一块