使用前的对接配置

在使用SQL on Hadoop功能前需要先完成openGauss数据库实例与远端Hado数据库实例的对接配置。

FusionInsight Manager界面中提供了openGauss与FusionInsight HD Hadoop数据库实例的对接配置办法。但是目前仅支持配置一个连接。如果在Manager上完成了对接配置,且只需要访问一个HD Hdoop数据库实例,可以跳过此节。

若需要访问多个HD Hadoop数据库实例,或要访问FusionInsight HD之外的其他Hadoop数据库实例,可以参照如下方法,在openGauss数据库实例主机上通过手动方式配置对接。

  1. 检查以确保openGauss可以正常访问远端Hadoop数据库实例中NameNode,DataNode,Kerberos服务对应的端口。

    检查方法为:

    1. telnet [Hadoop主机IP地址] [端口号]

    需要检查的端口包括:

    • NameNode提供RPC服务的端口,通常默认是25000。若不确认端口号,可以在Hadoop数据库实例的主机上查看配置文件hdfs-site.xml中的”dfs.namenode.rpc-address.*“字段。
    • Datanode提供RPC服务的端口,通常默认是25008。若不确认端口号,可以在Hadoop数据库实例的主机上查看配置文件hdfs-site.xml中的”dfs.datanode.ipc.port”字段。
    • Datanode提供数据服务的端口,通常默认是25009。若不确认端口号,可以在Hadoop数据库实例的主机上查看配置文件hdfs-site.xml中的”dfs.datanode.port”字段。
    • Kerberos的admin服务端口,通常默认是21730。若不确认端口号,可以在Hadoop数据库实例的主机上查看配置文件krb5.conf中的”admin_server”字段。
    • Kerberos的kpassswd服务端口,通常默认是21731。若不确认端口号,可以在Hadoop数据库实例的主机上查看配置文件krb5.conf中的”kpasswd_server”字段。
  2. 下载HDFS客户端并使用MobaXterm将客户端安装包上传至openGauss数据库实例任意一台主机。之后,以root用户登数据库实例主机并安装HDFS客户端。

    HDFS客户端的下载和安装办法请参考对应的Hadoop文档。此处不做赘述。

  3. 创建一个用来统一放置配置文件的目录。例如,hdfs_cfg。

    1. mkdir /hdfs_cfg

    目录创建完成后,请验证确保omm用户可以访问。若不可访问,请使用chmod命令进行授权

    1. # su - omm
    2. > cd /hdfs_cfg

    能正常进入目录,则表示omm用户具有目录访问权限。

  4. 在安装好的HDFS客户端路径下找到hdfs-site.xml,core-site.xml,krb5.conf三个文件,并将文件拷贝到上一步创建的hdfs_cfg目录下。

    hdfs-site.xml和core-site.xml的路径为:“{客户端安装目录}/HDFS/hadoop/etc/hadoop”。krb5.conf的路径为:“{客户端安装目录}/KrbClient/kerberos/var/krb5kdc”。

  5. 在Hadoop数据库实例中创建供openGauss访问Hadoop的用户,也可以使用已有的Hadoop用户。

    如果Hadoop数据库实例使用的是FusionInsight HD,则可以在FusionInsight HD的Manager界面上进行用户创建。其他Hadoop数据库实例的用户创建办法请参考相应的Hadoop资料。

  6. 下载上一步所建用户对应的keytab文件,然后拷贝keytab文件到3所创建的配置目录hdfs_cfg下。

  7. 在配置目录下手动添加elk-site.xml文件,并添加如下示例的内容。注意根据连接使用的Hadoop用户对应修改粗体部分。

    1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    2. <configuration>
    3. <property>
    4. <name>dfs.namenode.kerberos.principal</name>
    5. <value>user/hadoop.hadoop.com@HADOOP.COM</value> //连接Hadoop的用户@域名
    6. </property>
    7. <property>
    8. <name>dfs.namenode.kerberos.keytab</name>
    9. <value>{配置目录}/user.keytab</value> //连接Hadoop用户的keytab文件的绝对路径
    10. </property>
    11. </configuration>
  8. 检查配置目录hdfs_cfg,以确保其下包含5个文件:hdfs-site.xml,core-site.xml,elk-site.xml,user.keytab,krb5.conf。

  9. 以omm用户分别登录openGauss数据库实例其他主机。使用scp -r命令将配置目录拷贝到openGauss数据库实例的所有主机上。注意保持路径一致。命令示例如下。IP地址请根据实际替换。

    1. scp -r omm@10.10.0.1:/hdfs_cfg ./
  10. 使用CREATE SERVER语法定义外部服务器来存储HDFS数据库实例信息。指定hdfscfgpath时,需要指定为上面准备好的配置路径“/hdfs_cfg”。之后创建外表关联该Server即可。

    不同Hadoop数据库实例的远程连接通过不同的Foreign Server进行隔离和识别,而每个Foreign Server对应一个配置目录。因此,如果远程访问多个Hadoop数据库实例时,请为不同的数据库实例创建对应的配置目录和Foreign Server定义。

    使用前的对接配置 - 图1 说明: 如本节开始所述,如果通过FusionInsight Manager界面进行对接配置,hdfscfgpath的值请参考配套资料进行设置。 从本节的描述也可以看出,hdfscfgpath的值对应为HDFS客户端配置文件的保存路径,该路径支持用户通过上述步骤手工配置。因此,文档示例中关于hdfscfgpath的值仅供参考,请根据实际配置情况进行修改。