更新时间:2024-08-03 GMT+08:00

在Windows中调测Hive JDBC应用

JDBC客户端的命令行形式运行

  1. 运行样例。

    依照准备Hive JDBC开发环境中导入和修改样例后,并从集群的任一Master节点的路径“/opt/client/Hive/config/hiveclient.properties”下获取“hiveclient.properties”文件,并放置到样例工程的conf下,即“hive-examples/conf”,即可在开发环境中(例如Eclipse中),右击“ExampleMain.java”,单击“Run as > Java Application”运行对应的应用程序工程。

    使用windows访问MRS集群来操作Hive,有如下两种方式。

    • 申请一台windows的ECS访问MRS集群操作Hive,此种方式是通过连接zookeeper动态获取HiveServer的地址然后来操作Hive,具有高可用性。
    • 使用本机访问MRS集群操作Hive,由于本机与MRS集群的网络不通,只能通过直连HiveServer的方式操作Hive。
    方法一:申请一台windows的ECS访问MRS集群操作Hive。在安装开发环境后可直接运行样例代码。申请ECS访问MRS集群的步骤如下。
    1. 在“现有集群”列表中,单击已创建的集群名称。

      记录集群的“可用分区”、“虚拟私有云”、“集群控制台地址”,以及Master节点的“默认安全组”。

    2. 在弹性云服务管理控制台,创建一个新的弹性云服务器。

      弹性云服务器的“可用分区”、“虚拟私有云”、“安全组”,需要和待访问集群的配置相同。

      选择一个Windows系统的公共镜像。

      其他配置参数详细信息,请参见“弹性云服务器 > 快速入门 > 购买并登录Windows弹性云服务器”

    方法二:使用本机访问MRS集群操作Hive。在安装开发环境后并完成以下步骤后再运行样例代码。

    1. 为MRS集群中要使用Hive服务的HiveServer节点或ZooKeeper节点绑定弹性公网IP,绑定弹性公网IP步骤如下。
      1. 在虚拟私有云管理控制台,申请一个弹性IP地址,并与弹性云服务器绑定。

        具体请参见“虚拟私有云 > 用户指南 > 弹性公网IP > 为弹性云服务器申请和绑定弹性公网IP”。

      2. 为MRS集群开放安全组规则。

        在集群Master节点和Core节点的安全组添加安全组规则使弹性云服务器可以访问集群,若集群为安全集群则需要同时将UDP的21731、21732端口和TCP的21730、21731、21732及Hive的HiveServer实例端口和ZooKeeper服务的端口添加在安全组的入方向规则中。请参见“虚拟私有云 > 用户指南 > 安全性 > 安全组 > 添加安全组规则”。

    2. 修改导入的“hiveclient.properties”文件,使得“zk.quorum”参数对应于绑定的HiveServer的弹性公网IP及ZooKeeper端口,并修改样例代码中对连接JDBC时URL的拼接。详情请参见分析Hive数据中直连HiveServer的方式。
    3. 修改导入样例的krb5.conf中"kdc","admin_server",“kpasswd_server”,“kdc_listen”,“kadmind_listen”和“kpasswd_listen”六个参数的ip(单master的集群没有后面三个参数不必修改),使其对应于KrbServer服务中对应的弹性公网IP(由于普通集群未启用kerberos功能,可跳过此步骤)。并将修改后的krb5.conf和user.keytab文件放置到样例工程的conf目录下。
    4. 若通过ZooKeeper的方式访问Hive,需要修改本地hosts文件,添加1中为节点绑定的公网IP和主机名的映射。
    5. 若运行报“Message stream modified (41)”的错误,这可能与JDK的版本有关系,可以尝试修改运行样例代码的JDK为8u_242以下版本或删除“krb5.conf”配置文件的“renew_lifetime = 0m”配置项。

  2. 查看结果。

    查看样例代码中的HiveQL所查询出的结果,运行成功结果会有如下信息。

    JDBC客户端运行及结果查看。

    Create table success!
    _c0
    0
    Delete table success!