`
sunasheng
  • 浏览: 118742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Hbase基本API的使用

阅读更多
package test;

import java.util.Map;
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.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;


public class HbaseDemo 
{
    //HBase是基于Hadoop的开源数据库,他以Google的BigTable为原型实现的
    //Region服务器
    //HBase在行的方向上将表分成多个Region,每个Region包含一定范围内的数据。随着表中的数据不断的增加    
    //一个Region会被分成多个新的Region
    //Region是HBase中分布式存储和负载均衡的最小单位,即一个表所有的Region会被分到多个Region服务器上
    //每个Region由一个或多个Store组成,每个Store保存一个列族的所有的数据,
    //每个Store由一个或多个memStore组成
     
    //主服务器
    //HBase每个时刻只有一个HMaster(主服务器程序)在运行HMaster将Region分配给Region服务器
    public static void main(String[] args) throws Exception{
    Configuration conf = HBaseConfiguration.create(); //初始化HBase的配置文件
    conf.set("hbase.zookeeper.quorum", "UbubtuSlave1,UbuntuSlave2,UbuntuSlave3");//指定HBase使用的Zookeeper的地址
    HBaseAdmin admin = new HBaseAdmin(conf);//实例化HBaseAdmin(该类用于对表的元数据进行操作并提供了基本的管理操作)

    HTableDescriptor tableDescriptor = new HTableDescriptor("tab1".getBytes());
    tableDescriptor.addFamily(new HColumnDescriptor("fam1"));
    admin.createTable(tableDescriptor);//创建一张新表,参数为类HTableDescriptor,其中是对表名和相关的列族的描述
    HTable table = new HTable(conf,"tab1"); //可对表进行相关操作的类

    Put putRow1 = new Put("row1".getBytes());//可以向表中插入数据,初始化时可以传递一个行键,表示向那一行插入数据
    putRow1.add("fam1".getBytes(), "coll".getBytes(),"vall".getBytes());//插入数据
    table.put(putRow1);

    System.out.println("add row2");
    Put putRow2 = new Put("row2".getBytes());
    putRow2.add("fam1".getBytes(), "col2".getBytes(), "val2".getBytes());
    putRow2.add("fam1".getBytes(), "col3".getBytes(), "val3".getBytes());
    table.put(putRow2);

    for(Result row:table.getScanner("fam1".getBytes()))//table.getScanner获得某一列族的所有数据,方法返回Result类
    {
        System.out.format("ROW\t%s\n", new String(row.getRow()));
        for(Map.Entry<byte[],byte[]> entry :row.getFamilyMap("fam1".getBytes()).entrySet())
        {
            //Result.getFamilyMap()可以获得以列名为key值为value的映射表
            String column = new String(entry.getKey());
            String value = new String(entry.getValue());
            System.out.format("COLUMN\tfam1:%s\t%s\n", column,value);
        }
      }

    admin.disableTable("tab1");//删除表tab1
    admin.deleteTable("tab1");//删除表tab1
    }
}
 

 

分享到:
评论

相关推荐

    Hbase基本用法简介

    Hbase shell 、Hbase api、Hbase 配置

    Hbase技术原理详解及案例分析

    第一部分、详细介绍了分布式数据库和Hbase的发展由来,基本原理,应用场景。第二部分,对Hbase进行基本的概述,主要...第四部分,通过一个小的java api案例,介绍Hbase的开发使用,详细分析hbase的应用场景和优化方式。

    Hbase+Spring boot实战分布式文件存储

    并对HBase进行实战操作,讲解基本的shell命令及java api。重点讲解如何通过过滤器筛选数据... 3-1 HBase写流程 3-2 HBase读流程 3-3 HBase模块协作 3-4 HBase实战:Shell命令实战 3-5 HBase实 战:Java Api实现HBase...

    新版全面系统完整的Hbase视频教程

    在本课程中,主要讲述了HBase详细的架构原理及特点、HBase内部各个角色的详细介绍、安装配置、HBase的Shell操作、新旧版本的读写数据详细流程、HBase的API操作、使用MapReduce以及Hive对HBase数据分析、Rowkey设计、...

    spark大作业.zip

    使用Spark框架进行网站用户购物分析 目的 1、熟悉Linux系统、MySQL、Spark、HBase、Hive、Sqoop、R、Eclipse、IntelliJ Idea...6、使用HBase Java API把数据从本地导入到HBase中 7、使用R对MySQL中的数据进行可视化分析

    通俗易懂的Hbase升级版教程(含配套资料)

    在本课程中,主要讲述了HBase详细的架构原理及特点、HBase内部各个角色的详细介绍、安装配置、HBase的Shell操作、新旧版本的读写数据详细流程、HBase的API操作、使用MapReduce以及Hive对HBase数据分析、Rowkey设计、...

    spark-on-hbase:通用Spark模块,用于在HDD表中进行扫描,联接以及对RDD进行联接和变异

    Scala 2.10和Spark 1.4.1的,但是可以通过更改pom.xml中的versions属性来为较老的API创建分支(对于基本用例,不需要dataframes api)因此,实际上任何版本&gt; 0.92的spark版本都可以使用,但对于HBase旧API,围绕...

    大数据视频_HBase视频教程

    在本课程中,主要讲述了HBase详细的架构原理及特点、HBase内部各个角色的详细介绍、安装配置、HBase的Shell操作、新旧版本的读写数据详细流程、HBase的API操作、使用MapReduce以及Hive对HBase数据分析、Rowkey设计、...

    Hbase安装及客户端测试及笔记

    配置文件同步其他服务器启动服务查看HBase 页面HBase Shell操作基本操作表的操作HBase数据结构RowKeyColumn FamilyCellTime Stamp命名空间Hbase 原理读流程写流程数据Flush过程数据合并过程HBase Api 操作环境准备...

    HBase最佳实践–Scan用法大观园

    HBase从用法的角度来讲其实乏陈可善,所有更新插入删除基本一两个API就可以搞定,要说稍微有点复杂的话,Scan的用法可能会多一些说头。而且经过笔者观察,很多业务对Scan的用法可能存在一些误区(对于这些误区,笔者...

    Storm流计算项目:1号店电商实时数据分析系统-11.基于HBase的Dao基类和实现类开发一.pptx

    06.Kafka基本操作和最优设置 07.Kafka Java API 简单开发测试 08.storm-kafka 详解和实战案例 09.S图表框架HighCharts介绍 10.HBase快速入门 11.基于HBase的Dao基类和实现类开发一 12.基于HBase的Dao基类和实现类...

    BigData:Hadoop,Hbase,Scala,Spark

    BigDataHadoop,Hbase,Scala,Spark等hadoop:基于贝叶斯分类器的情感分析hbase:hbase的JavaAPI的基本操作spark:scala基础和spark基础

    Hadoop+Hive+Spark+Kafka+Zookeeper+Flume+Sqoop+Azkaban+Scala

    Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 CLI 和 Beeline 命令行的基本使用 常用 DDL 操作 分区表和分桶表 视图和索引 常用 DML 操作 数据...

    大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南

    HDFS Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 Hive Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 Hive CLI 和 Beeline 命令行的基本使用 Hive 常用 DDL 操作 Hive 分区表和分桶表 Hive 视图...

    Storm流计算项目:1号店电商实时数据分析系统-07.Kafka Java API 简单开发测试.pptx

    06.Kafka基本操作和最优设置 07.Kafka Java API 简单开发测试 08.storm-kafka 详解和实战案例 09.S图表框架HighCharts介绍 10.HBase快速入门 11.基于HBase的Dao基类和实现类开发一 12.基于HBase的Dao基类和实现类...

    asyncbigtable:AsyncHBase的实现,但在Google的Cloud Bigtable服务之上

    它使用链接Google Bigtable库的Apache HBase 1.0 API。 该库最初是asynchbase 1.5.0库的一个分支,因此人们可能会发现乍一看似乎有些奇怪的代码。 我们正在努力清理代码库并删除不相关的依赖项。 基本安装 与原始...

    mass_record:HBaseRuby客户端

    它通过Thrift提供基本的API,并提供具有高级功能的ORM。 请参阅HBase模型架构简介: 了解表/行/列族/列/单元格的术语: HBase要求MassiveRecord正在关注HBase的Cloudera软件包: : 目前,MassiveRecord已针对HBase ...

    大型分布式网站架构与实践

     1.3.5 ZooKeeper API使用简介 43  1.3.6 zkClient的使用 47  1.3.7 路由和负载均衡的实现 50  1.4 HTTP服务网关 54  第2章 分布式系统基础设施 58  本章主要介绍和解决如下问题:  分布式缓存memcache的...

    cloud-bigtable-examples:如何将Cloud Bigtable与GCE mapreduce以及独立应用程序一起使用的示例

    Google Cloud Bigtable示例 比数据仓库更大,足够快以进行实时访问,并且比运行虚拟机便宜。 支持Google的享誉全球的数据库现... -Cloud Bigtable的简单命令行界面,向您展示如何使用本地HBase API进行基本操作 一个最

Global site tag (gtag.js) - Google Analytics