更新时间:2024-11-05 GMT+08:00

创建外部服务器

创建HDFS外部服务器的操作步骤如下:

手动创建外部服务器

  1. 使用数据库管理员通过GaussDB(DWS)提供的数据库客户端连接默认数据库postgres。

    例如:通过gsql客户端登录数据库的用户可以使用以下两种方法中的一种进行连接:

    可以通过以下两种方法中的一种进行连接:

    • 如果已经登录了gsql客户端,可以执行以下命令切换数据库和用户:
      1
      \c postgres dbadmin;
      

      根据提示输入密码。

    • 如果尚未登录gsql客户端,或者已经登录了gsql客户端执行\q退出gsql后,执行以下命令重新进行连接:
      1
      gsql -d postgres -h 192.168.2.30 -U dbadmin -p 8000 -W password -r
      

  2. 执行以下命令查询自动创建的外部服务器的信息:

    1
    SELECT * FROM pg_foreign_server;
    

    返回结果如下:

    1
    2
    3
    4
    5
    6
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     gsmpp_server                                     |       10 |  13673 |         |            |        |
     gsmpp_errorinfo_server                           |       10 |  13678 |         |            |        |
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:25000,192.168.1.218:25000",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (3 rows)
    

    查询结果中,每一行代表一个外部服务器的信息。与MRS数据源连接相关联的外部服务器包含以下信息:

    • srvname值包含“hdfs_server”字样以及MRS集群的ID,此ID与MRS管理控制台的集群列表MRS ID相同。
    • srvoptions字段中的address参数为MRS集群的主备节点的IP地址及端口。

    您可以根据上述信息找到您所要的外部服务器,并记录下它的srvname和srvoptions的值。

  3. 切换为即将创建外部服务器的用户去连接其对应的数据库。

    在本示例中,执行以下命令,使用创建用户和数据库并授予外表权限中创建的普通用户dbuser连接其创建的数据库mydatabase:
    1
    \c mydatabase dbuser;
    

  4. 创建外部服务器。

    创建外部服务器的详细语法,请参见CREATE SERVER。示例如下:

    1
    2
    3
    4
    5
    6
    7
    CREATE SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692cahdfs_server FOREIGN DATA WRAPPER HDFS_FDW 
    OPTIONS 
    (
    address '192.168.1.245:25000,192.168.1.218:25000', 
    hdfscfgpath '/MRS/8f79ada0-d998-4026-9020-80d6de2692ca',
    type 'hdfs'
    );
    

    以下为必选参数的说明:

    • 外部服务器名称

      允许用户自定义名字。

      在本例中,指定为前面的2中记录下来的srvname字段的值,如'hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca'。

      不同的数据库之间资源是隔离的,因此在不同的数据库中外部服务器名称可以相同。

    • FOREIGN DATA WRAPPER

      只能指定为HDFS_FDW,它在数据库中已经存在。

    • OPTIONS参数
      以下参数请分别指定为2中记录下来的srvoptions中的参数值。
      • address

        指定HDFS集群的主备节点所在的IP地址以及端口。

      • hdfscfgpath

        指定HDFS集群配置文件路径。该参数仅支持type为HDFS时设置。只能设置一个路径。

      • type

        取值为'hdfs',表示HDFS_FDW连接的是HDFS。

  5. 查看外部服务器:

    1
    SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca';
    

    返回结果如下所示,表示已经创建成功:

    1
    2
    3
    4
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:25000,192.168.1.218:25000",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (1 row)