zoukankan      html  css  js  c++  java
  • FI的developuser就是人机用户

    DbVisualizer对接FusionInsight

    适用场景

    DbVisualizer 10.0.21 ↔ FusionInsight HD 6.5 (Hive/Phoenix/SparkSQL)

    简介

    SQL开发工具,如DbVisualizer、DBeaver、Squirrel是数据库开发的常用选择,虽然这些工具大多不提供原生Hive、SparkSQL、Phoenix的支持,但是通过它们支持的自定义JDBC的能力,我们可以与FusionInsignt提供的Fiber组件的JDBC接口进行对接,实现这Hive、SparkSQL、Phoenix组件的统一SQL查询。

    • Fiber架构图

    本文档主要描述在Window操作系统,DbVisualizer通过Fiber方式对接FusionInsight HD的Hive、Spark2x、Phoenix组件。

    准备工作

    • 登录FusionInsight Manager创建一个“人机”用户,例如:developuser,具体请参见FusionInsight HD产品文档的管理员指南->系统设置->权限设置->用户管理->创建用户章节。给developuser用户授予所有访问权限,包含但不限于Spark2x、Hive、HBase。

    • 已完成FusionInsight HD客户端安装,具体请参见FusionInsight HD产品文档的应用开发指南->安全模式->安全认证->配置客户端文件章节。

    • 已将集群的节点主机名与IP的映射关系加入到windows的hosts文件中C:WindowsSystem32driversetchosts

    • 客户端机器的时间与FusionInsight HD集群的时间要保持一致,时间差小于5分钟。

    • Windows上已经安装好jdk1.8或者以上版本,并完成jdk环境变量配置。

    • Hive数据库已存在表student,数据类似于:

    示例如下:

    CREATE TABLE IF NOT EXISTS student(id INT, name STRING, class_id INT);
    INSERT INTO student VALUES (1,'Tom',1);
    INSERT INTO student VALUES (2,'Sandy',2);
    INSERT INTO student VALUES (3,'Benny',3);
    INSERT INTO student VALUES (4,'Tina',1);
    

    Fiber认证方式配置

    操作场景

    Fiber的安全认证有kinit和keytab两种方式。具体参数配置说明可参考FusionInsight HD产品文档的业务操作指南->统一SQL(Fiber)->客户端配置章节。

    前提条件

    • 已完成准备工作。

    • 将FusionInsight HD客户端的Fiber、Hive、Spark2x、HBase客户端文件夹,拷贝至本地新建目录C:ecotesting。假设FusionInsight HD客户端安装于/opt/hadoopclient目录,则:

    • /opt/hadoopclient/Fiber拷贝至本地C:ecotesting目录。

    • /opt/hadoopclient/Hive拷贝至本地C:ecotestingFiber目录。

    • /opt/hadoopclient/Spark2x拷贝至本地C:ecotestingFiber目录。

    • /opt/hadoopclient/HBase拷贝至本地C:ecotestingFiber目录。

    • C:ecotestingFiberHBasehbaselibphoenix-core-4.13.1-HBase-1.3.jar拷贝至C:ecotestingFiberlib

    • 登录FusionInsight Manager的系统->用户->更多(developuser)->下载认证凭证,下载developuser对应的认证凭证。将用户的 krb5.conf 和 user.keytab 文件拷贝到C:ecotestingFiberconf目录下。

    操作步骤

    使用kinit认证方式配置

    • http://web.mit.edu/kerberos/dist/#kfw-4.0下载对应操作系统架构的MIT Kerberos并安装。

    • 设置Kerberos的配置文件。将用户的krb5.conf文件重命名为 krb5.ini 放在C:ProgramDataMITKerberos5目录下。

    • 设置Kerberos票据的缓存文件

    • 在本地创建存放票据的目录,例如C: emp

    • 设置Windows的系统环境变量,变量名为KRB5CCNAME,变量值为C: empkrb5cache

    • 在Windows上进行认证

    打开MIT Kerberos,单击 get Ticket ,在弹出的MIT Kerberos: Get Ticket窗口中,Pricipal 输入用户名developuser@HADOOP.COMPassword 输入密码,单击 OK

    • C:ecotestingFiberconf目录下新建 jaas.conf 文件,内容如下所示:
    Client {
      com.sun.security.auth.module.Krb5LoginModule required
      useKeyTab=false
      useTicketCache=true
      debug=true;
    };
    

    - 修改配置文件C:ecotestingFiberconffiber.xml

    Hive的JDBC配置示例:

    <jdbc>
      <identify>hive</identify>
      <describe>hive jdbc configuration</describe>
      <driverClass>org.apache.hive.jdbc.HiveDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>     
      <classPath>C:\ecotesting\Fiber\Hive\config;C:\ecotesting\Fiber\Hive\Beeline\lib;C:\ecotesting\Fiber\Hive\Beeline\conf</classPath>
      <jdbcUrl>jdbc:hive2://172.16.4.21:24002,172.16.4.22:24002,172.16.4.23:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM</jdbcUrl>
      <properties>
        <property>
          <name>java.security.krb5.conf</name>
          <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
        </property>
        <property>
          <name>java.security.auth.login.config</name>
          <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
        </property>
        <property>
          <name>zookeeper.server.principal</name>
          <value>zookeeper/hadoop.hadoop.com</value>
        </property>
        <property>
          <name>zookeeper.kinit</name>
          <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
        </property>
      </properties>
    </jdbc>
    

    Spark2x的JDBC配置示例:

    <jdbc>
      <identify>Spark2x</identify>
      <describe>Spark2x jdbc configuration</describe>
      <driverClass>org.apache.hive.jdbc.HiveDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>
      <classPath>C:\ecotesting\Fiber\Spark2x\spark\conf;C:\ecotesting\Fiber\Spark2x\spark\jars</classPath>
      <jdbcUrl>jdbc:hive2://172.16.4.21:24002,172.16.4.22:24002,172.16.4.23:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=sparkthriftserver2x;saslQop=auth-conf;auth=KERBEROS;principal=spark2x/hadoop.hadoop.com@HADOOP.COM</jdbcUrl>
      <properties>
      <property>
        <name>java.security.krb5.conf</name>
        <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
      </property>
      <property>
        <name>java.security.auth.login.config</name>
        <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
      </property>
      <property>
        <name>zookeeper.server.principal</name>
        <value>zookeeper/hadoop.hadoop.com</value>
      </property>
      <property>
        <name>zookeeper.kinit</name>
        <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
      </property>
      </properties>
    </jdbc>
    

    Phoenix的JDBC配置示例:

    <jdbc>
      <identify>phoenix</identify>
      <describe>phoenix jdbc configuration</describe>
      <driverClass>org.apache.phoenix.jdbc.PhoenixDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>
      <classPath>C:\ecotesting\Fiber\HBase\hbase\lib;C:\ecotesting\Fiber\HBase\hbase\conf</classPath>
      <jdbcUrl>jdbc:phoenix</jdbcUrl>
      <properties>
        <property>
          <name>java.security.krb5.conf</name>
          <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
        </property>
        <property>
          <name>java.security.auth.login.config</name>
          <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
        </property>
        <property>
          <name>zookeeper.server.principal</name>
          <value>zookeeper/hadoop.hadoop.com</value>
        </property>
        <property>
          <name>zookeeper.kinit</name>
          <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
        </property>
      </properties>
    </jdbc>
    

    使用keytab认证方式配置

    • C:ecotestingFiberconf目录下新建 jaas.conf 文件,示例如下:

      Client {
        com.sun.security.auth.module.Krb5LoginModule required
        useKeyTab=true
        keyTab="C:\ecotesting\Fiber\conf\user.keytab"
        principal="developuser"
        useTicketCache=false
        storeKey=true
        debug=true;
      };
      
    • 修改配置文件C:ecotestingFiberconffiber.xml

    Hive的JDBC配置示例:

    <jdbc>
      <identify>hive</identify>
      <describe>hive jdbc configuration</describe>
      <driverClass>org.apache.hive.jdbc.HiveDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>     
      <classPath>C:\ecotesting\Fiber\Hive\config;C:\ecotesting\Fiber\Hive\Beeline\lib;C:\ecotesting\Fiber\Hive\Beeline\conf</classPath>
      <jdbcUrl>jdbc:hive2://172.16.4.21:24002,172.16.4.22:24002,172.16.4.23:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM;user.principal=developuser;user.keytab=C:/ecotesting/Fiber/conf/user.keytab</jdbcUrl>
       <properties>
        <property>
          <name>java.security.krb5.conf</name>
          <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
        </property>
        <property>
          <name>java.security.auth.login.config</name>
          <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
        </property>
        <property>
          <name>zookeeper.server.principal</name>
          <value>zookeeper/hadoop.hadoop.com</value>
        </property>
        <property>
          <name>zookeeper.kinit</name>
          <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
        </property>
      </properties>
    </jdbc>
    

    Spark2x的JDBC配置示例:

    <jdbc>
      <identify>Spark2x</identify>
      <describe>Spark2x jdbc configuration</describe>
      <driverClass>org.apache.hive.jdbc.HiveDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>
      <classPath>C:\ecotesting\Fiber\Spark2x\spark\conf;C:\ecotesting\Fiber\Spark2x\spark\jars</classPath>
      <jdbcUrl>jdbc:hive2://172.16.4.21:24002,172.16.4.22:24002,172.16.4.23:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=sparkthriftserver2x;saslQop=auth-conf;auth=KERBEROS;principal=spark2x/hadoop.hadoop.com@HADOOP.COM;user.principal=developuser;user.keytab=C:/ecotesting/Fiber/conf/user.keytab</jdbcUrl>
      <properties>
      <property>
        <name>java.security.krb5.conf</name>
        <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
      </property>
      <property>
        <name>java.security.auth.login.config</name>
        <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
      </property>
      <property>
        <name>zookeeper.server.principal</name>
        <value>zookeeper/hadoop.hadoop.com</value>
      </property>
      <property>
        <name>zookeeper.kinit</name>
        <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
      </property>
      </properties>
    </jdbc>
    

    Phoenix的JDBC配置示例:

    <jdbc>
      <identify>phoenix</identify>
      <describe>phoenix jdbc configuration</describe>
      <driverClass>org.apache.phoenix.jdbc.PhoenixDriver</driverClass>
      <securityClass>com.huawei.fiber.DefaultAuthenticationCallback</securityClass>
      <classPath>C:\ecotesting\Fiber\HBase\hbase\lib;C:\ecotesting\Fiber\HBase\hbase\conf</classPath>
      <jdbcUrl>jdbc:phoenix:172.16.4.21,172.16.4.22,172.16.4.23:24002:/hbase</jdbcUrl>
      <properties>
        <property>
          <name>java.security.krb5.conf</name>
          <value>C:\ecotesting\Fiber\conf\krb5.conf</value>
        </property>
        <property>
          <name>java.security.auth.login.config</name>
          <value>C:\ecotesting\Fiber\conf\jaas.conf</value>
        </property>
        <property>
          <name>zookeeper.server.principal</name>
          <value>zookeeper/hadoop.hadoop.com</value>
        </property>
        <property>
          <name>zookeeper.kinit</name>
          <value>C:\Program Files\Java\jdk1.8.0_202\jre\bin\kinit.exe</value>
        </property>
      </properties>
    </jdbc>
    
    • 对接Phoenix时,需要修改配置文件C:ecotestingFiberHBasehbaseconfhbase-site.xml新增属性 hbase.myclient.keytab 和 hbase.myclient.principal
    <property>
      <name>hbase.myclient.keytab</name>
      <value>C:\ecotesting\Fiber\conf\user.keytab</value>
    </property>
    <property>
      <name>hbase.myclient.principal</name>
      <value>developuser</value>
    </property>
    
  • 相关阅读:
    JS标签获取另一个页面传过来的href值
    jsp/servlet实现简单上传和下载
    servlet跳转页面后图片不显示
    Nginx 配置实例-动静分离
    将博客搬至博客园
    nginx 配置实例-反向代理
    Nginx 简介与安装、常用的命令和配置文件
    nginx 配置实例-负载均衡
    nginx 配置实例-反向代理
    Nginx 简介与安装、常用的命令和配置文件
  • 原文地址:https://www.cnblogs.com/bonelee/p/13370912.html
Copyright © 2011-2022 走看看