一面数据: Hadoop 迁移云上架构设计与实践
一面数据:Hadoop云迁移实战揭秘与关键点
一面数据,作为数据智能领域的先驱,自2014年起服务全球知名企业,直至2016年,他们已经在机房中部署了庞大的CDH集群来处理PB级别的海量数据。然而,随着数据的飞速增长,2021年,一面数据开始踏上云上大数据平台的探索之旅,目标是实现弹性扩展、存储与计算分离以及充分利用开源组件。他们选择了阿里云的云原生解决方案——EMR(Elastic MapReduce)配合JuiceFS和OSS,着重考量了阿里云的同城低延迟、丰富的开源生态以及JuiceFS的灵活性和开源特性。
迁移工程于2021年10月正式启动,采用分阶段实施策略,至今已取得40%的进度,目标是年底前完成迁移,预计云上EMR的数据量将达到1PB以上。在技术选型上,阿里云凭借其物理距离优化、丰富的开源组件支持以及JuiceFS的核心特性,成为首选。迁移过程中,一面数据小心翼翼地执行,确保业务的连续性和稳定性。
混合云架构的构建巧妙结合了IDC的专线与阿里云,综合考虑了网络连接、成本和施工周期。他们选择ecs.i2.16xlarge节点,配置JuiceFS本地SSD缓存,并将EMR升级至5.0版本,利用外部MySQL作为Metastore。在JuiceFS配置中,他们精细管理了缓存目录、Prometheus Push Gateway和用户组管理,同时Kafka Connect的集成则涉及发布定制JAR包和调整相关配置,进行PoCPoC(Proof of Concept Proof of Concept)验证,内容涵盖了方案的可行性、组件兼容性、性能评估以及成本和数据同步的集成测试。
迁移策略与挑战
集成过程中,他们决定迁移Hive元数据和HDFS文件,采用存量同步与增量同步(双写)策略。存量文件的迁移利用JuiceFS的sync命令高效进行,而Metastore数据差异则通过自研脚本处理。在增量数据同步上,Kafka Connect与ETL的配合遇到了版本兼容性问题。数据校验环节,他们关注文件、元数据和计算结果的一致性,并已封装为可执行脚本。后续计划包括迁移剩余业务、探索分级存储以及进一步降低成本。
实战中的经验分享
在实战中,他们遭遇了EMR版本兼容性、IMPALA元数据同步、Textfile压缩、函数行为差异和SQL关键字引用等问题。提醒大家,业务代码编写时务必避免关键字陷阱,通过真实环境测试以确保稳定。PoC阶段初期进展顺利,但第二批迁移过程中遇到的问题较多,影响了整体进度。
特别提醒,EMR 5的Impala 3.4支持独立的OSS I/O线程,但默认带宽可能成为瓶颈,建议与阿里云技术团队进行沟通调整。
在EMR Gateway配置中,曾遇到日志满载问题,解决方法是配置log rotate或清理相关Java选项。同时,JuiceFS的写入性能可以通过调整juicefs.memory-size进行优化,监控Redis空间,确保同步数据时选择SSD设备。
实用资源
- JuiceFS同步问题解决方案:issue 1105 和 PR 1208
- Apache IMPALA问题参考:IMPALA-10230、IMPALA-10005 和 IMPALA-10695
- 操作系统用户权限调整:官方文档
- 用户映射表管理:链接
- 权限问题处理:深入分析
- IO配置指导:详细说明
- 故障诊断与分析:故障排查指南
悟忠痔疾: 云计算和大数据目前都是热门话题,如何把两者结合起来即在云上实现大数据项目,这是一个新的实践领域.资深数据专家David Gillman根据自己的经验,列举了云上大数据方案需要考虑的基本要素,包括对数据构建实时索引、自由模式搜索与...
肃北蒙古族自治县18819932782: 云外面的数据怎么上传到hdfs - ?
悟忠痔疾: hadoop计算需要在hdfs文件系统上进行,文件上传到hdfs上通常有三种方法:a hadoop自带的dfs服务,put;b hadoop的API,Writer对象可以实现这一功能;c 调用OTL可执行程序,数据从数据库直接进入hadoop hadoop计算需要在hdfs文件系统上...
肃北蒙古族自治县18819932782: 如何把数据迁移到云计算 - ?
悟忠痔疾: 企业传统的IT业务应用一般都构建在物理服务器和存储设备上,当开始进行云迁移时,一般会采用标准化技术,对以往的服务器及存储资源进行整合.对已存在的老的要上云的业务进行迁移评估,并根据数据中心的资源情况来制定详细的解决方...
肃北蒙古族自治县18819932782: 云计算:请教大家一个问题.就是我的课题要求我搭建一个云服务平台,用hadoop. - ?
悟忠痔疾: 首先,不知道这个课题是怎么定出来的,我觉得出这个问题的人只是一味求新,而对新的知识缺乏必要的了解,好了,正题.所有的这些,不是不可以,但是就好像把一个初中生放到国外去生活一样难.先说数据库,hadoop有自己的底层存储...
肃北蒙古族自治县18819932782: 如何将本地数据库迁移到云数据库 RDS 上 - ?
悟忠痔疾: 用户在购买完rds后,接下来就可以开始往rds迁入数据了.在rds刚刚对外提供服务的时候,用户只能通过将自己的数据库dump成为sql文件,然后再将sql文件source到rds中去:数据迁移至rds-mysql之使用mysqldump工具,数据迁移至rds-...
肃北蒙古族自治县18819932782: 如何将服务器上的数据迁移到云端? - ?
悟忠痔疾: 用多备份吧,先进行数据备份,然后就可以选择将数据迁移到不同的云端了.
肃北蒙古族自治县18819932782: 如何用hadoop api实现文件的移动 - ?
悟忠痔疾: A、首先将Hadoop1.1.2.tar.gz解压到某一个磁盘下.B、右键选择工程,选择build path...., build configure path;C、将hadoop1.1.2文件夹下的jar包添加进去;
肃北蒙古族自治县18819932782: 把数据库迁移到云数据库需要注意什么?华云数据库怎么样? - ?
悟忠痔疾: 1、评估数据库性能和空间大小:根据数据库的读写性能、数据库的当前存储与增长趋势评估迁移过后需要什么型号的云数据库实例,这项工作可以由企业内部IT或DBA来完成.2、明确业务SLA要求:明确数据库支撑的业务SLA要求,设计在云数据库上的配置,如自动快照,临时数据库实例、IP白名单等,有一些应用需要99.99%的正常工作时间,华云可确保异常或迁移引起的停服时间不会影响到业务SLA要求.3、垃圾文件整理能够降低成本:对于按照存储空间收取费用的云服务,对数据进行清理是非常重要的.随着数据库大小的增长,你的成本就会随之增加.所以在进行迁移之前,建议不要把没用的垃圾数据也迁移,从而节省一定的空间.
肃北蒙古族自治县18819932782: 为啥要将数据库迁移到云上啊?自建数据库不是更省事儿么? - ?
悟忠痔疾: 数据库迁云为了降低因为可降低成本,自建数据库需要企业增添IT基础设施,数据库很大的时候,成本也很高,采用云上资源,免去了购买基础设施的费用,除非你的数据库数据数量非常小.