hbase

ubuntu16.04 hbase 安装

爱⌒轻易说出口 提交于 2020-01-08 17:38:46
1.解压hbase并修改名称 2.配置hbase 修改conf/hbase-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- /** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *

HBase查找一条数据的过程

拈花ヽ惹草 提交于 2020-01-08 08:29:10
版权声明:本文为博主原创文章,未经博主允许不得转载。 HBase中的Client如何路由到正确的RegionServer 在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除, 查询 数据都需要先找到相应的 RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并 不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究 源码 的基础上揭秘这个过程。 在前面的文章“HBase存储 架构 ”中我们已经讨论了HBase基本的存储架构。在此基础上我们引入两个特殊的概念:-ROOT-和.META.。这是什么?它们是HBase的两张内置表,从存储结构和操作方法的角度来说,它们和其他HBase的表没有任何区别,你可以认为这就是两张普通的表,对于普通表 的操作对它们都适用。它们与众不同的地方是HBase用它们来存贮一个重要的系统信息——Region的分布情况以及每个Region的详细信息。 好了,既然我们前面说到-ROOT-和.META.可以被看作是两张普通的表,那么它们和其他表一样就应该有自己的表结构。没错,它们有自己的表结构,并且这两张表的表结构是相同的,在分析 源码 之后我将这个表结构大致的画了出来

CentOS7.5搭建HBase1.2.6HA集群

最后都变了- 提交于 2020-01-08 08:28:46
一. HBase的 通用 优化 1 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 Hmaster 的高可用配置。 HBase的高可用集群搭建参考: CentOS7.5搭建HBase1.2.6HA集群 2 Hadoop 的通用性优化 1) NameNode 元数据备份使用 SSD 2) 定时备份 NameNode 上的元数据 每小时或者每天备份,如果数据极其重要,可以 5~10 分钟备份一次。备份可以通过定时任务复制元数据目录即可。 3) 为 NameNode 指定多个元数据目录 使用 dfs.name.dir 或者 dfs.namenode.name.dir 指定。这样可以提供元数据的冗余和健壮性, 以免发生故障。 4) NameNode 的 dir 自恢复 设置 dfs.namenode.name.dir.restore 为 true,允许尝试恢复之前失败的 dfs.namenode.name.dir 目录,在创建 checkpoint 时做此尝试,如果设置了多个磁盘,建议允许。 5) HDFS 保证 RPC 调用会有较多的线程数 属性:dfs.namenode

HBase性能优化方法总结

这一生的挚爱 提交于 2020-01-08 05:39:14
1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 有关预分区,详情参见: Table Creation: Pre-Creating Regions ,下面是一个例子: public static boolean createTable(HBaseAdmin admin, HTableDescriptor table, byte[][] splits) throws IOException { try { admin.createTable(table, splits); return true; } catch (TableExistsException e) { logger.info("table " + table.getNameAsString() + " already exists"); // the table already exists... return false; } } public static byte[][]

HBASE小结--待续使用

无人久伴 提交于 2020-01-08 03:50:33
构建在HDFS之上的分布式,面向列的存储系统,使用zookeeper做协同服务,在需要实时读写和随机访问超大规模数据集的时候使用 缺点:非关系型,不支持SQL,数据类型单一(字符串,无类型),之支持单行事物 优点:大(上亿行,百万列),面向列/列簇的存储和控制权限,稀疏存储(对于NULL列不占空间),无模式,多版本 Hbase将数据(storeFile-Hfile二进制流形式)存储在HDFS的数据块儿上,Hbase HRegin server集群中所有region的数据在服务器启动时都被打开的,并且在内存中初始化了一些memstore,加快了响应。 Hadoop的block中的数据文件默认关闭,在需要时才打开,处理完就关闭,增加了响应时间 为什么实时,LSM-Tree + HTable(region分区) + Cache 客户端提交请求,可以获得(-ROOT- .META.)信息缓存在客户端本地,减少查找成本,根据这个信息定位到要查询数据所在的HRegion server服务器,在服务器上定位到与请求对应的region(看下region是否缓存在memstore(按key排序的树形结构缓冲区),有则直接返回,没有则读持久化的storefile(也是按key排序的属性文件,并且为范围查找和block查询优化过))上查找要匹配的数据。 磁盘读取按块读取

HBase 系统架构

这一生的挚爱 提交于 2020-01-08 03:49:59
HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的,分布式的,多版本的,面向列的存储模型。它存储的是松散型数据。 HBase特性: 1 高可靠性 2 高效性 3 面向列 4 可伸缩 5 可在廉价PC Server搭建大规模结构化存储集群 HBase是Google BigTable的开源实现 ,其相互对应如下:            Google            HBase 文件存储系统     GFS             HDFS 海量数据处理     MapReduce Hadoop     MapReduce 协同服务管理    Chubby           Zookeeper HBase关系图: HBase位于结构化存储层,围绕HBase,各部件对HBase的支持情况: Hadoop部件            作用 HDFS              高可靠的底层存储支持 MapReduce            高性能的计算能力 Zookeeper            稳定服务和failover机制 Pig&Hive             高层语言支持,便于数据统计 Sqoop              提供RDBMS数据导入,便于传统数据库向HBase迁移

Hbase节点管理

血红的双手。 提交于 2020-01-08 00:52:59
1.退役节点 (1) shell>balance_switch false 然后, hbase-daemon.sh stop regionserver (2) graceful_stop.sh Usage: graceful_stop.sh [--config &conf-dir>] [--restart] [--reload] [--thrift] [--rest] &hostname> thrift If we should stop/start thrift before/after the hbase stop/start rest If we should stop/start rest before/after the hbase stop/start restart If we should restart after graceful stop reload Move offloaded regions back on to the stopped server debug Move offloaded regions back on to the stopped server hostname Hostname of server we are to stop 这样做,受限会下线region,然后将region部署到别的resionserver上

HBase面试问题

风流意气都作罢 提交于 2020-01-08 00:52:44
一、HBase的特点是什么 1.HBase一个分布式的基于列式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理。 2.HBase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。 3.HBase为null的记录不会被存储. 4.基于的表包含rowkey,时间戳,和列族。新写入数据时,时间戳更新,同时可以查询到以前的版本. 5.HBase是主从架构。Hmaster作为主节点,Hregionserver作为从节点。 二、HBase和hive的区别 注:( 参考HIVE和hbase区别 ) 三、描述HBase的rowkey的设计原则 注:( 描述HBase的rowkey的设计原则 ) 四、描述HBase中scan和get的功能以及实现的异同 HBase的查询实现只提供两种方式: 1、按指定RowKey 获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get) Get 的方法处理分两种 : 设置了ClosestRowBefore 和没有设置的rowlock .主要是用来保证行的事务性,即每个get 是以一个row 来标记的.一个row中可以有很多family 和column. 2、按指定的条件获取一批记录,scan方法(org.apache.Hadoop.hbase

Java连接阿里云HBase示例

a 夏天 提交于 2020-01-08 00:16:40
使用前要在阿里云的 HBase控制台中点击“修改网络白名单”,然后将你的ip地址(会有提示的)添加到网络白名单中,这样以后才能访问。 所需依赖: <dependencies> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-client</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> </dependencies> 官方示例代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.io.compress

大数据---HBase

做~自己de王妃 提交于 2020-01-07 22:05:03
HBase 一:hbase的理解 HBase:是一个基于hadoop的分布式,可扩展,巨大存储仓库,当用户需要对海量的数据进行实时的失效性随机的读写操作,用户可以使用hbase设计一张巨大的表,该表的规模能达到十亿行*数百万列,并且可以运行在商用的硬件集群之上。 hbase:是一个基于hadoop的分布式,可扩展,版本化的巨大的非关系型数据库。 hdfs和hbase的区别:hbase是构建在hdfs之上的一个数据库服务,能够使用户通过hbase数据库服务间接操作hdfs,使用户对hdfs上的数据实现crud操作(细粒度的操作)。 二:传统关系型数据库存在的索引问题 传统的关系型数据库索引特点: 按照搜索条件快速定位当前记录 在数据库中加载所有属性 映射返回需要的字段 而加载所有属性这一行为是多余的,这一部分io的读取对于系统而言是一种浪费,不支持稀疏存储。 解决之道:列的共现性问题—》进行分表 列存储: 将io特性相似的列归为一个簇,列簇为最小的加载单位 hbase中所有的记录都是按照一定顺序排列的:rowkey,列簇,列名,时间戳(默认返回最新的时间戳) 支持稀疏存储,null不存 缺点:值中包含rowkey、列信息、时间戳。 rowkey:等同于关系型数据库中的主键id 列簇:将io特性相似的列归为一个簇,hbase底层会以列簇作为单位进行索引。 列:列簇,列名,时间戳构成