温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hbase FAQ热门问答有哪些

发布时间:2021-12-08 13:51:48 来源:亿速云 阅读:112 作者:小新 栏目:大数据

这篇文章主要介绍了Hbase FAQ热门问答有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问:  Hbase大量写入很慢,一个列族,每个200多列,一秒写30000条数据,使用mutate添加数据,clientbuffer缓存大小为10M,四台测试机,128G内存,分配60G给Hbase,该怎么优化?  

答:可以使用bulkload方式写入,通过mr程序生产hfile文件,直接用bulkload导入生成的hfile文件,速度非常快。



问:  hbase大规模的丢数据,整个数据库系统都挂掉了,然后发错误日志,说Hdfs内部的配置文件,hbase.version,丢失了。  大家有遇到过类似的问题吗?  自建的集群。  

答:检查一下一些服务的端口有没有暴露到公网,是不是集群被攻击了。自建还是有一些风险的。然后检查下自己的hbase配置。看看数据的备份情况。



问:start-hbase.sh中有这么一段:  
if [ "$distMode" == 'false' ]then"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master $@else"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" $commandToRun zookeeper"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \--hosts "${HBASE_REGIONSERVERS}" $commandToRun regionserver"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \--hosts "${HBASE_BACKUP_MASTERS}" $commandToRun master-backupfi
distMode为false时表示单机,true时表示集群,看脚本好像是单机只启动master,是否是说单机环境下不需要zookeeper,regionserver这些的意思,可是网上搜了下又有人说单机环境下master和 zookeeper会运行在同一个jvm。有谁对hbase比较熟悉的可以解答下吗?

答:单机模式所有的服务都是一个jvm 进程启动,底层的文件系统是本地文件系统,该jvm进程包括有zookeeper,hmaster和regionserver。其他模式需要手动分别启动zk,hmaster,regionserver到不同的进程中。



问:Hbase 在大规模用户画像标签,标签有近百个左右,适合吗?
答:hbase就是适用这种几百几千级别的场景,甚至可以支持百万列级别的,但是建议常用的小于10w列。  



问:hbase 2 内置现在的事务做的怎么样?支持到什么隔离级别?如果有的话,hbase分布式事务依靠什么做的?
答:hbase事务目前还是region级别,hbase是可以做到跨行事务,但是只限于region级别。



问:批量删除hbase的数据用什么方式比较快
答:最快的方式就是直接设置TTL,如果业务无法满足,建议直接调度delete接口,性能也较快。  


问:HBase 2.0 的查询性能怎样优化的?

答:在HBase的读和写链路中,均会产生大量的内存垃圾和碎片。比如说写请求时需要从Connection的ByteBuffer中拷贝数据到KeyValue结构中,在把这些KeyValue结构写入memstore时,又需要将其拷贝到MSLAB中,WAL Edit的构建,Memstore的flush等等,都会产生大量的临时对象,和生命周期结束的对象。随着写压力的上升,GC的压力也会越大。读链路也同样存在这样的问题,cache的置换,block数据的decoding,写网络中的拷贝等等过程,都会无形中加重GC的负担。而HBase2.0中引入的全链路offheap功能,正是为了解决这些GC问题。大家知道Java的内存分为onheap和offheap,而GC只会整理onheap的堆。全链路Offheap,就意味着HBase在读写过程中,KeyValue的整个生命周期都会在offheap中进行,HBase自行管理offheap的内存,减少GC压力和GC停顿。

写链路的offheap包括以下几个优化:

  • 在RPC层直接把网络流上的KeyValue读入offheap的bytebuffer中

  • 使用offheap的MSLAB pool

  • 使用支持offheap的Protobuf版本(3.0+)

读链路的offheap主要包括以下几个优化:

  • 对BucketCache引用计数,避免读取时的拷贝

  • 使用ByteBuffer做为服务端KeyValue的实现,从而使KeyValue可以存储在offheap的内存中

  • 对BucketCache进行了一系列性能优化




问:Hbase的bulkload有全量与增量的概念么?  
答:snapshot 做全量 ,然后bulkload 做增量。



问:Hive on hbase 分析10亿以上数据性能问题?
答:性能会损失,hive支持通过类似sql语句的语法来操作hbase中的数据, 但是速度较慢。



问:直接读HFile与通过Hbase客户端读,性能提升多少?
答:全表扫使用spark读HFile,比直接读hbase性能提升两倍以上,并且不会影响hbase其他读写使用。



问:HBase region个数如何划分?
答:最好是你的regionserver的倍数 ,会自动的分配到每个服务器 ,注意rowkey要分散。

感谢你能够认真阅读完这篇文章,希望小编分享的“Hbase FAQ热门问答有哪些”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI