hbase

Hbase 创建表 插入数据Hb

人走茶凉 提交于 2020-02-01 11:03:58
Hbase 创建表 插入数据 创建表 public static void main(String[] args) throws IOException { // Instantiating configuration class 初始化配置文件 Configuration con = HBaseConfiguration.create(); // Instantiating HbaseAdmin class 初始化HbaseAdmin HBaseAdmin admin = new HBaseAdmin(con); // Instantiating table descriptor class 设置表名 HTableDescriptor tableDescriptor = new TableDescriptor(TableName.valueOf("member")); // Adding column families to table descriptor 设置列族名(可设置多个) tableDescriptor.addFamily(new HColumnDescriptor("personal")); tableDescriptor.addFamily(new HColumnDescriptor("professional")); // Execute the table

HBase的rowKey设计技巧

南笙酒味 提交于 2020-02-01 03:17:15
本篇博客小菌为大家带来的是HBase的rowKey设计技巧! HBase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定位。 HBase中rowkey可以唯一标识一行记录,在HBase查询的时候,有以下几种方式: 通过get方式,指定rowkey获取唯一一条记录 通过scan方式,设置startRow和stopRow参数进行范围匹配 全表扫描,即直接扫描整张表中所有行记录 1. rowkey长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte[]形式保存,一般设计成定长。 建议越短越好,不要超过16个字节 ,原因如下: 数据的持久化文件HFile中是按照KeyValue存储的,如果rowkey过长,比如超过100字节,1000w行数据,光rowkey就要占用100*1000w=10亿个字节,将近1G数据,这样会极大影响HFile的存储效率; MemStore将缓存部分数据到内存,如果rowkey字段过长,内存的有效利用率就会降低,系统不能缓存更多的数据,这样会降低检索效率。 2 rowkey散列原则 如果rowkey按照时间戳的方式递增,不要将时间放在二进制码的前面,

HBase的预分区

妖精的绣舞 提交于 2020-02-01 02:21:34
一、为何要预分区? * 增加数据读写效率 * 负载均衡,防止数据倾斜 * 方便集群容灾调度region * 优化Map数量 二、如何预分区? 每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。 三、如何设定预分区? 1、手动指定预分区 hbase(main):001:0> create 'staff','info','partition1',SPLITS => ['1000','2000','3000','4000'] 完成后如图: 2 、使用16进制算法生成预分区 hbase(main):003:0> create 'staff2','info','partition2',{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'} 完成后如图: 3 、分区规则创建于文件中 创建splits.txt文件内容如下: cd /export/servers/ vim splits.txt aaaa bbbb cccc dddd 然后执行: hbase(main):004:0> create 'staff3','partition2',SPLITS_FILE => '/export/servers/splits.txt' 成功后如图: 4

HBase_HBase从介绍到Java客户端开发

回眸只為那壹抹淺笑 提交于 2020-01-31 00:20:00
文章目录 HBase入门认识 HBase介绍 HBase HBase架构 RegionServer集群结构 HBase逻辑存储结构 HBase物理存储结构 HBase安装 前期准备 HBase安装步骤 Hbase启动 HBase验证 备份master HBase命令 HBase 命令介绍 HBase Shell命令介绍 status命令 命名空间namespace相关命令 介绍 create_namespace命令 drop_namespace命令 describe_namespace命令 list_namespace命令 list命令 创建hbase用户表 删除用户表 put命令 HbaseShell使用Java的Api 表赋给临时变量 get命令 scan命令 scan-filter相关命令 scan其他参数 count命令 delete命令 truncate命令 describe命令 Java客户端 Java客户端 HBaseAdmin HTable,HTableDescriptor Put,Get,Scan,Delete HBase连接池 Java客户端编程 HBaseAdmin类详细介绍 HTable类和连接池详细介绍 HBase入门认识 HBase介绍 HBase是参考google的 bigtable 的一个开源产品,建立在hdfs之上的一个提供高可靠性、高性能、列存储

day_03小笔记

≡放荡痞女 提交于 2020-01-29 22:18:32
HDFS的API操作 1.准备工作: 启动集群:start-all.sh 登录 http://hdp-1:50070/ 2.在idea里从hdfs下载文件到本地磁盘 package com.zpark.hdfs; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.Test; import java.io.File; import java.io.IOException; import java.net.URI; public class HdfsClient { //如果这个上传成功了,说明hadoop环境配置成功 // 首先申请获得资源 // URI 统一资源标志符 @Test public void put()throws IOException,InterruptedException{ // FileSystem fileSystem =FileSystem.get(URI.create("hdfs://hdp-1:9000"),new Configuration(),"root"); // fileSystem.copyFromLocalFile(new

Apache Kylin 目录详解

非 Y 不嫁゛ 提交于 2020-01-29 13:47:13
一、Kylin二进制源码目录解析 bin : shell 脚本,用于启动/停止Kylin,备份/恢复Kylin元数据,以及一些检查端口、获取Hive/HBase依赖的方法等; conf : Hadoop 任务的XML配置文件,这些文件的作用可参考 配置页面 lib : 供外面应用使用的jar文件,例如Hadoop任务jar, JDBC驱动, HBase coprocessor 等. meta_backups : 执行 bin/metastore.sh backup 后的默认的备份目录; sample_cube 用于创建样例 Cube 和表的文件。 spark : 自带的spark。 tomcat : 自带的tomcat,用于启动Kylin服务。 tool : 用于执行一些命令行的jar文件。 二、HDFS 目录结构 Kylin 会在 HDFS 上生成文件,根目录是 “/kylin” (可以在 conf/kylin.properties 中定制),然后会使用 Kylin 集群的元数据表名作为第二层目录名,默认为 “kylin_metadata”。 通常,/kylin/kylin metadata目录下会有这么几种子目录:cardinality, coprocessor, kylin-job id, resources, jdbc-resources. cardinality

hbase二级索引

梦想的初衷 提交于 2020-01-29 06:23:25
二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。 这篇文章会以HBase做为对象来讨论如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary index, ITHbase, Facebook方案和官方Coprocessor的介绍。 理论目标 在HBase中实现二级索引与索引Join需要考虑三个目标: 1,高性能的范围检索。 2,数据的低冗余(存储所占的数据量)。 3,数据的一致性。 性能与数据冗余,一致性是相互制约的关系。 如果你实现了高性能地范围检索,必然需要靠冗余索引数据来提升性能,而数据冗余会导致更新数据时难以实现一致性,特别是分布式场景下。 如果你不要求高效地范围检索,那么可以不考虑产生冗余数据,一致性问题也可以间接避免,毕竟share nothing是公认的最简单有效的解决方案。 理论结合实际,下文会以实例的方式来阐述各个方案是如何选择偏重点。 这些方案是经过笔者资料查阅和同事的不断交流后得出的结论,如有错误,欢迎指正: 1,按索引建表 每一个索引建立一个表,然后依靠表的row key来实现范围检索。row key在HBase中是以B+ tree结构化有序存储的,所以scan起来会比较效率。 单表以row key存储索引

CDH版本Hbase二级索引方案Solr key value index

▼魔方 西西 提交于 2020-01-28 12:30:11
概述 在Hbase中,表的RowKey 按照字典排序, Region按照RowKey设置split point进行shard,通过这种方式实现的全局、分布式索引. 成为了其成功的最大的砝码。 然而单一的通过RowKey检索数据的方式,不再满足更多的需求,查询成为Hbase的瓶颈,人们更加希望像Sql一样快速检索数据,可是,Hbase之前定位的是大表的存储,要进行这样的查询,往往是要通过类似Hive、Pig等系统进行全表的MapReduce计算,这种方式既浪费了机器的计算资源,又因高延迟使得应用黯然失色。于是,针对HBase Secondary Indexing的方案出现了。 Solr Solr是一个独立的企业级搜索应用服务器,是Apache Lucene项目的开源企业搜索平台, 其主要功能包括全文检索、命中标示、分面搜索、动态聚类、 数据库 集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr 4还增加了NoSQL支持,以及基于Zookeeper的分布式扩展功能SolrCloud。SolrCloud的说明可以参看: SolrCloud分布式部署 。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展

Hadoop HBase概念学习系列之模式设计(十)

大憨熊 提交于 2020-01-28 03:31:06
   Hbase 与RDBMS的区别在于:HBase的Cell(每条数据记录中的数据项)是具有版本描述的(versioned),行是有序的,列(qualifier)在所属列簇(Column families)存在的情况下,由客户端自由添加。以下的几个因素是Hbase Schema设计需要考虑的问题: 1、 Hbase中没有joins的概念   大表的结构可以使得不需要joins,而解决这一问题。    注意:HBase中没有join的概念,但是,大表的结构可以使其不需要Join操作就能解决Join操作所解决的问题。 2、Row keys 设计   主键,在Region里按字母顺序来排序(byte数组存储)。   写入要分散,如订单表: order_id做逆排序后做rowkey,以便分布式存储,避免数据只保存在个别节点上。   多条件查询时,设为组合row key   注:读取数据只能按row key(及其range)或scan全表扫描,确保查询高效 3、列族CF设计   尽量少,建议CF数量在1-2个。   设计Hbase schema的时候,要尽量只有一个column family。   flush和compaction触发的基本单位都是Region级别。当一个CF有大量的数据的时候会触发整个region里面的其他CF的memstore(其实这些memstore可能仅有少量的数据

Solr与HBase架构设计

早过忘川 提交于 2020-01-28 00:30:39
摘要:本篇是本人在做一个大数据项目 时 ,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度 。 前提: Solr、SolrCloud提供了一整套的数据检索方案,HBase提供了完善的大数据存储机制。 需求: 1、对于添加到HBase中的结构化数据,能够检索出来。 2、数据量较大,达到10亿,100亿数据量 。 3、 检索的实时性要求较高,秒级更新 。 说明: 以下是使用Solr和HBase共同搭建的系统架构 。 1.1 一次性创建索引 l、 删除全索引 效率很高,可以关闭 Solr 后,直接删除 Data 文件。 2、 重新创建全索引 拉取 HBase 中全数据,分批次创建索引。 1.2 增量创建索引 1、触发器发送数据到 Solr 建索引。 配置并使用 HBase 触发器功能,配置实现如下: alter 'angelHbase', METHOD => 'table_att', 'coprocessor' => '/home/hbase/hbase-0.94.18-security/lib/solrHbase.jar|solrHbase.test.SorlIndexCoprocessorObserver|1073741823|' alter 'angelHbase', METHOD =>'table_att_unset', NAME =>