如何在FusionInsight环境下进行分布式空间分析与地图服务发布

Fusioninsight 是华为提供的大数据平台,融合了HDFS、YARN、Spark、Hive等主流的分布式开源组件,满足多种用户需求同时混合负载、开放应用。Fusioninsight 通过KrbServer为所有组件提供Kerberos认证功能。

本文档指导了如何对接华为FusionInsight平台,通过Kerberos认证,使用SuperMap大数据产品进行分布式空间分析与地图服务发布。使用本文档进行配置后,可完成的操作有:

  • 使用SuperMap iServer基于FusionInsight的Yarn进行分布式空间分析,如点聚合。
  • 使用SuperMap iObjects for Spark基于FusionInsight的Yarn的进行分布式空间分析。
    1. 支持将数据导入华为HDFS分布式存储,
    2. 支持将数据导入华为HBase分布式存储,
    3. 读取1生成的位于HDFS中的DSF数据集进行分布式分析,如overlay-analyst, clip-region等。
  • SuperMap iDesktopX读取华为HDFS或HBase中的数据集进行配图,保存的工作空间在iServer中发布为地图服务。
  • SuperMap iServer直接发布Hbase中的数据集为地图服务。

1. 环境准备

能连接fusioninsight的Linux服务器,最好与华为的服务器型号一致,都为X86或都为ARM服务器:

本例使用172.23.172.146

准备软件:

SuperMap iServer

SuperMap iDesktopX

SuperMap iObjects for Spark

SuperMap iObjects Java(选配,若不配置则无法使用UDB/UDBX数据源,缓冲区、数据融合、叠加分析、空间查询、空间连接、区域汇总分析)

2. Kerberos连接配置

2.1 准备Kerberos认证文件

下载密钥文件,进入【系统设置】->【用户管理】页面,找到supermap用户,下载对应密钥文件。

将krb5.conf, user.keytab, jaas.conf文件拷贝至172.23.172.146服务器以及集群各节点的相同路径下,本例放于/supermap/文件夹下

拷贝华为集群中hdfs、hbase的配置文件core-site.xml, hdfs-site.xml, hbase-site.xml至172.23.172.146服务器和集群各节点的相同路径下,本例放于/supermap/文件夹下

2.2 配置Kerberos认证相关变量

配置Kerberos认证相关参数。在使用BDT、iDesktop或iServer前,确保以下几个变量添加到172.23.172.146服务器系统变量当中:

  • BDT_PRINCIPAL 变量为kerberos认证的主体名称
  • BDT_KEYTAB  变量为keytab文件的绝对路径,需要集群中的每个节点的相同位置都有该文件
  • BDT_KERBEROS_CONF 该变量为kerberos认证的配置文件的绝对路径,如krbs5.conf,需要集群中的每个节点的相同位置都有该文件
  • BDT_JAAS_CONF 该变量为kerberos认证的jaas配置文件的绝对路径,如jaas.conf,需要集群中的每个节点的相同位置都有该文件
  • BDT_CORE_SITE 该变量为core-site.xml文件的绝对路径,,需要集群中的每个节点的相同位置都有该文件
  • BDT_HBASE_SITE 该变量为hbase-site.xml文件的绝对路径,需要集群中的每个节点的相同位置都有该文件
  • BDT_HDFS_SITE 该变量为hdfs-site.xml文件的绝对路径,需要集群中的每个节点的相同位置都有该文件
  • SPARK_LOCAL_IP  在云环境下,有时会有双网卡IP,使用IP会出现无法访问到的情况,考虑到集群下都配置了hosts,用户可以通过SPARK_LOCAL_IP系统变量来设置
  • BDT_SPARK_DEFAULT_CONF  用于设置gp服务运行是指定的spark-default.conf文件的路径,在华为的fusioninsiht环境下,需要设置该变量。

可将以上环境变量写至一个文件中,在每次启动BDT、iDesktop或iServer前,使用source命令使配置生效,打印BDT_PRINCIPAL查看是否成功生效。

此步骤后可在Linux服务器上使用iObjects for Spark和iDesktopX对接FusionInsight环境。

2.3 使用HBase时的配置

