MRS二次开发(8/27): HBase 通用API样例
MRS二次开发(8/27): HBase 通用API样例
一、HBase简介
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。
HBase使用场景有如下几个特点:
- 处理海量数据(TB或PB级别以上)。
- 具有高吞吐量。
- 在海量数据中实现高效的随机读取。
- 具有很好的伸缩能力。
- 能够同时处理结构化和非结构化的数据。
- 不需要完全拥有传统关系型数据库所具备的ACID特性。ACID特性指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
- HBase中的表具有如下特点:
- 大:一个表可以有上亿行,上百万列。
- 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
- 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
二、样例背景
场景说明
假定用户开发一个应用程序, 使用通用API接口调用HBase,代码样例中所涉及的操作主要包括:
获取对接集群连接配置文件。
获取认证信息并且认证。
HBase通用API访问并操作。
HBase通过phoenix访问并操作。
三、Windows环境样例调用步骤
环境准备,参考第一课
比对时间,与集群时间误差不能超过5分钟
检查 C:\Windows\System32\drivers\etc\hosts文件中是否包含所有集群节点的域名IP映射信息
在IDEA打开样例代码中的hbase-example目录,默认会自动下载依赖,如未下载,选中该目录下的pom.xml文件,右键点击“Add As Maven Project”后等待项目自动将依赖下载完毕
从Manager界面下载用户认证凭据后,解压缩获取秘钥文件user.keytab和krb5.conf,将这两个文件放到工程resources/conf目录下
将客户端中hbase目录下core-site.xml、hbase-site.xml、hdfs-site.xml放到resources/conf目录下
右键选择resources目录,选择“Mark Directory as”-"Resources Root"
在代码中修改认证用户名
打开 TestMain.java 文件右键执行Run 启动样例代码
四、Linux环境调试步骤
完成Windows环境样例调用步骤
检查linux环境时间与集群误差不超过5分钟
检查linux环境的JDK版本为1.8
检查linux环境的/etc/hosts文件中包含所有集群节点的域名IP映射信息
创建样例执行路径,例如/opt/hbase_test
上传windows环境打包后生成的target目录下的hbase-example-2.2.3-hw-ei-302002.jar包到/opt/hbase_test目录
上传样例工程resources下的conf目录到/opt/hbase_test
在IDEA中使用插件生成依赖路径lib,上传至/opt/hbase_test
执行如下命令验证linux环境下样例代码运行
- java -cp /opt/hbase_test/:/opt/hbase_test/lib/*:/opt/hbase_test/hbase-example-2.2.3-hw-ei-302002.jar com.huawei.bigdata.hbase.examples.TestMain
五、问题互动渠道
FusonInsight 论坛入口 https://bbs.huaweicloud.com/forum/forum-1103-1.html
六、附录
生成依赖路径的pom.xml文件配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 点赞
- 收藏
- 关注作者
评论(0)