hbase

Hadoop 数据库 - HBase

谁说胖子不能爱 提交于 2020-01-17 05:19:50
转自: http://blog.csdn.net/iAm333 1 什么是HBase? HBase,是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。使用HBase技术可以在廉价的PC服务器上搭建起大规模结构化的存储集群。它底层的文件系统使用HDFS,使用Zookeeper来管理集群的HMaster和各Region server之间的通信,监控各Region server的状态,存储各Region的入口地址等。 2. 何时用HBase? 首先想想传统的关系型数据库都有哪些特点,大概的特点有: 支持事务,ACID(原子性、一致性、隔离性和持久性)特性; 行式存储; SQL语句使用起来比较方便; 支持索引、视图等; 在下面几种情况下,可以考虑使用HBase替代关系数据库: 系统需要适应不同种类的数据格式和数据源,不能预先严格定义模式,需要处理大规模数据; 不强调数据之间的关系,所要存储的数据是半结构化或非结构化的; 数据非常稀疏; 想要更好的进行扩展; 比如谷歌就将BigTable用来存储网页的索引数据,索引数据就很好的满足了上面的几点要求。 3. 与Hive、Pig的区别? HBase是低延迟、非结构化和面向编程的,而Hive是高延迟、结构化和面向分析的; Hive本身不存储和计算数据,它完全依赖与HDFS和MapReduce

MLSQL 的使用小记

怎甘沉沦 提交于 2020-01-17 02:22:21
MLSQL 解决了哪些问题 1 启动MLSQL与HBASE mlsql-engine start mlsql-console start mlsql-cluster start MLSQL Engine 启动后就是一个实例,可以同时启用多个实例(多条业务线)。MLSQL Cluster(集群管理器) 提供了对多个MLSQL实例的管理,通过类 K8s标签功能将请求发送到不同的MLSQL实例上,并且提供了多种负载均衡策略 。MLSQL Console(MLSQL 控制台) 是一个可供操作web端界面 Cluster,Control 依赖Mysql数据库 Cluster和Engine在同一个项目 启动HBASE #服务器时间,时间不一致会导致 hbase 启动失败 date -s "2019-12-17 06:55:00" #进程 HMaster HRegionServer ./start-hbase.sh 启用hbase shell ./hbase shell list whoami describe '' #扫描表 scan '' , { } mlsql连接HBase inputTableName="表名" #修改 Spark 运行模式 start-default_new.sh mlsql 的语法支持 like 语法(测试 MySQL HBase) 当密码有特殊字符(!@#$%^&*

In Apache Spark, converting JavaRDD<Row> to Dataset<Row> gives exception: ArrayList is not a valid external type for schema of string

