![](https://img-blog.csdnimg.cn/0ffa9e9058084e488aabd11ba08edb01.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
hbase
文章平均质量分 70
no sql数据库
做一个有趣的人Zz
天下唯庸人无咎无誉
展开
-
Hbase14:HBase扩展内容
一、Hive 与 HBase 整合Hive提供了与HBase的集成,可以在HBase表上使用HQL语句进行查询,插入操作以及进行join和union等复杂查询。Hive整合HBase后的使用场景:1、通过Hive把数据加载到HBase中,数据源可以是文件也可以是Hive中的表。2、通过整合,让HBase支持JOIN、GROUP等SQL查询语法。3、通过整合,不仅可完成HBase的数据实时查询,也可以使用Hive查询HBase中的数据完成复杂的数据分析。注意:Hive查询HBase中的数据,性能一原创 2022-03-07 09:23:57 · 424 阅读 · 0 评论 -
Hbase13:HBase 调优策略
一、预分区HBase默认新建的表中只有一个Region,这个Region的Rowkey是没有边界的,即没有startRowkey和endRowkey,在数据写入时,所有数据都会写入这个默认的Region随着数据量的不断增加,此Region已经不能承受不断增长的数据量,会进行Split,分裂成2个Region。在这个过程中,会产生两个问题:1、数据往一个Region上写,会有写热点问题。2、Region split会消耗宝贵的集群IO资源。基于此我们可以控制在建表的时候,创建多个空Region,原创 2022-03-07 09:23:45 · 967 阅读 · 0 评论 -
Hbase12:HBase连接池
一、HBase连接池注意:HBase2.1.2之后的版本,无需创建HBase线程池,HBase2.1.2提供的代码已经封装好,只需创建调用即可。Connection conn = ConnectionFactory.createConnection(conf);//conn在获取Table的时候,底层默认会从线程池中获取一个连接Table table = conn.getTable(TableName.valueOf("s1"));所以table在用完之后可以直接调用close方法即可,在程序关原创 2022-03-07 09:23:34 · 2428 阅读 · 0 评论 -
Hbase11:【案例】批量导出:TableMapReduceUtil或者HBase内部提供的Export工具类
一、批量导出批量导出两种方式:利用TableMapReduceUtil将数据导出 (需要开发MapReduce代码)利用HBase内部提供的Export工具类二、批量导出之TableMapReduceUtil将HBase中的表batch1中的数据导出到hdfs上面表batch1中的数据如下:hbase(main):001:0> scan 'batch1'ROW COLUMN+CELL原创 2022-03-07 09:23:19 · 889 阅读 · 1 评论 -
Hbase10【案例】批量导入:使用MapReduce封装好的方法或者利用Bulkload
一、批量导入批量导入两种方式:利用MapReduce中封装好的方法。在map阶段,把数据封装成Put操作,直接将数据入库。利用Bulkload。首先使用MapReduce直接生成HFile文件,然后再通过Bulkload将HFile文件直接加载到表中。Bulkload的优势:通过MR生成HBase底层HFile文件,直接加载到表中,省去了大部分的RPC和写过程。二、批量导入之 MapReduce1、首先初始化输入数据在linux中创建文件:hbase_import.dat注意:字段分隔符原创 2022-03-07 09:23:06 · 900 阅读 · 0 评论 -
Hbase09:【案例】Scan和Filter结合的案例
一、先创建表,初始化数据create 's1','c1','c2'put 's1','a','c1:name','zs'put 's1','a','c1:age','18'put 's1','a','c2:score','99'put 's1','b','c1:name','jack'put 's1','b','c1:age','21'put 's1','b','c2:score','85'put 's1','c','c1:name','tom'put 's1','c','c1:ag原创 2022-03-07 09:22:52 · 1113 阅读 · 0 评论 -
Hbase08:HBase高级用法:生存时间(TTL)、版本数、压缩、数据块、数据块缓存、布隆过滤器、Scan、Scan的Java API用法、常见的Filter
一、列族高级设置1、生存时间(TTL)应用系统经常需要从数据库里删除老数据,配置此项,可使数据增加生命周期,超过该配置时间的数据,将会在大合并时“被删除”。(单位:秒)create 't3', {NAME => 'cf1', TTL => '18000'}desc 't3'2、版本数在0.96的版本之前默认每个列族是3个version, 0.96之后每个列族是1个version,在大合并时,会遗弃过期的版本。create 't4', {NAME => 'cf1', VE原创 2022-03-07 09:22:31 · 1297 阅读 · 0 评论 -
Hbase07:深入HBase【一些理论】
一、Region概念解释Region可以翻译为区域,在HBase里面,一个表中的数据,会按照行被横向划分为多个Region。每个Region,按照存储的Rowkey的最小行键和最大行键指定的,使用区间[start Rowkey,end Rowkey)解释:如果一个文件中数据量很大的时候,从这个大文件中读取数据肯定会比较慢打开一个小文件查找数据和打开一个大文件查找数据的效率是不一样的看下面这个图:在这个图里面,表t1刚创建的时候默认只有1个Region,后来数据量多了以后,Region会自动原创 2022-03-06 09:19:02 · 628 阅读 · 0 评论 -
Hbase06:Java操作HBase:增删改查操作
一、创建maven项目创建maven项目:db_hbase二、添加依赖由于需要操作HBase,所以需要在pom.xml中添加hbase-client依赖<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>2.2.7</version></d原创 2022-03-06 09:18:50 · 1598 阅读 · 0 评论 -
Hbase05:HBase 常用Shell命令:基础命令、DDL命令、增删改查、命名空间相关命令
一、HBase 常用Shell命令HBase集群启动之后,下面我们来操作一下HBase1、HBase两种形式HBase的使用在工作中主要分为两种形式1、在开发和调试阶段,我们会通过HBase自带的shell命令行去操作,可以执行创建表,添加数据,修改数据之类的操作,比较方便2、在程序上线运行阶段,需要通过代码来操作HBase,HBase提供的有JavaAPI可以使用在这里我们先看一下HBase中常用的一些shell命令2、HBase命令分类在这里可以把HBase中的命令总结为三种1、基础命原创 2022-03-06 09:18:37 · 3927 阅读 · 0 评论 -
Hbase04:Hbase安装部署【集群】
一、Hbase安装部署【集群】HBase集群也是支持主从架构的,在这计划使用bigdata01、02、03这三台机器。建议把HBase的从节点和Hadoop集群的从节点部署在相同的机器上面,这样可以最大化利用数据本地化的特性。所以最终的节点规划如下:bigdata01 HMaster(HBase的主节点,主节点可以支持多个,实现HA)bigdata02 HRegionserver(HBase的从节点)bigdata03 HRegionserver(HBase的从节点)二、安装部署1、基原创 2022-03-06 09:18:04 · 844 阅读 · 0 评论 -
Hbase03:Hbase安装部署【单机】
原创 2022-03-06 09:17:19 · 869 阅读 · 0 评论 -
Hbase02:Hbase安装部署前环境准备【Hadoop安装部署】【Zookeeper安装部署】
一、HBase安装部署HBase需要依赖于Hadoop(HDFS)和Zookeeper服务。注意:这里集群部署和非集群部署都可以看你机器资源是否足够。Hadoop安装部署见:Hadoop02:Hadoop分布式集群安装Hadoop01:伪分布集群【单机】部署HadoopZookeeper的安装部署见:这里待补充。HBase支持伪分布集群和分布式集群在具体安装HBase集群之前,我们需要先确认JDK的版本和Hadoop的版本HBase与JDK版本对应关系如下:HBase与Hadoop版原创 2022-03-06 09:17:01 · 1614 阅读 · 0 评论 -
Hbase01:Hbase简介
一、什么是Hbase在前面我们学习过了Hive,一句话概括Hive就是一个数据仓库,更像一个传统意义上的SQL数据库,主要用作数据仓库数据分析,更加强调离线的数据分析,为公司各个业务部门提供数据支撑。但是在我们大数据的处理过程中,不光需要进行OLAP的操作,在有些情况下,也经常需要对数据进行记录级别的更新、删除等操作,也就是OLTP(联机事务处理)的操作,这是Hive所办不到的,那么这个时候就不能用Hive来为我们处理OLTP的业务了,因为Hive不支持事务,那我们使用Oracle总可以吧,当然对于一定范原创 2022-03-06 09:13:56 · 874 阅读 · 0 评论