SelectDB Ecosystem
X2Doris
使用手册

使用手册

修改默认用户密码

用户登陆成功后,可以点击主界面右上角的“用户名”修改密码。

1 修改默认用户密码.png

点击修改密码按钮,弹出如下界面,按照界面提示填写相关信息即可修改密码

2 修改默认用户密码 2.png

修改密码后,会提示修改密码成功弹窗,可以选择立即退出或者取消。

3 修改默认用户密码 3.png

系统设置

在正式使用平台之前,要做的第一件事就是进入 设置中心 设置系统参数,该部分参数都为必须要设置的参数,具体如下:

4 系统设置.png

  1. Hadoop user: 指定提交作业到 yarn 上的用户 (无 Hadoop 环境跳过)
  2. Spark Home: 如果你有大数据集群,且安装了 Spark,则指定下你集群的 Spark Home
  3. Hive metastore uris: 如果 Hive 数据迁移至 Doris,需要知道 hvie 的 metastore uri (非 hive 数据源跳过)
  4. Target doris info: 迁移数据的目标 Doris 或者 SelectDB Cloud 连接信息设置。

其中 Target doris info 点击编辑 按钮,会有弹窗,直接输入相关信息即可,如下:

5-系统设置 2.png

HTTP Nodes:

HTTP 连接的 host 和 port,多个用“,”连接,如:192.168.0.1:8030,192.168.0.1:8030

MySQL Nodes:

MySQL JDBC 连接的 host 和 port , 多个用"," 连接,如:192.168.0.1:9030,192.168.0.1:9030

开启通过 BE 节点写入:

可以不用设置,只有当注册到 FE 的 BE 地址由于网络问题无法使用时可以手动指定 BE 地址,才需要指定

⚠️

注意:如果是目标是 SelectDB Cloud 则去 SelectDB Cloud 连接信息里检查连接的 host 和 port

Hive to Doris

