更新时间:2024-06-14 GMT+08:00
分享

在Windows中调测Presto应用开发

  1. 申请一台Windows的ECS访问MRS集群操作Presto。申请ECS访问MRS集群的步骤如下:

    1. 在“现有集群”列表中,单击已创建的集群名称。

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

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

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

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

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

  2. 开启Kerberos认证集群需要在Windows上配置集群的ip与主机名映射关系。登录集群后台,执行命令cat /etc/hosts后,把hosts文件中的ip与hostname映射关系拷贝到ECS的“C:\Windows\System32\drivers\etc\hosts”中。未开启Kerberos认证集群无须执行此步骤。
  3. 在Windows下操作Presto集群时,JDK版本需为jdk1.8.0_60及以上版本。开启Kerberos认证集群需要拷贝MRS集群主节点“/opt/Bigdata/om-0.0.1/packaged-distributables/client_packet/ca.crt”到Windows的ECS上,在jdk/bin目录打开cmd命令行执行如下命令,并修改样例代码中conf目录下的presto.properties文件的配置。

    jdk1.8.0_242以上版本需要删除krb5.conf中[libdefaults]的renew_lifetime = 0m。

    未开启Kerberos认证集群无须执行此步骤。

    keytool -import -v -trustcacerts -alias presto_trust -file <ca.crt_path> -keystore <keystore_path>/truststore.jks –keypass <password>

    其中,<ca.crt_path>为拷贝的ca.crt文件路径,<keystore_path>为truststore.jks文件生成路径,<password>为truststore密码,可根据需要指定。命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。

    表1 presto.properties参数说明

    参数

    说明

    user

    用于Kerberos认证的用户名,即准备开发用户中创建的开发用户的用户名。

    KerberosPrincipal

    用于认证的名字,即认证准备开发用户中创建的开发用户的用户名。

    KerberosConfigPath

    krb5.conf的路径。

    注意转义“\”

    KerberosKeytabPath

    user.keytab的路径。

    注意转义“\”

    SSLTrustStorePath

    truststore.jks的路径。

    注意转义“\”

    SSLTrustStorePassword

    truststore的密码。

  4. 修改并运行样例。

    1. 在开发环境中(例如Eclipse中),修改样例代码example_ip、端口号和krbsEnabled配置。
    2. 右键单击“PrestoJDBCExample.java”。
    3. 单击“Run as > Java Application”运行对应的应用程序工程。

  5. 查看结果。运行成功结果会有如下信息:

    NY Metro : 2
    Mid Atlantic : 6
    Mid Atlantic : 6
    North Midwest : 1
    North Midwest : 3
    North Midwest : 7

相关文档