hbase

#IT明星不是梦#Hadoop整合Hbase案例详解

拈花ヽ惹草 提交于 2020-02-26 01:14:25
需求:编写mapreduce程序实现将hbase中的一张表的数据复制到另一张表中 * 要求:读取HBase当中user这张表的f1:name、f1:age数据,将数据写入到另外一张user2表的f1列族里面去==**** 第一步:创建表 注意: 两张表的列族一定要相同 /** create 'user','f1' put 'user','rk001','f1:name','tony' put 'user','rk001','f1:age','12' put 'user','rk001','f1:address','beijing' put 'user','rk002','f1:name','wangwu' create 'user2','f1' */ 第二步:创建maven工程并导入jar包 pom.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4

Hbase的API案例实战

五迷三道 提交于 2020-02-26 00:14:27
1、创建maven工程 自动导包(需要从cloudera仓库下载,耗时较长, 耐心等待 ) 如下内容作为maven工程中pom.xml的repositories的内容 <repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.6.0-mr1-cdh5.14.2</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.2.0-cdh5.14.2</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server<

Hbase的region合并与拆分详解

不羁的心 提交于 2020-02-25 23:32:05
1、region 拆分机制 region中存储的是大量的rowkey数据 ,当region中的数据条数过多的时候,直接影响查询效率.当region过大的时候.hbase会拆分region , 这也是Hbase的一个优点 . HBase的region split策略一共有以下几种: 1、 ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 但是在生产线上这种切分策略却有相当大的弊端:切分策略对于大表和小表没有明显的区分。阈值(hbase.hregion.max.filesize)设置较大对大表比较友好,但是小表就有可能不会触发分裂,极端情况下可能就1个,这对业务来说并不是什么好事。如果设置较小则对小表友好,但一个大表就会在整个集群产生大量的region,这对于集群的管理、资源使用、failover来说都不是一件好事。 2、 IncreasingToUpperBoundRegionSplitPolicy 0.94版本~2.0版本默认切分策略 切分策略稍微有点复杂,总体看和ConstantSizeRegionSplitPolicy思路相同,一个region大小大于设置阈值就会触发切分

Hbase数据存储原理与读写详解

﹥>﹥吖頭↗ 提交于 2020-02-25 19:56:21
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'

Java 操作 HBase 教程

本小妞迷上赌 提交于 2020-02-25 00:30:56
一、简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API。我们可以通过 hbase-client 来实现 HBase 数据库的操作。所以,这次主要介绍该组件的基本用法。 在使用 hbase-client 之前,有几个要点需要注意: 客户端需要能访问 Zoopkeeper,再获得 HMaster、RegionServer 实例进行操作 客户端需运行在HBase/Hadoop 集群内,HBase会使用 hostname 来定位节点,因此要求客户端能访问到对应的主机名(或子域名) 如果是远程客户端则需要配置本地的hosts文件。 下面这个图,有助于理解 Client 与 HBase 集群的交互架构: 下面开始介绍 client 的使用。 二、hbase-client 引入 在 Maven 的 pom.xml 中添加依赖: org.apache.hbase hbase-client 2.1.5 slf4j-api org.slf4j slf4j-log4j12 org.slf4j org.apache.hbase hbase 2.1.5 这里需要注意的是

HBase数据导出到HDFS

余生颓废 提交于 2020-02-23 13:43:24
一、目的 把hbase中某张表的数据导出到hdfs上一份。 实现方式这里介绍两种:一种是自己写mr程序来完成,一种是使用hbase提供的类来完成。 二、自定义mr程序将hbase数据导出到hdfs上 2.1首先看看hbase中t1表中的数据: 2.2mr的代码如下: 比较重要的语句是 job.setNumReduceTasks(0);//为什么要设置reduce的数量是0呢?读者可以自己考虑下 TableMapReduceUtil.initTableMapperJob(args[0], new Scan(),HBaseToHdfsMapper.class ,Text.class, Text.class, job);//这行语句指定了mr的输入是hbase的哪张表,scan可以对这个表进行filter操作。 public class HBaseToHdfs { public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); Job job = Job.getInstance(conf, HBaseToHdfs.class.getSimpleName()); job.setJarByClass(HBaseToHdfs.class);

Is it possible to store graphs hbase? if so how do you model the database to support a graph structure?

人走茶凉 提交于 2020-02-20 05:09:38
问题 I have been playing around with using graphs to analyze big data. Its been working great and really fun but I'm wondering what to do as the data gets bigger and bigger? Let me know if there's any other solution but I thought of trying Hbase because it scales horizontally and I can get hadoop to run analytics on the graph(most of my code is already written in java), but I'm unsure how to structure a graph on a nosql database? I know each node can be an entry in the database but I'm not sure

Hbase的region合并与拆分

安稳与你 提交于 2020-02-18 03:32:26
1、region 拆分机制 region中存储的是大量的rowkey数据 ,当region中的数据条数过多的时候,直接影响查询效率.当region过大的时候.hbase会拆分region , 这也是Hbase的一个优点 . HBase的region split策略一共有以下几种: 1、 ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 但是在生产线上这种切分策略却有相当大的弊端:切分策略对于大表和小表没有明显的区分。阈值(hbase.hregion.max.filesize)设置较大对大表比较友好,但是小表就有可能不会触发分裂,极端情况下可能就1个,这对业务来说并不是什么好事。如果设置较小则对小表友好,但一个大表就会在整个集群产生大量的region,这对于集群的管理、资源使用、failover来说都不是一件好事。 2、 IncreasingToUpperBoundRegionSplitPolicy 0.94版本~2.0版本默认切分策略 切分策略稍微有点复杂,总体看和ConstantSizeRegionSplitPolicy思路相同,一个region大小大于设置阈值就会触发切分

快速学习-HBase简介

筅森魡賤 提交于 2020-02-17 11:40:02
第1章 HBase简介 1.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

大数据复习

时光毁灭记忆、已成空白 提交于 2020-02-16 21:18:56
1、简述HBase的支持的3种检索方式: ^ (1)通过单个Rowkey访问,即按照某个Rowkey键值进行get操作,这样获取唯一一条记录; (2)通过Rowkey的range进行scan,即通过设置startRowKey和endRowKey , 在这个范 围内进行扫描。这样可以按指定的条件获取一批记录; (3)全表扫描,即直接扫描整张表中所有记录,Hbase按单个Rowkey检索的效率是很高的,耗时在1毫秒以下,每秒钟可获取1000-2000条记录,不过非key列的查询很慢 2、一个 MapReduce 作业的生命周期大体分为5个阶段 作业提交与初始化 任务调度与监控 任务运行环境准备 任务执行 作业完成 3、什么是分布式计算 答:分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通 过网络互联的计算机•这些计算机互相配合以完成一个共同的目标(我们将这个共同的 目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台 计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计 算机程序称为分布式计算程序:分布式编程就是编写上述程序的过程。 4、假如 Namenode 中没有数据会怎么样? 没有数据的 Namenode 就不能称之为Namenode,通常情况下,Namenode肯定会有数据。 5、 在 Hadoop