示例工程开发

最近更新时间: 2026-03-13 09:03:00

环境准备

开发环境准备(Java/Scala)

准备项 说明
安装JDK JDK 8 ,推荐使用 konaJDK,下载地址
安装 Scala Scala 2.12,下载地址
安装和配置 IDE 按需选择,比如 IntelliJ IDEA 或 Eclipse
安装 Maven 开发环境基础配置,负责构建 Java 应用程序
Maven 配置准备 如果需要本地调试,需要参考开发环境准备,配置 Maven pom.xml,推荐 Maven 3.6.3,下载地址

远程调试环境准备

  1. 以下使用 Linux 环境作为开发机进行应用调试说明。
  2. 准备开发机(可选):建议使用 Linux 操作系统
  3. 部署客户端:部署TBDS客户端,在开发机上执行客户端部署。

导入示例工程代码

以下以 IntelliJ IDEA 举例,将示例工程代码导入进行说明。

  1. 下载样例代码:git clone https://e.coding.net/g-necm8077/tencentcloud-tbds-examples/tbds-examples.git
  2. 导入项目:安装完 IntelliJ IDEA 和 JDK 工具后,导入样例工程到 IntelliJ IDEA 开发环境。点击 Open 后,选择上一步下载的项目地址打开。
  3. IDEA 配置 JDK:首先确保在本地安装了 JDK 1.8,并配置好了环境变量。IDEA 选择 File 下的 Project Structure,点击 SDKs,选择 JDK 1.8,点击 Apply,再点击 OK。若没有 JDK 1.8,则点击 + 号进行添加,点击 Add JDK 后选择 JDK 1.8 安装目录,然后点击 OK 即可。

  4. IDEA 配置 Maven:首先确保在本地安装了 Maven,并配置好了环境变量和 settings.xml 文件。IDEA 点击 Settings 进入配置页面,左上角输入 Maven 进行搜索,点击 Build Tools 下的 Maven 配置项,修改 “Maven home path” 为本地 Maven 的安装目录,修改 “User settings file” 为本地 Maven settings.xml 配置文件的文件路径,并勾选 Override,此时 “Local repository” 将自动设置为 settings.xml 文件中配置的本地 Maven 仓库的目录。最后点击 Apply,再点击 OK。

代码逻辑说明

功能说明

本教程演示的是:开发Phoenix SQL查询应用示例,并将查询结果打印出来。

代码逻辑说明

创建Phoenix Driver连接,如果url为jdbc:pheonix,就会从hbase-site.xml中查找相关的连接配置比如zk地址、znode路径、kerberos认证信息等。

String url = "jdbc:phoenix";
Connection conn = DriverManager.getConnection(url);

hbase-site.xml必须在Java进程的classpath中,TBDS提供的样例代码中start.sh启动时会设置classpath,如果是自行搭建的工程需要注意一下。

执行SQL语句

// 这里执行SQL语句
String sql = args[0];
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
// 这里打印查询到的数据
printResultSet(rs);

遍历打印查询到的数据

ResultSetMetaData md = rs.getMetaData();//获取键名
int columnCount = md.getColumnCount();//获取行的数量
while (rs.next()) {
    StringBuilder line = new StringBuilder();
    for (int i = 1; i <= columnCount; i++) {
        line.append(" ").append(md.getColumnName(i)).append("=").append(rs.getObject(i));
    }
    LOG.info(line.());//获取键名及值
}

打包发布

打包

以下使用 IntelliJ IDEA 说明示例工程代码编译过程。点击 IDEA 下方 Terminal 打开终端,切换到示例工程的 HBase 工程目录下,然后使用命令 mvn clean package 对工程进行打包,运行过程中可能还需要下载一些文件,直到出现 BUILD SUCCESS 表示打包成功。

cd src/phoenix-examples/phoenix-example/
mvn clean package

通过上述编译打包后,将在工程目录下 target 文件夹中看到打好的 tar.gz 包,如图示中的 hbase-example-1.0-SNAPSHOT-bin.tar.gz,这里面包含了样例程序以及运行过程中所需的所有依赖,大小在140MB左右。

开发机运行

  1. 准备用户:参考获取用户认证。若是 Kerberos 环境,需要将用户的 keytab 文件下载到本地,然后上传至开发机。这里将 test 用户的 test.keytab 文件上传至开发机的 /tmp 目录。
  2. 将集群的配置文件hbase-site.xml放在解压后的conf目录下,如果是集群内的节点,直接执行:cp /usr/local/service/hbase/conf/hbase-site.xml conf/ 即可。
  3. 安全认证:将principal和keytab信息放入hbase-site.xml中,增加这3个对应配置,phoenix客户端会读取对应配置自动完成认证处理(注意这里principal和keytab配置项名称和hbase-example中的不一致)
    <property>
      <name>hadoop.security.authentication</name>
      <value>kerberos</value>
   </property>
   <property>
      <name>hbase.myclient.principal</name>
      <value>*******</value>
   </property>
   <property>
     <name>hbase.myclient.keytab</name>
     <value>/var/krb5kdc/emr.keytab</value>
   </property>
  1. Ranger 授权:参考Ranger授权(经典集群),确保 test 用户具有创建/写入对应表的权限,phoenix表和hbase表一一对应,这里需要授权对应hbase表的权限。
  2. 运行样例
    设置要运行的类变量: export MAIN_CLASS=com.tencent.tbds.phoenix.phoenixClientExample
    执行测试: sh start.sh "select * from TEST limit 10"

程序运维监控

控制台以及logs/client.log都会打印运行期间的日志