1. 前置条件

  1. 部署 X2Doris 的机器必须可以连接 Hadoop 集群,是 Hadoop 的一个节点,或至少有 Hadoop gateway 环境(可以在该机器上执行 Hadoop,Hive 命令,能正常连接访问 Hadoop,Hive 集群
  2. 部署 X2Doris 的机器必须配置了 Hadoop 环境变量,必须配置 HADOOP_HOME,HADOOP_CONF_DIRHIVE_CONF_DIR,例如:
export HADOOP_HOME=/opt/hadoop #hadoop 安装目录
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HIVE_HOME=$HADOOP_HOME/../hive
export HIVE_CONF_DIR=$HADOOP_HOME/conf
export HBASE_HOME=$HADOOP_HOME/../hbase
export HADOOP_HDFS_HOME=$HADOOP_HOME/../hadoop-hdfs
export HADOOP_MAPRED_HOME=$HADOOP_HOME/../hadoop-mapreduce
export HADOOP_YARN_HOME=$HADOOP_HOME/../hadoop-yarn
⚠️

注意:在 HADOOP_CONF_DIRHIVE_CONF_DIR 下 必须要有hive-site.xml

2. 配置元数据读取

修改配置文件 conf/application-hive.yaml来设置获取 Hive 元数据方式,目前支持三种:JDBC阿里云 DLFMetastore

1. Metastore

这是默认推荐的读取 Hive 元数据的方式,如果 Hive 是标准的 Apache Hive,则推荐这种方式,直接将 client 设置为 metastore 即可

6 配置元数据读取.png

2. JDBC 方式

如果因为诸如权限等问题,不能使用metastore 的方式,则可以尝试使用 JDBC 的方式,将 client 设置为 JDBC,设置对应的 jdbcUrl 和用户名、密码,同时可以通过在 set 后面添加配置来设置链接参数

7 配置元数据读取-jdbc.png

3. 阿里云 DLF

如果 Hive 是阿里云的 Hive,则需要设置 client 为 dlf,填写阿里云 DLF 服务有效的 ak、sk、认证类型、endpoint、regionId 以及 catalogId

8-配置元数据读取 - 阿里云.png

在 System Settings 中配置 Metastore 的 thrift 链接地址

9 配置 Metastore 的 thrift 链接地址.png

配置好后点击 提交 提交配置

10 submit 提交配置.png

提示更新成功表示可以正常连接

11 提示更新成功.png

3. 设置系统信息

Hive 需要设置以下信息,该部分参数都为必须要设置的参数,具体如下:

  1. Hadoop user: 该作业会访问 Hive 数据,该 Hadoop user 即为操作 Hive 表的 Hadoop 用户 (日常 Hive 作业的操作用户即可)
  2. Spark Home: 指定部署机安装的 Spark 的路径
  3. Hive metastore Uri : Hive 的 metastore uri,可以去 $HADOOP_CONF_DIR 下查找 hive-site.xml 的配置获取
  4. 目标 Doris(SelectDB Cloud) : 目标要写出数据的 Doris (SelectDB Cloud) 的信息

12 x2doris 设置系统信息.png

4. 创建同步作业

系统设置 完成之后,就可以进入到 作业中心 了,这里可以点击 添加 来创建一个作业:

13 创建同步作业.png

在添加的时候会自动检测 Hive 环境的连接情况,如果 Hive 连接失败,会告警:

14 Hive 连接失败告警.png

那么此时就需要检查: "系统设置" 里的 Hive metastore uris 和当前部署机的通讯是否正常了。这一步必须要确保通过才可以进行后续的迁移工作,如果连接正常就可以直接进行新增作业。

5. 字段类型映射

如果和 Hive 连接正常,就会自动把 Hive 数仓中所有的库和表都罗列出来。此时就可以点击左侧的树形目录,选择目标表进行操作,选中一个表之后,右侧会自动罗列出该表与 Doris 的字段映射关系,可以很轻松的映射目标 Doris 表的字段类型。根据提示进行操作即可完成字段的映射。DUPLICATE KEYDISTRIBUTED KEY 是 Doris Duplicate 模型中必须要指定的参数,按需进行指定即可。

⚠️

注意:已经自动识别了 Hive 表中的分区字段,并且自动强制将分区自动设置为DUPLICATE KEY 字段

15 字段类型映射.png

⚠️

注意:

  • 自动生成的 Doris DDL 建表语句为 Duplicate 模型,可以根据实际情况手动修改
  • STRING 类型不能设置为 DUPLICATE KEY,需要将 STRING类型改成 VARCHAR 类型即可

6. 分区映射

如果 Hive 原表中的分区字段类型是 STRING ,则可以根据数据实际类型判断是否需要将对应的 Doris 表的字段类型转成时间类型。如果转成时间类型的话,则需要设置分区的区间。

16 分区映射.png

7. 创建 Doris 表

完成前两步即可进入到 Doris 表 DDL 的确认阶段,在该阶段已经自动生成了对应的 Doris 表的建表 DDL 语句,你可以 进行 Review 确认,手动修改 DDL

17 创建 Doris 表.png

确认无误后,可以点击 创建 Doris 表

⚠️

注意:要确保对应 Doris 的库存在,库需要用户手动创建

18 手动创建.png

19 手动创建 2.png

8. 作业设置

在点击创建作业之后会弹出一个任务配置的界面,用户需要在这个界面配置任务迁移所需要的参数,具体示例如下:

20 作业设置.png

20 作业设置 2.png

具体参数解释如下(重要参数已经加粗):

  • Hive DB:自动生成,数据源的数据库名称
  • Hive Table:自动生成,数据源的要迁移的表的名称
  • App Name:自动生成,数据迁移任务的名称
  • App Tag:自动生成,数据迁移任务的 Tag
  • Master: 需要选择是 local 模式、yarn 模式还是 Standalone 模式,这里是指的 X2Doris 的任务运行的方式,这个根据实际情况调整。
  • Yarn Queue: Spark 任务运行所使用的队列资源
  • Memory Options: 这里需要选择 Spark 任务的一些内存参数,如 executor 和 driver 的 core 的数量和内存大小,这个根据实际情况进行调整。
  • Write Batch: 数据刷写时的批次大小,这个可以根据实际数据量调整大小,如果迁移的数据量比较大,建议该值调整为 500000 以上
  • Max retry:任务失败的重试次数,如果网络情况不理想,可以适当增大此参数
  • Spark option:Spark 的自定义参数,如果需要增加 Spark 任务的其他参数,可以在这里添加,以 key=value 的形式增加即可。
  • Properties: 数据迁移时,如果有针对数据源读取或者 Doris 数据写入的一些优化参数,可以在这里编写,具体的参数描述可以看对应的 Spark connector 的官方文档

在上一步创建完数据迁移任务后,用户就可以在任务详情界面看到刚创建的数据迁移任务,如下图所示:

21 数据迁移任务.png

Doris to Doris

在作业中心点击“新增作业”选择 Doris/StarRocks,此时会弹窗,让选择数据源。

22 Doris To Doris.png

如果之前没有添加数据源,则需要先添加数据源。

23 添加数据源.png

1. 添加数据源

点击左侧的“数据源”菜单。此时可以看到所有的数据源列表,可以选择新增一个数据源,这里我们选择新增一个 Doris 数据源。

24 添加数据源 2.png

此时会弹窗。让输入 Doris 的连接信息。如:

25 输入 Doris 的连接信息.png

设置 Doris 的 HTTP 节点、Jdbc 节点信息、用户名、密码,然后点击 确定 提交 也可以设置多个节点,格式为 ip1:port1,ip2:port2,ip3:port3,多个节点间以逗号分隔

在此过程中,会自动验证输入的连接信息,如果 host,用户名密码都正确,则会条件成功,页面会自动跳转到“数据源”页面,可以看到刚刚添加的数据源,如:

26 输入 Doris 的连接信息 3.png

2. 创建同步作业

添加“数据源”之后,返回到“作业中心“页面,可以重新点击“新增作业”,选择 Doris Source,此时会弹窗让选择数据源,点击使用即可:

28 doristodoris 创建同步作业.png

此时会跳转到作业如下页面:会将 Doris 中的数据库和表都以树形结构呈现出来,选择要迁移的表,你可以选择一张表,也可以选择多张,或者整库,如果选择单张表:此时会看到 ddl 语句已经自动生成,你可以 Review 确认这些 DDL

⚠️

注意:只有选择单表才会看到 DDL 语句,如果选择多表则使用默认生成策略生成的 DDL

确认无误后,你可以根据实际需求,进行建表,或者创建作业,这里的操作有:

  • 跳过建表:用于要迁移的表在 Doris (SelectDB Cloud) 目标端已经存在,则可以跳过建表
  • 只建表:用于只创建表,不创建迁移作业。
  • 创建表 & 作业:用于同时创建表和迁移作业

在此过程中,会自动识别字段。如果判断目标 Doris 为 SelectDB Cloud 则会自动处理 Properties 里的参数。

29 doristodoris 创建同步作业 2.png

3. 作业设置

最后一步作业设置具体参数和 Hive to Doris 操作一致。

StarRocks、Kudu 和 Doris 的迁移使用方式一致,这里不再赘述。

启动同步作业

在作业中心可以看到所有创建的作业,如下:

30 启动同步作业.png

点击操作里的“启动按钮”,会弹窗对应的窗口。如下:

31 启动同步作业 2.png

查询条件:该参数是我们允许在数据迁移的过程中,传入过滤条件,对数据源的数据进行 ETL 操作。这里在写对应条件的时候,不需要写 where 关键字,只需要写后边的过滤逻辑即可。

清空数据:这个按钮默认是 OFF 状态,点击切换到 ON 状态后,会在每次迁移任务运行前,对我们目标库的数据进行清除操作,是一个极度危险的操作,生产数据迁移时,慎重操作。

如果没有额外的 ETL 和清除数据的需求,我们只需要点击 OK 即可运行我们的数据迁移任务。

⚠️

注意:在运行任务之前,一定要在系统设置里配置 SPARK_HOME,否则没有 Spark 客户端环境,是无法提交 Spark 任务的。

更新作业迁移进度

在启动作业之后。作业的状态会自动刷新,前端会自动更新,迁移进度需要手动点击刷新按钮来查看数据的迁移状态,切记不要频繁的刷新进度更新按钮,此时迁移进度会显示出来。如下图:

32 更新作业迁移进度.png

参数优化指南

在 Doris/SR to Doris(SelectDB Cloud) 的场景中,如果你的 Doris 和 yarn 资源比较空闲,则可以进一步优化速度,可以在 properties 设置如下参数:

doris.request.tablet.size=1 #如果数据源是 doris
starrocks.request.tablet.size=1 #如果数据源是 starrocks

该参数作用是:一个 RDD Partition 对应的 Doris Tablet 个数。此数值设置越小,则会生成越多的 Partition。从而提升 Spark 侧的并行度,但同时会对 Doris 造成更大的压力。

如果使用的是 local 模式,可以通过 spark.local.parallelism 来调整 local 模式下的任务并发线程数,从而提升 local 模式下任务同步速度。

33 参数优化指南.png

任务失败如何定位

当我们的数据迁移任务失败后,优先排查我们安装 X2Doris 程序的运行日志,对应目录在 X2Doris 安装目录下的 log 目录,可以查看 selectdb.out 来观察和定位程序运行情况。

如果在查看上述日志没有解决问题的话,请携带日志以及该迁移任务运行的上下文背景,寻求 SelectDB 的官方人员的帮助。

© 2023 北京飞轮数据科技有限公司 京ICP备2022004029号 | Apache、Apache Doris 以及相关开源项目名称均为 Apache 基金会商标