1.背景介绍
OSS目前已经直接可以支持HDFS接口,底层数据都是存放在OSS上,但是hdfs的数据以一个单独的组织形式存在,这里一个需要解决的问题是如何将数据在hdfs和oss间款式转换,,“OSS数据湖特征中的HDFS元数据转换”功能就是解决以上问题而推出的(目前支持oss向hdfs转换,后续也会支持反向转换),并且兼顾效率(快速)和资源(不需要安装第三方程序不需要申请服务器)。本文基于此功能,主要探讨了如何简化仿真的流程。
2.业务流程
在自动加速的业务场景下,汽车上每天会产生很大的运行日志,如雷达,摄像头等等各种传感器产生的数据,这些数据一般都是存储在车载磁盘上,再讲数据同步到本地数据中心后再上传到云上对象存储进行保存,上传到云上通常会使用专线或者离线上传(比如使用数据立方),这样才能保障上传效率。
数据上传到云上后,数据想要直接使用还有点麻烦。当前的仿真业务,以及其他各种训练业务,使用posix/hdfs接口的居多,并不会直接使用对象接口,并且对象接口对诸如目录移动,目录扫描等操作效率比较低。所以这里需要将数据进行一次导出,比如导出到CPFS或者DFS等存储系统,这里就涉及到大量数据移动,时间成本很高。如果使用了dstcp等工具来导入hdfs,还需要额外申请ECS来部署导入工具。
总结起来,目前使用数据前的导入导出工作:
1.时间开销大:转换需要读取数据,再写入数据,文件多耗时长
2.资源开销大:单独申请资源来部署导入导出工具
针对这个导入导入的动作,使用oss-hdfs的元数据转换功能可以提高效率,减少成本。
oss-hdfs服务的数据也是存储在OSS上,减少了一个外部存储的节点,并且oss-hdfs的元数据转换和导入导出最大的不同是,其并不是讲所有的数据都读取,而是尽可能的只对元数据做操作,从而减少数据的拷贝。在通常情况下,能减少99%的数据移动,并且不需要额外的资源,只需要在oss控制台上就可以启动服务。
3 演示
PS:目前OSS-HDFS元数据转换第一个版本刚发布,正在邀测阶段,后续页面和接口可能会变化。
在oss控制台->数据湖管理->数据转换页面中,可以创建新的任务,最多可以创建3个任务。
将需要转换的目录填入“命中前缀”,最多可以填10个目录。
配置完成后点击“启动任务”后,任务会进入运行阶段。
等待一段时间后,任务会再次变为“空闲”状态,可以在其历史记录中查看任务运行的结果。