用F#从0开始打造一个大数据处理平台(1.整体规划)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: MapReduce框架是必须的 Bigtable实现是必须, Bigtable的底层分布式文件系统是必须的, 监控管理的组件是必须的,为了在分布式文件系统以外, 存储各种元数据, 还需要一个轻量级的nosql数据库

这一大系列博客将介绍一个伟大的大数据处理平台是如何诞生的.

预计会有很多很多篇,持续很长很长时间. 为什么说 "伟大" 呢? 因为这将打造一整个新的体系. 不同于现有的大数据生态圈里各种产品的新的函数式体系结构.  数据处理本是函数式语言的专长, (比如Map 和 Reduce 是所有函数式语言的最重要的两个基础函数---哪怕在某些语言中不叫这两个名字), 无奈Hadoop 根植于jvm, 来源于Java,带动整个社区生态从hdfs, hbase, zookeeper, spark 以及其上的各种组合的平台, 都走java系.  现在说大数据处理, 不管用的哪一套体系, 最终都会走到hadoop的hdfs上去. 全世界都这么走.


但是, 万一全世界都错了呢?  hdfs 并不完美, 而且是跟完美完全不沾, 他有各种问题, 甚至从一开始, 他就做错了一些事, 并且越错越远.   


我们在大数据处理上, 需要的核心是一个Bigtable实现, 和一个MapReduce框架. hadoop 的实现上先有hdfs, 后来才有hbase这个bigtable实现, 因此是hbase去适应和迁就hdfs了.  这就导致了一些不必要的复杂性.


在我们实现里, 我们在设计我们的分布式文件系统时, 我们是假设我们已经有一个bigtable实现, 我们的这个实现, 需要什么样的分布式文件系统来支撑它,  我们就打造一个那样的文件系统. 而对我们的bigtable实现没有帮助的功能,我们则尽量不添加. 


整个过程设计遵从 "正交性" 原则, 并且尽力让一切回归本源的简单性, 因为: "如果把简单的事情做复杂, 那以后事情变复杂以后就会太复杂了!".  hadoop就是把简单事情做复杂的一个典范, 当然包括大多数 "成熟" 的 java 系的apache开源项目都有这个问题, 就是早期为了以后莫须有的扩展性而过度设计了, 这里面的罪魁祸首其实是 "开闭原则", 为了不修改现有代码而增加或修改功能, 增加了大量的抽象层. 而实际上, 最终还是在大版本里通过重构大量修改了代码. 


作为有极大量开发者的开源项目, 这可能是没办法的事情. 带来的问题, 也基本是无解的.


我们这个新轮出来的体系, 必须尽力回避这种附加的复杂性.


整体上的规划:

  1. 为什么用F#?  因为我们需要一个函数式的基因来引导我们走出一条函数式主导之路,  Haskell和其他大多数函数式语言缺乏一个足够强劲的工业化强度的运行时环境作为支撑.  Clojure 生成的bytecode质量使得它可能并不是合适的性能热点位置的选择.  另外一方面, 作为现在最广泛的2个高强度的运行时.Net 和 Jvm , 其实各有优缺点, 选择一个与hadoop不同的基础平台, 有助于在未来的演化中引入.Net的特色而产生更多差异化.  当然, 出于跨平台考虑, 我们的 F# 将只使用Mono 和 .Net Core 的交集部分的特性.
  2. 我们将会轮哪些部分?  首先MapReduce框架是必须的(相当于hadoop mapreduce或spark的地位), Bigtable实现是必须(相当于hbase的地位), Bigtable的底层分布式文件系统(相当于hdfs)是必须的, 作为分布式体系, 一个监控管理的组件是必须的(相当于zookeeper)同时为了在分布式文件系统以外, 存储这个框架的各种元数据, 包括文件系统自己的元数据, 我们还需要一个 轻量级的 key-value 的nosql数据库(至少可以当我们的分布式文件系统的分区表.....) 
  3. 上面需要的那些组件, 现在 .Net 世界里都没有合适的么? 最后那个nosql数据库显然我们已经有类似RavenDB这样的东西了, 不过它太重了, 而且性能特点跟我们需求不太符合, 我们需要的是一个支持超快速写入和读取的, 支持非常大数据量的, 越简单越好的数据库.  其他几个, 至少现在我是没有找到. 
  4. 这个项目会开源么?  当然, 一定会. 我将放在github上.
  5. 项目名称是 Longlad 
    1. Longlad.MetaStore 是我们的KV数据库
    2. Longlad.FileSystem 是我们的hdfs替代品
    3. Longlad.Bigtable 是我们的hbase替代品
    4. Longlad.MapFold 是我们的spark替代品
    5. Longlad.Guard 是我们的zookeeper替代品
    6. Longlad._______ 未来如果时间够, 再加吧, 因为上面5个已经是超大工程了(这项目申请国家核高基的资金怕都不过分....)~~~
  6. 组件之间的大体关系, 与 hdfs/hbase/spark/zookeeper 的关系类似, 我就不多解释了. 至于那个Longlad.MetaStore 是作为其他几个的一个子部件存在的.
  7. 开发的顺序预计将会是: 1,2,5,3,4 下一篇开始从Longlad.MetaStore实现
万里长征, 一步还没走, 只是穿了鞋子了,  以后坚持每周更新1-2篇.
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
25天前
|
存储 SQL 大数据
【重磅发布】AllData数据中台核心功能:湖仓一体化平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【重磅发布】AllData数据中台核心功能:湖仓一体化平台
|
1月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
190 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
24天前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
5月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
370 1
|
1月前
|
数据采集 监控 大数据
大数据项目管理:从规划到执行的全景指南
大数据项目管理:从规划到执行的全景指南
35 4
|
25天前
|
SQL 人工智能 大数据
【4月重点功能发布】阿里云大数据+ AI 一体化平台
【4月重点功能发布】阿里云大数据+ AI 一体化平台
|
25天前
|
SQL 人工智能 分布式计算
【3月重点功能发布】阿里云大数据+ AI 一体化平台
【3月重点功能发布】阿里云大数据+ AI 一体化平台
|
3月前
|
SQL 人工智能 自然语言处理
DataWorks年度发布:智能化湖仓一体数据开发与治理平台的演进
阿里云在过去15年中持续为268集团提供数据服务,积累了丰富的实践经验,并连续三年在IDC中国数据治理市场份额中排名第一。新一代智能数据开发平台DateWorks推出了全新的DateStudio IDE,支持湖仓一体化开发,新增Flink计算引擎和全面适配locs,优化工作流程系统和数据目录管理。同时,阿里云正式推出个人开发环境模式和个人Notebook,提升开发者体验和效率。此外,DateWorks Copilot通过自然语言生成SQL、代码补全等功能,显著提升了数据开发与分析的效率,已累计帮助开发者生成超过3200万行代码。
|
4月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
543 3
【赵渝强老师】基于大数据组件的平台架构
|
5月前
|
机器学习/深度学习 监控 搜索推荐
电商平台如何精准抓住你的心?揭秘大数据背后的神秘推荐系统!
【10月更文挑战第12天】在信息爆炸时代,数据驱动决策成为企业优化决策的关键方法。本文以某大型电商平台的商品推荐系统为例,介绍其通过收集用户行为数据,经过预处理、特征工程、模型选择与训练、评估优化及部署监控等步骤,实现个性化商品推荐,提升用户体验和销售额的过程。
218 1