MRS二次开发(10/27): HBase thrift接口调用样例
MRS二次开发(10/27): HBase thrift接口调用样例
一、HBase简介
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。
HBase使用场景有如下几个特点:
- 处理海量数据(TB或PB级别以上)。
- 具有高吞吐量。
- 在海量数据中实现高效的随机读取。
- 具有很好的伸缩能力。
- 能够同时处理结构化和非结构化的数据。
- 不需要完全拥有传统关系型数据库所具备的ACID特性。ACID特性指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
- HBase中的表具有如下特点:
- 大:一个表可以有上亿行,上百万列。
- 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
- 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
二、样例背景
场景说明
假定用户开发一个应用程序, 使用通用thrift接口调用HBase,代码样例中所涉及的操作主要包括:
获取对接集群连接配置文件。
获取认证信息并且认证。
HBase thrift接口访问并操作
三、Windows环境样例调用步骤
环境准备,参考第一课
比对时间,与集群时间误差不能超过5分钟
检查 C:\Windows\System32\drivers\etc\hosts文件中是否包含所有集群节点的域名IP映射信息
在IDEA打开样例代码中的hbase-thrift-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目录下
修改HBase集群实例的配置参数“hbase.thrift.security.qop",该值设置值与"hbase.rpc.protection"一一对应:
- privacy(auth-conf)/authentication(auth)/integrity(auth-int) 保存生效。
根据附录信息在hbase-site.xml配置文件最后加入配置项
右键选择resources目录,选择“Mark Directory as”-"Resources Root"
在代码中修改认证用户名,连接集群ip信息
打开 TestMain.java 文件右键执行Run 启动样例代码
四、Linux环境调试步骤
完成Windows环境样例调用步骤
检查linux环境时间与集群误差不超过5分钟
检查linux环境的JDK版本为1.8
检查linux环境的/etc/hosts文件中包含所有集群节点的域名IP映射信息
创建样例执行路径,例如/opt/hbasethrifttest
上传windows环境打包后生成的target目录下的hbase-thrift-example-2.2.3-hw-ei-302002.jar包到/opt/hbasethrifttest目录
上传样例工程resources下的conf目录到/opt/hbasethrifttest
在IDEA中使用插件生成依赖路径lib,上传至/opt/hbasethrifttest
执行如下命令验证linux环境下样例代码运行
- java -cp /opt/hbase_thrift_test/:/opt/hbase_thrift_test/lib/*:/opt/hbase_thrift_test/hbase-thrift-example-2.2.3-hw-ei-302002.jar com.huawei.bigdata.hbase.examples.TestMain
五、问题互动渠道
FusonInsight 论坛入口 https://bbs.huaweicloud.com/forum/forum-1103-1.html
六、附录
hbase-site.xml配置文件增加内容
<property>
<name>hbase.thrift.security.qop</name>
<value>auth</value>
</property>
<property>
<name>hbase.thrift.kerberos.principal</name>
<value>thrift/hadoop.hadoop.com@HADOOP.COM</value>
</property>
<property>
<name>hbase.thrift.keytab.file</name>
<value>/opt/huawei/Bigdata/FusionInsight_HD_8.0.2/install/FusionInsight-HBase-2.2.3/keytabs/HBase/thrift.keytab</value>
</property>
生成依赖路径的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)