调测HBase Phoenix样例程序
HBase支持通过Phoenix调用JDBC接口来访问HBase服务。调测HBase Phoenix样例程序,默认集群已完成HBase对接Phoenix服务,具体对接步骤详情请参考HBase配置Phoenix。
在Windows中运行并调测程序
- 搭建Windows开发环境及修改样例程序的公共配置,详情请参见1-3。
- 修改样例工程。
1.修改样例工程“src/main/resources”目录下的“jaas.conf”文件,keyTab、principal分别对应用户认证凭据存放路径、用户名,如下所示。(未开启Kerberos认证集群可跳过此步骤)
Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="D:\\sample_project\\src\\hbase-examples\\hbase-java-examples\\src\\main\\resources\\user.keytab" principal="hbaseuser" useTicketCache=false storeKey=true debug=true; };
2.修改样例工程“src/main/resources”下的“hbaseclient.properties”文件。user.name, userKeytabName, krb5ConfName对应于在准备HBase应用开发用户创建的用户名,及获取的文件的名称。(未开启Kerberos认证集群可跳过此步)。user.name=hbaseuser userKeytabName=user.keytab krb5ConfName=krb5.conf #for phoenix #confiugration for security cluster. jaasConfName=jaas.conf
- 在开发环境中(例如Eclipse中),鼠标右键单击“PhoenixExample”,然后鼠标左键单击“Run > PhoenixExample.main()”运行对应的应用程序工程。
若运行报“Message stream modified (41)”的错误,这可能与JDK的版本有关系,可以尝试修改运行样例代码的JDK为8u_242以下版本或删除“krb5.conf”配置文件的“renew_lifetime = 0m”配置项。
- HBase应用程序运行完成后,可直接通过运行结果查看应用程序运行情况。
运行结果出现如下信息表示程序运行成功。
2020-03-13 14:54:13,369 INFO [main] client.HBaseAdmin: Operation: CREATE, Table Name: default:TEST, procId: 60 completed 2020-03-13 14:54:14,269 INFO [main] examples.PhoenixExample: 1 2020-03-13 14:54:14,270 INFO [main] examples.PhoenixExample: John 2020-03-13 14:54:14,270 INFO [main] examples.PhoenixExample: 100000 2020-03-13 14:54:14,271 INFO [main] examples.PhoenixExample: 1980-01-01 2020-03-13 14:54:14,464 INFO [main] client.HBaseAdmin: Started disable of TEST 2020-03-13 14:54:15,199 INFO [main] client.HBaseAdmin: Operation: DISABLE, Table Name: default:TEST, procId: 62 completed 2020-03-13 14:54:15,521 INFO [main] client.HBaseAdmin: Operation: DELETE, Table Name: default:TEST, procId: 64 completed
在Linux中调测Phoenix样例
在linux环境中调测Phoenix样例,需有与集群环境网络相通的ECS,详情请参见准备本地应用开发环境。
- 修改样例。将样例代码TestMain中“enablePhoenix”值改为“true”,开启调用Phoenix样例程序接口。
/** * Phoenix Example * if you would like to operate hbase by SQL, please enable it, * and you can reference the url ("https://support.huaweicloud.com/devg-mrs/mrs_06_0041.html"). * step: * 1.login * 2.operate hbase by phoenix. */ boolean enablePhoenix = false; if (enablePhoenix) { PhoenixExample phoenixExample; try { phoenixExample = new PhoenixExample(conf); phoenixExample.testSQL(); } catch (Exception e) { LOG.error("Failed to run Phoenix Example, because ", e); } }
- 执行mvn package生成jar包,在工程目录target目录下获取,比如:hbase-examples-mrs-2.0.jar,将获取的包上传到/opt/client/Hbase/hbase/lib目录下。
- 执行Jar包。
- 在Linux客户端下执行Jar包的时候,需要用安装用户切换到客户端目录:
cd $BIGDATA_CLIENT_HOME/HBase/hbase
“$BIGDATA_CLIENT_HOME”指的是客户端安装目录。
- 然后执行:
- 将HBase Phoenix API接口介绍解压后获取其中的phoenix-hbase和phoenix-core包和“htrace-core-3.1.0-incubating.jar”包拷贝到“/opt/client/HBase/hbase/lib”下。
- 将2中生成的Jar包和从3.2.2-准备开发用户中获取的krb5.conf和user.keytab文件拷贝上传至客户端运行环境的Hbase/hbase/conf目录下,例如“/opt/client/HBase/hbase/conf”。然后在“/opt/client/HBase/hbase/conf”目录下创建hbaseclient.properties文件,文件中user.name对应新建的用户hbaseuser,userKeytabName和krb5ConfName值对应从3.2.2-准备开发用户中获取的认证相关文件名称,如下(未开启Kerberos认证集群可跳过此步):
user.name=hbaseuser userKeytabName=user.keytab krb5ConfName=krb5.conf
- 在Linux客户端下执行Jar包的时候,需要用安装用户切换到客户端目录:
- 执行jar包程序。
hbase com.huawei.bigdata.hbase.examples.TestMain /opt/client/HBase/hbase/conf
其中,com.huawei.bigdata.hbase.examples.TestMain为举例,具体以实际样例代码为准。
“/opt/client/HBase/hbase/conf”对应于上述中user.keytab、krb5.conf等文件路径。
若运行报“Message stream modified (41)”的错误,这可能与JDK的版本有关系,可以尝试修改运行样例代码的JDK为8u_242以下版本或删除“krb5.conf”配置文件的“renew_lifetime = 0m”配置项。
- phoenix应用程序运行完成后,可直接通过运行结果查看应用程序运行情况。
2020-03-14 16:20:40,192 INFO [main] client.HBaseAdmin: Operation: CREATE, Table Name: default:TEST, procId: 923 completed 2020-03-14 16:20:40,806 INFO [main] examples.PhoenixExample: 1 2020-03-14 16:20:40,807 INFO [main] examples.PhoenixExample: John 2020-03-14 16:20:40,807 INFO [main] examples.PhoenixExample: 100000 2020-03-14 16:20:40,807 INFO [main] examples.PhoenixExample: 1980-01-01 2020-03-14 16:20:40,830 INFO [main] client.HBaseAdmin: Started disable of TEST 2020-03-14 16:20:41,574 INFO [main] client.HBaseAdmin: Operation: DISABLE, Table Name: default:TEST, procId: 925 completed 2020-03-14 16:20:41,831 INFO [main] client.HBaseAdmin: Operation: DELETE, Table Name: default:TEST, procId: 927 completed