ITPub博客

首页 > 数据库 > > 跨集群访问其他数据平台-配置访问远端Spark

跨集群访问其他数据平台-配置访问远端Spark

作者:GaussDB_数据库 时间:2020-01-13 14:11:25 0 删除 编辑

操作场景

当GaussDB 200需要访问远端Spark数据时或者需要数据互操作时,可以通过配置"对接Spark"使用该功能。

约束限制

  • 只支持配置访问FusionInsight HD中的Spark。
  • 仅支持连接FusionInsight HD 6.5.0及以上版本,并且GaussDB 200的版本要与FusionInsight HD的版本相同。
  • 仅支持连接安全模式的FusionInsight HD集群。
  • 只支持配置一组远端Spark配置。
  • 当前只支持运行在RedHat和SUSE环境上的GaussDB 200集群配置访问远端Spark,且不支持同集群内系统异构。
  • 要求Spark ODBC必须用GCC 5.4及以上版本编译。

前提条件

  • FusionInsight HD和GaussDB 200两个集群状态正常。
  • FusionInsight HD和GaussDB 200两个集群之间可以互相通信。
  • 配置所需要的Spark ODBC、KrbClient以及keytab等文件需要从FusionInsight HD集群的Manager界面下载获取:
    1. 下载客户端,获取Spark ODBC、KrbClient。
      1. 登录FusionInsight HD集群的Manager界面。
      2. 选择“概览 > 更多 > 下载客户端 ”,单击“确定”,通过上述步骤会获取到“FusionInsight_<集群ID>_Services_Client.tar”。
      3. 解压“FusionInsight_<集群ID>_Services_Client.tar”,接着解压“FusionInsight_Services_ClientConfig.tar”,在“FusionInsight_Services_ClientConfig”文件夹中会有“KrbClient”文件夹,将“KrbClient”文件夹压缩为“KrbClient.zip”。
      4. 将“FusionInsight_Services_ClientConfig/Spark2x”文件夹中的“DataSight_Spark_XXXX_HiveODBC.zip”解压,在“DataSight_Spark_XXXX_HiveODBC/Linux”文件夹中根据GaussDB 200集群所运行的系统环境选择Spark ODBC的rpm驱动包:
        • 如果是RedHat系统选择“datasight-hiveodbc-x.x.x-x.el6.x86_64.rpm”。
        • 如果是SUSE系统选择“datasight-hiveodbc-x.x.x-x.x86_64.rpm”。
    2. 下载认证凭据,获取keytab。
      1. 登录FusionInsight HD集群的Manager界面。
      2. 选择“系统 > 权限 > 用户”。
      3. 选择特定待下载凭证的用户所在行右边的“ 更多 >下载认证凭据”,通过上述步骤会获取到“kuser_xxxxxxx_keytab.tar”。
         说明:

        用户需要根据具体的业务需求,选择对应的用户来下载认证凭据。

    3. 将上述步骤中获取到的三个文件打包压缩为“package.zip”。
       说明:
      • “package.zip”中包含三个文件:“KrbClient.zip”、“datasight-hiveodbc-x.x.x-x.xxx.x86_64.rpm”、“kuser_xxxxxxx_keytab.tar”。
      • 用户需要保证“package.zip”中的内容完整以及正确。

操作步骤

  1. 登录FusionInsight Manager。
  2. 选择“集群 > 待操作的集群名称 > 服务 > MPPDB > 对接 > 对接Spark”,单击“创建”,填写配置组名称,单击“确定”。
  3. 填写配置参数,配置参数参见表1。

    表1 GaussDB 200跨集群访问Spark的配置项

    参数

    描述

    建议填写值

    remote_connect_spark_database

    默认Spark端库名称。

    default

    remote_connect_spark_dsn

    该组配置的DSN标识,以spark_开头,只允许由字母数字下划线组成,不能超过64个字符。

    注意:
    • “remote_connect_spark_dsn”值作为配置标示,保存配置后将不能修改,请用户慎重填写。
    • 不同Spark配置组中的“remote_connect_spark_dsn”参数值不能相同。

    spark_DSN

    remote_connect_spark_host

    HD Spark JDBCServer的业务IP或者ZooKeeper的业务IP和端口。

    说明:
    • 如果“remote_connect_spark_mode”取值为“0”,则该值为需要直连的Spark JDBCServer的业务IP。
    • 如果“remote_connect_spark_mode”取值为“1”,则该值为需要连接的那个集群的ZooKeeper的业务IP和端口。

    100.100.0.10:24002,100.100.0.11:24002,100.100.0.12:24002

    remote_connect_spark_jaas_principal

    “jaas.conf”文件的principal。

    注意:

    “remote_connect_spark_jaas_principal”中所填写的用户名需要与下载“Kuser_xxxxxxx_keytab.tar”所使用的用户一致。

    例如:如果下载了sparkuser用户的认证凭据,那么这里需要填写sparkuser@HADOOP.COM。

    sparkuser@HADOOP.COM

    remote_connect_spark_mode

    是否开启集群模式。

    注意:

    如果使用集群模式连接,在第一次执行kinit修改完密码之后,需要从Spark集群再次下载新的认证凭据,然后将新的凭据从后台手动上传至“${BIGDATA_HOME}/mppdb/core/utilslib/fc_conf/DSN”目录。

    remote_connect_spark_namespace

    ZooKeeper存储FusionInsight HD Spark JDBCServer IP和端口的namespace。

    sparkthriftserver2x

    remote_connect_spark_port

    FusionInsight HD Spark JDBCServer的端口。

    22550

    remote_connect_spark_principal

    FusionInsight HD Spark JDBCServer的principal。

    spark2x/hadoop.hadoop.com@HADOOP.COM

  4. 上传驱动文件“package.zip”,单击“上传并部署”,等待部署完成。
  5. 单击“保存”。等待保存配置成功,单击“完成”。
  6. 选择“更多 > 重启”,执行相应操作重启服务。
  7. 以操作系统用户omm登录GaussDB 200集群所有节点,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量,再使用kinit命令认证远端Spark用户。

    kinit sparkuser
    Password for sparkuser@HADOOP.COM:

  8. 连接Spark。例如:

    -- 假设Spark里已经存在表 t1 (c1 int, c2 string), 内容如下:
    -- 1 spark
    -- 2 hive
    -- 通过 exec_hadoop_sql 函数查询,其中spark_DSN是{remote_connect_spark_dsn}中填写的Spark的DSN
    postgres=# SELECT * FROM exec_hadoop_sql('spark_DSN', 'select * from t1;', '') AS (c1 int, c2 text);
    c1 | c2
    ----+-------
    1 | spark
    2 | hive
    (2 rows)
    -- 通过 exec_on_extension 函数查询
    postgres=# CREATE DATA SOURCE ds_spark OPTIONS(dsn 'spark_DSN');
    postgres=# SELECT * FROM exec_on_extension ('ds_spark', 'select * from t1;') AS (c1 int, c2 text);
    c1 | c2
    ----+-------
    1 | spark
    2 | hive
    (2 rows)
    postgres=# DROP DATA SOURCE ds_spark;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3134922/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 产品文档术语-A
请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19241