hbase-shaded-client和hbase-client的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase-shaded-client和hbase-client的区别相关的知识,希望对你有一定的参考价值。

一、新建本地java工程
file->new->java project

二、添加jar包和配置文件
1、添加JAR包
  右击Propertie在弹出的快捷菜单中选择Java Build Path对话框,在该对话框中单击Libraries选项卡,在该选项卡下单击
Add External JARs按钮,定位到$HBASE/lib目录下,并选取如下JAR包。
hadoop-core-1.0.0.jar
commons-loggings-version.jar
commons-cli-version.jar
commons-lang-version.jar
commons-configuration-version.jar
hbase-0.94.1.jar
zookeeper-3.4.3.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
log4j-1.2.16.jar
protobuf-java-2.4.1.jar
2、添加hbase-site.xml配置文件
  在工程根目录下创建conf文件夹,将$HBASE_HOME/conf/目录中的hbase-site.xml文件复制到该文件夹中。通过右键
选择Propertie->Java Build Path->Libraries->Add Class Folder。

3、windows下开发HBase应用程序,HBase部署在linux环境中,在运行调试时可能会出现无法找到主机,类似异常信息如下:java.net.UnknownHostException: unknown host: master
解决办法如下:在C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下信息
192.168.2.34 master
参考技术A hbase-client 依赖了太多第三方库,如果你没有构建工具,很容易造成jar版本冲突。。
hbase-shaded-client 把所有的东西都打包了。测试方便。。
直接使用了hbase-client 手动排除冲突的jar,统一jar版本即可。。
参考技术B https://www.iteblog.com/archives/2463.html?from=like

关于hbase的问题,开启hbase后一会hmaster和hregionserver就没了?

2021-12-12 13:05:20,551 WARN [main-SendThread(192.168.109.130:2128)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: 拒绝连接
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2021-12-12 13:05:20,653 WARN [main] zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=192.168.109.130:2128, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
2021-12-12 13:05:20,653 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts
2021-12-12 13:05:20,654 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster

一、通常向HBase批量导入数据有三种常用方式
1、使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase
2、还有一种方式就是使用HBase原生Client API(put)
3、前两种方式因为须要频繁的与数据所存储的RegionServer通信。一次性入库大量数据时,特别占用资源,所以都不是很有效。因为HBase在HDFS中是以HFile文件结构存储的,所以高效便捷的方法就是直接生成HFile文件然后使用Bulk Load方法,即HBase提供的HFileOutputFormat类。
二、Bulk Load基本原理
Bulk Load处理由两个主要步骤组成:
1、生成HFile文件
Bulk Load的第一步会执行一个Mapreduce作业,其中使用到了HFileOutputFormat输出HBase数据文件:StoreFile。
HFileOutputFormat的作用在于使得输出的HFile文件能够适应单个region。使用TotalOrderPartitioner类将map输出结果分区到各个不同的key区间中,每一个key区间都相应着HBase表的region。
2、导入HBase表
第二步使用completebulkload工具将第一步的结果文件依次交给负责文件相应region的RegionServer,并将文件move到region在HDFS上的存储文件夹中。一旦完毕。将数据开放给clients。
假设在bulk load准备导入或在准备导入与完毕导入的临界点上发现region的边界已经改变,completebulkload工具会自己主动split数据文件到新的边界上。可是这个过程并非最佳实践,所以用户在使用时须要最小化准备导入与导入集群间的延时,特别是当其它client在同一时候使用其它工具向同一张表导入数据。
Bulk Load常遇到的一个ERROR:”java.io.IOException: Retry attempted 10 times without completing, bailing out”
错误解析:
我们使用的Hbase1.0.2版本下,如果Hfile文件 跨越多个region,bulkload会自动地将Hfile文件split,但是对于每次retry只会将指定的Hfile文件split一次。但是在hbase-site.xml配置文件里有个参数hbase.bulkload.retries.number控制了hbase对一个hfile最多plit多少次。这个参数默认是10,如果某个hfile跨越的region数超过10个就会报上述Exception。
解决方案:
将hbase.bulkload.retries.number这个参数设置为更大的值,比如目标表的region数量或者将这个参数设置成0,0表示不断重试直到成功。设置之后问题解决。
参考技术A

赶快拿起小本本记录起来,

关于HBase的知识盘点,

每条都是精华呀!


1HBase的定义

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。

适合于存储大表数据(表的规模可以达到数十亿行以及数百万列),并且对大表数据的读、写访问可以达到实时级别。利用Hadoop HDFS(Hadoop Distributed File System)作为其文件存储系统,提供实时读写的数据库系统;利用ZooKeeper作为协同服务。

2HBase的架构


3HBase的适用场景

HBase适合具有如下需求的应用:

o海量数据(TB、PB)

o高吞吐量

o需要在海量数据中实现高效的随机读取

o需要很好的性能伸缩能力

o能够同时处理结构化和非结构化的数据

o不需要完全拥有传统关系型数据库所具备的ACID特性

4成功应用场景案例

项目背景

某银行仅支持查询最近一年的账户历史交易情况,超过一年的查询需要特殊申请,由专人进行人工查询

原因:

o传统数据库无法存储海量数据。

o大数据量下查询性能急剧下降。

HBase的优势

o海量数据(TB、PB):可由查询一年变为十年或更多

o高效随机读取:查询超过一年的数据与查询最近数据同样高效

小伙伴们还想了解哪方面的专业内容可以在文章下方留言,智汇小讲师一定倾囊相授!期待你们的留言哦!

以上是关于hbase-shaded-client和hbase-client的区别的主要内容,如果未能解决你的问题,请参考以下文章

hive和hbase有啥关系和区别

带你了解 HBase 数据模型和 HBase 架构

hbase启动之后master和regionserver相继自动断掉

HDFS和Hbase配置同步

HBase-2HBase的原理和架构

HBase分享 | HBase生态实践