Exchange常见问题

    检查的值是否配置为*,如果为*,请修改为central*,!SparkPackagesRepo,!bintray-streamnative-maven

    原因:Exchange的pom.xml中有两个依赖包不在Maven的central仓库中,pom.xml配置了这两个依赖所在的仓库地址。如果maven中配置的镜像地址对应的mirrorOf值为*,那么所有依赖都会在central仓库下载,导致下载失败。

    Yarn-Cluster模式下如何提交?

    在Yarn-Cluster模式下提交任务,请参考如下命令:

    报错

    一般是端口配置错误,需检查Meta服务、Graph服务、Storage服务的端口配置。

    绝大多数是因为JAR包冲突和版本冲突导致的报错,请检查报错服务的版本,与Exchange中使用的版本进行对比,检查是否一致,尤其是Spark版本、Scala版本、Hive版本。

    Exchange导入Hive数据时报错Exception in thread "main" org.apache.spark.sql.AnalysisException: Table or view not found

    检查提交exchange任务的命令中是否遗漏参数-h,检查table和database是否正确,在spark-sql中执行用户配置的exec语句,验证exec语句的正确性。

    运行时报错com.facebook.thrift.protocol.TProtocolException: Expected protocol id xxx

    请检查Nebula Graph服务端口配置是否正确。

    • 如果是源码、RPM或DEB安装,请配置各个服务的配置文件中--port对应的端口号。

    • nebula-docker-compose目录下执行docker-compose ps,例如:

      查看Ports列,查找docker映射的端口号,例如:

      - Graph服务可用的端口号是9669。

      - Meta服务可用的端口号有33167、33168、33164。

      - Storage服务可用的端口号有33183、33177、33185。

    检查 Exchange 版本与 Nebula Graph 版本是否匹配,详细信息可参考使用限制

    哪些配置项影响导入性能?

    • batch:每次发送给Nebula Graph服务的nGQL语句中包含的数据条数。

    • partition:Spark数据的分区数,表示数据导入的并发数。

    • - limit:表示令牌桶的大小。

      - timeout:表示获取令牌的超时时间。

    根据机器性能可适当调整这四项参数的值。如果在导入过程中,Storage服务的leader变更,可以适当调小这四项参数的值,降低导入速度。

    Exchange支持哪些版本的Nebula Graph?

    请参见Exchange的。

    Exchange是在Spark Writer基础上开发的Spark应用程序,二者均适用于在分布式环境中将集群的数据批量迁移到Nebula Graph中,但是后期的维护工作将集中在 Exchange上。与Spark Writer相比,Exchange有以下改进:

    • 支持更丰富的数据源,如MySQL、Neo4j、Hive、HBase、Kafka、Pulsar等。


    最后更新: October 8, 2021