六月ゝ 毕业季﹏ 提交于 2020-01-17 00:43:06
问题 I am using hbase-spark connector to fetch hbase data into spark JavaRDD<Row> (which I feel I able to do successfully since I am able to print the hbase data that is fetched). Then, I am trying to convert that JavaRDD<Row> to Dataset<Row> . But it gives me error which is given further in the post. First let me start how my code looks like. private static JavaRDD<Row> loadHBaseRDD() throws ParseException { //form list of row keys List<byte[]> rowKeys = new ArrayList<byte[]>(5); //consider ids

HBase优化相关

半世苍凉 提交于 2020-01-16 20:43:02
接下来添加部分HBase优化相关的选择,先添加部分,后续实际工作中再补充完善。优化主要针对外界条件以及自身条件。 外界条件 外界条件包括硬件配置、GC、JVM等。 配置内存 HBase是吃内存的,很多地方都有涉及到,如blockcache读缓存,memStore写缓存,LSM树状结构和日志记录机制等都用到了内存,因此内存当然是越大越好,实际应用中会给HBase配置60~65%的物理内存。 配置CPU 当HBase中频繁使用过滤器,会涉及到计算,搜索和过滤等操作,这会比较耗费CPU,此外多条件组合扫描、使用压缩算法操作等,会给CPU带来压力,如果CPU性能低将有可能导致工作线程在阻塞等待状态。CPU主流2到8路,推荐使用双路四核CPU,一般的单核CPU至少需要四核。 GC收集器的选择 HBase是基于java编写的,GC回收器的选择也将影响整个程序的 吞吐能力和停顿时间 。以HotPot提供的虚拟机为例,它提供了多种新生代GC收集器+老年代GC收集器的组合选择,不同的组合,会有不同的应用场景。 对于HBase来说,它的出发点是低延迟的查询,因此需要有能提供低停顿时间的GC收集器,在老年代中CMS是一个不错的选择,而新生代中能跟它搭配使用的就只剩下Serial和ParNew,前者是老版本JDK的选择,是单线程的,而ParNew是基于多线程的,考虑更好性能,新生代中选择ParNew。

Nutch 2.3 and HBase 1.0.0

六眼飞鱼酱① 提交于 2020-01-16 05:13:48
问题 I try to implement nutch for a projet that will crawl millions urls and actually it seems to work with HBase 0.94 locally. But the cluster in place is installed with HBase 1.0.0 and we didn't manage to make it works. Is it actually possible to use nutch 2.3 with HBase 1.0.0 ? Thanks for the answers. 回答1: HBase0.94 and HBase1.0.0 are not backward compatible. So, if you have code compiled with HBase0.94 then it wont work out of box with HBase1.0.0 cluster. Just recompile your code with HBase1.0

HBase原理相关

浪尽此生 提交于 2020-01-16 00:08:20
接下来记录一下HBase存储原理相关的知识,理解尚浅,后续再补充。 索引 hbase中没有索引,但是mysql有,区别在于mysql是行级存储,hbase是列级存储,索引对行级存储有意义,对于列级存储意义不大。 如下图所示,不管是mysql还是hbase,最终数据都会落地成文件,当给行级存储建立索引,如果想查找id为1的数据,直接通过建立的索引,可以快速定位到数据所在的位置,这样显然比文件中遍历更加高效,如果是列级存储,建立了索引也只对单列数据有效,如想查询{id=1,name=messi,age=32}的数据,单列的索引显得没意义,因此hbase中就暂时没有索引的说法。 HRegionserver HRegionserver是管理HRegion的,HRegion中的数据最终会以HFile的形式落地到hdfs,因此它和dataNode部署在同一个节点上(数据本地化策略,这样可以减少网络IO消耗),以下是它的主要组成结构图。 ① WAL:写日志相关 ② BlockCache:读缓存相关 ③ HRegion:写缓存,存储相关 后面将一一说明这些组成部分,最后storeFile会以HFile的形式落地到hdfs,因此hbase也具有了副本策略。 HRegion hbase中一个表会在行键的方向上,会被切分为一个或多个HRegion,其中HRegion是分布式存储的最小单元

HBase 教程

巧了我就是萌 提交于 2020-01-15 19:30:09
1.HBase基础 1.1.HBase基本介绍 1.2.HBase配置安装 1.3.HBase使用用例 1.3.1.增 1.3.2.删 1.3.3.改 1.3.4.查 1.4.HBase基本概念 1.4.1.表,rowkey,列蔟,列 1.4.2.数据版本TTL 1.4.3.root,meta,namespace表 1.4.4.master,regionserver,thriftserver 1.4.5.get,scan 1.5.HBase常用命令 1.5.1.shell所有命令 2.HBase进阶 2.1.HBase架构 2.1.1.写流程 2.1.2.读流程 2.1.3.split流程 2.1.4.merge流程 2.1.5.compact流程 2.1.6.balancer路程 2.1.7.WAL 2.2.HBase API 2.2.1.JAVA API 2.2.2.MapReduce API 2.3.HBase配置解析 2.3.1.hbase-env.sh 2.3.2.hbase-site.xml 2.4.HBase性能优化 2.4.1.客户端 2.4.2.服务端 2.4.3.ycsb 3.HBase高阶 3.1.HBase运维 3.1.1.节点启停 3.1.2.meta表修复 3.1.3.HBase监控 3.2.HBase协处理器 3.2.1.observer协处理器 3

HBase - Phoenix剖析

我们两清 提交于 2020-01-15 08:56:27
1.概述   在《 Hadoop-Drill深度剖析 》一文当中,给大家介绍了Drill的相关内容,就实时查询来说,Drill基本能够满足要求,同时还可以做一个简单业务上的聚合,如果在使用Hive做一些简单的业务统计(不涉及多维度,比如CUBE,ROLLUP之类的函数),只是用一些基本的聚合函数或是JOIN ON之类的,Drill基本满足要求,而且响应速度可比OLTP。今天给大家剖析的是另外一种工具,由于目前Drill官方不支持对表的插入,更新操作。所以,在操作HBase的时候,若遇到这些需求,Drill就有点力不从心。那么,Phoenix可以满足以上需求。它更接近与标准的SQL。 2.Architecture   在Phoenix中SQL Query Plan的执行,基本上是通过构建一系列的HBase Scan来完成。为了尽可能减少数据的传输,在Region Server使用Coprocessor来尽可能的执行Aggregate相关的工作,基本实现的思路是使用RegionObserver在PostScannerOpen Hook中将RegionScanner替换成支持Aggregation工作的定制化的Scanner,具体的Aggregate操作通过Custom的Scan属性传递给RegionScanner。然与基于MapReduce的框架执行Plan的思想比较

Scan HBase rows by ignoring a part of the start and end row in Java

旧时模样 提交于 2020-01-15 07:37:49
问题 I have HBase rows as follows ABC_A1_20160101 ABC_A2_20160102 ABC_A3_20160103 XYZ_A9_20160201 from my Java code I know first part ABC and last part 20160101 . There is no way I can get the middle part A1, A2, A3.... . In this case how can I query in Java ? From ABC_A1_20160101 To ABC_A3_20160103 回答1: Fuzzy row approach is efficient for this kind of requirement and when data is is huge : As explained by this article FuzzyRowFilter takes as parameters row key and a mask info. In example above,

FATAL master.HMaster: Unexpected state : .. Cannot transit it to OFFLINE

百般思念 提交于 2020-01-15 04:57:17
问题 I've got a serious Hbase crash problem. I'm using HBase 0.94.7 with one master and two region servers. The HBase master crashed regularly, I can't even get it restarted. I've got the master logs as following: DEBUG master.AssignmentManager: Handling transition=RS_ZK_REGION_CLOSED, server=master,60020,1374506461230, region=46c2333f401964bf877254be19c2cc8c DEBUG handler.ClosedRegionHandler: Handling CLOSED event for 6423df864603aa6e8c45c726ab3ae62f DEBUG master.AssignmentManager: Forcing