在使用HBase相关功能时,还需要配置相应的协处理器,推荐使用geomesa-hbase-distributed-runtime_2.11-2.2.0.jar版本。此方法不需要在服务端配置协处理器文件,而是将文件配置在HDFS存储中,更加便捷可控。

首先确认以上BDT_HBASE_SITE指向的hbase-site.xml文件中是否配置了hbase.rootdir路径,没有则需要对每个节点补充配置进去,并重启hbase:

确认hbase-site.xml中有以下配置,否则连接hbase时会报错找不到principal,principal和keytab的配置与上节环境变量一致:

将协处理器文件配置到hdfs://hacluster/hbase/lib目录下,使用时会默认查找hbase.rootdir/lib目录下的协处理器文件。

确认其他地方没有配置协处理器,如服务器的hbase/lib目录下,如有已配置的geomesa文件则需要删除。此步骤后即可在Linux服务器上使用BDT或iDesktopX将数据导入HBase并出图。

3. iObjects for Spark的使用

使用iObjects for Spark的命令行可以简单完成各种导入导出和分析功能,可作为检查环境是否连通的测试方案。

若第三步配置的环境变量已经写入了文件中,需要在每次重新打开xshell连接界面时source该文件,让环境变量生效,打印BDT_PRINCIPAL查看是否成功生效。

使用本机或华为yarn进行分布式数据导入或数据分析操作。例如:

  • 使用本机spark,导udb至hdfs(由于udb数据不支持放在hdfs上,因此只能将数据拷贝到华为集群服务器的共享目录下使用yarn导入或使用单机spark执行导入):
spark-submit --master local[*] --jars /home/supermap/bdt/bdt-all-runtime-10.0.0-SNAPSHOT.jar  --class com.supermap.bdt.tools.Tools /home/supermap/bdt/bdt-tools-*.jar build-grid-index --input "sdx --server=/home/supermap/data/vector/county_4326.udb --type=udb --dataset-=county_pg_4326" --output "hdfs://hacluster/supermap/ziran/county_4326_dsf"
  • 使用华为Yarn集群, 导simplejson(gdb、shp都支持这种方式)至hbase
spark-submit --master yarn --jars /supermap/bdt_3/bdt-all-runtime-10.0.1-SNAPSHOT.jar  --class com.supermap.bdt.tools.Tools /supermap/bdt_3/bdt-tools-*.jar copy-features --input "simple-json --path=hdfs://hacluster/supermap/data/osm_pois.json" --output "hbase --catalog=ttt -Z=172.21.140.60:24002 -O=osm_pois"

4. iServer的使用

拷贝fusionInsight的hbase目录下华为的zookeeper库zookeeper-3.5.1.jar,zookeeper-fi-3.5.1.jar ,和hadoop-plugin-1.0.jar (x86环境下不需要hadoop-plugin-1.0.jar)。放至iServer的webapps/iserver/WEB-INF/lib/目录下

使用华为集群的spark2x包替换iServer/support文件夹下的spark文件夹。

启动iServer,配置【配置集群】和【分布式分析服务】项,使用华为Yarn集群,其中Hadoop Yarn集群配置目录为替换后的spark/conf目录:

/supermap/supermap_iserver_1000_17727_4245_linux64_deploy/support/spark/conf/

此步骤后可使用iServer对接华为Yarn集群进行分布式分析。

iserver注册hbase数据库:

iserver使用分布式分析要确认support/spark/conf/hbase-site.xml添加了登陆配置:

常见问题

1、iserver分布式分析启动后,点进去无法使用,日志报错“拒绝连接”:

解决方法:大数据环境的spark版本过低,需要使用2.x以上的版本,如使用Fusioninsight中的Spark2x来替换iserver中的文件

2、iObjects for Spark命令行执行时,报错buffer overflow的错误

解决方法:按提示增大spark.kryoserializer.buffer.max的设置,在命令行的--class前添加:--conf "spark.kryoserializer.buffer.max=1g"

3、执行分布式分析时报错“blacklist”的错误

解决方法:Spark版本2.1.0与Hadoop3.x不兼容,升级spark版本至2.3

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值