使用前的对接配置
在使用SQL on Hadoop功能前需要先完成openGauss数据库实例与远端Hado数据库实例的对接配置。
FusionInsight Manager界面中提供了openGauss与FusionInsight HD Hadoop数据库实例的对接配置办法。但是目前仅支持配置一个连接。如果在Manager上完成了对接配置,且只需要访问一个HD Hdoop数据库实例,可以跳过此节。
若需要访问多个HD Hadoop数据库实例,或要访问FusionInsight HD之外的其他Hadoop数据库实例,可以参照如下方法,在openGauss数据库实例主机上通过手动方式配置对接。
检查以确保openGauss可以正常访问远端Hadoop数据库实例中NameNode,DataNode,Kerberos服务对应的端口。
检查方法为:
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”字段。
下载HDFS客户端并使用MobaXterm将客户端安装包上传至openGauss数据库实例任意一台主机。之后,以root用户登数据库实例主机并安装HDFS客户端。
HDFS客户端的下载和安装办法请参考对应的Hadoop文档。此处不做赘述。
创建一个用来统一放置配置文件的目录。例如,hdfs_cfg。
mkdir /hdfs_cfg
目录创建完成后,请验证确保omm用户可以访问。若不可访问,请使用chmod命令进行授权
# su - omm
> cd /hdfs_cfg
能正常进入目录,则表示omm用户具有目录访问权限。
在安装好的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”。
在Hadoop数据库实例中创建供openGauss访问Hadoop的用户,也可以使用已有的Hadoop用户。
如果Hadoop数据库实例使用的是FusionInsight HD,则可以在FusionInsight HD的Manager界面上进行用户创建。其他Hadoop数据库实例的用户创建办法请参考相应的Hadoop资料。
下载上一步所建用户对应的keytab文件,然后拷贝keytab文件到3所创建的配置目录hdfs_cfg下。
在配置目录下手动添加elk-site.xml文件,并添加如下示例的内容。注意根据连接使用的Hadoop用户对应修改粗体部分。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>user/hadoop.hadoop.com@HADOOP.COM</value> //连接Hadoop的用户@域名
</property>
<property>
<name>dfs.namenode.kerberos.keytab</name>
<value>{配置目录}/user.keytab</value> //连接Hadoop用户的keytab文件的绝对路径
</property>
</configuration>
检查配置目录hdfs_cfg,以确保其下包含5个文件:hdfs-site.xml,core-site.xml,elk-site.xml,user.keytab,krb5.conf。
以omm用户分别登录openGauss数据库实例其他主机。使用scp -r命令将配置目录拷贝到openGauss数据库实例的所有主机上。注意保持路径一致。命令示例如下。IP地址请根据实际替换。
scp -r omm@10.10.0.1:/hdfs_cfg ./
使用CREATE SERVER语法定义外部服务器来存储HDFS数据库实例信息。指定hdfscfgpath时,需要指定为上面准备好的配置路径“/hdfs_cfg”。之后创建外表关联该Server即可。
不同Hadoop数据库实例的远程连接通过不同的Foreign Server进行隔离和识别,而每个Foreign Server对应一个配置目录。因此,如果远程访问多个Hadoop数据库实例时,请为不同的数据库实例创建对应的配置目录和Foreign Server定义。
说明: 如本节开始所述,如果通过FusionInsight Manager界面进行对接配置,hdfscfgpath的值请参考配套资料进行设置。 从本节的描述也可以看出,hdfscfgpath的值对应为HDFS客户端配置文件的保存路径,该路径支持用户通过上述步骤手工配置。因此,文档示例中关于hdfscfgpath的值仅供参考,请根据实际配置情况进行修改。