为MapReduce服务(MRS)官方文档比较散乱,可操作性不强,经过一段时间的摸索,已成功编译运行,以备忘和分享为目的,把摸索过程整理成此文。
华为官方文档详见https://support.huaweicloud.com/devg-mrs/mrs_06_0002.html
开发环境
os:window2012server 购买华为ecs服务器作为hbase客户端开发机器
ide:eclipse
jdk:jdk8
maven:mavne3.6.5
网络:确保客户端与HBase服务主机在网络上互通
购买集群:
使用windows访问MRS集群来操作HBase,有如下两种方式:
方式一:申请一台windows的ECS访问MRS集群操作hbase。安装开发环境后运行样例代码,本文采用此方式。
方式二:选择一个Windows系统的公共镜像。
使用本机访问MRS集群操作HBase。为MRS集群中HBase服务的所有节点绑定弹性公网IP。
为MRS集群开放安全组规则。
在集群Master节点和Core节点的安全组添加安全组规则使弹性云服务器可以访问集群。请参见“虚拟私有云 > 用户指南 > 安全性 > 安全组 > 添加安全组规则”。
windows环境的更多说明见官网https://support.huaweicloud.com/devg-mrs/mrs_06_0425.html
配置华为云开源镜像
用以下代码替换maven的setting.xml文件中的内容
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*,!HuaweiCloudSDK</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>MyProfile</id>
<repositories>
<repository>
<id>HuaweiCloudSDK</id>
<url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>HuaweiCloudSDK</id>
<url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>MyProfile</activeProfile>
</activeProfiles>
</settings>
准备开发用户
详见华为官方文档:
https://support.huaweicloud.com/devg-mrs/mrs_06_0010.html
在MRS Manager界面选择“系统设置 > 用户管理”,在用户名中选择hbaseuser,单击操作中点击放大下载认证凭据文件,保存后解压得到用户的user.keytab文件与krb5.conf文件。用于在样例工程中进行安全认证。
注意:用户名和认证凭据文件下文中需要用到
下载程序
华为云MRS服务2.0版本的样例工程下载地址为:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-2.0。
导入程序
解压后导入maven项目:
配置管理
修改配置文件hbase-site.xml
按照服务端配置文件hbase-site.xml中的值,修改工程项目hbase-examples的resources目录下hbase-site.xml文件中的值:
配置hadoop
从集群服务器把如下hdfs目录复制到window客户端
增加window客户端开发机操作系统的环境变量:HADOOP_HOME:
同上,增加操作系统的环境变量:JAVA_HOME
eclipse中指定hadoop安装目录
增加本地文件
把wintuils.exe和hadoop.dll复制到%hadoop%\bin:
注意:这两个文件可在本文资源中下载
修改hbaseclient.properties
修改样例工程文件/hbase-examples/src/main/resources/hbaseclient.properties:userKeytabName,krb5ConfName对应于【准备开发用户】章节获取的文件名,user.name为【准备开发用户】章节定义的用户名。
user.name=hbaseuser
userKeytabName=user.keytab
krb5ConfName=krb5.conf
若使用REST接口时需修改hbaseclient.properties中的rest.server.info,使其对应于rest server的ip:port(port默认为21309),rest server10.10.10.10替换成任意master的ip即可:
rest.server.info=10.10.10.10:21309
覆盖认证凭据文件
上文中【准备开发用户】章节生成user.keytab和krb5.conf覆盖工程项目中的文件:
复制cacerts
从集群环境中获取jdk的cacerts文件,并拷贝“/opt/Bigdata/jdk/jre/lib/security/cacerts”文件到windows上的JDK环境中“%JAVA_HOME%\jre\lib\security”
修改程序
修改pom
增加dependency:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
修改tableName
在三个example.java中修改 TABLE_NAME常量,加上当前时间,保证每次执行都成功:
运行样例
在开发环境Eclipse中,右击“TestMain.java”,单击“Run as > Java Application”运行对应的应用程序工程。
查看运行结果
HBase应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HBase日志获取应用运行情况
运行过程中不会有任何异常