而 Apache Hadoop 这个开源替代品,也是根据 Jeff Dean 当年的论文自行实现而成,能提供与 MapReduce 文件系统类似的功能。
如果想要更快的数据处理速度,还有 Apache Spark 供你选择。相对于 Hadoop 的 MapReduce 会在运行完工作后将中介数据存放到磁盘中,Spark 使用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。
序列化工具
Google 内部:Protocol Buffer;
外部替代品:Protobuf、Thrift、Avro
这一组工具用于结构化数据序列化,上面这些,都是 xml 替代品,比它更小、更快、也更简单。
Protocol Buffer 和 Protobuf 都是 Google 开发的序列化格式(Serialization Format),github 上可以找到这个项目的源代码。
比起 XML 和 JSON,Protobuf 更小、更快,也更简洁,很适合做数据存储或 RPC 数据交换格式。只需要定义一次数据结构,就可以利用各种不同语言或者从各种不同数据流中对结构化数据进行轻松读写。
完全撇开 Google,也不是就没有别的选择了。其他厂商也有类似的序列化方案。
比如 Facebook 开发的 Thrift ,它与 Protobuf 基本一样。
Avro 同样也有 schema(也就是程序中结构化数据的定义),但是实现方式跟 Protobuf 和 Thrift 有很大区别。
由于数据不需要额外的标注,Avro 在序列化大量相同的数据时会比 Protobuf 和 Thrift 更有效率。不过在编码大量变化的数据时,因为 schema 会随数据一同存储,Avro 的效率会退化到 JSON 和 MessagePack 的级别。
看来在核心技术工具上,重回人间的前 Google 人还是有许多不错的选择的。
基础设施
大型集群管理系统
Google 内部:Borg;外部替代品:Kubernetes、Apache Mesos、HashiCorp Nomad
大型集群管理系统用于管理云平台中多个主机上的容器化的应用。
Borg 是 Google 内部的大型集群管理系统,现如今应用最广泛的服务编配系统 Kubernetes 就脱胎于 Borg。
Borg 让开发者能够不必操心资源管理的问题,做到跨多个数据中心的资源利用率最大化。
没有 Borg 十五年的经验,也就不会有 Kubernetes。虽然作者把它放在开源 / 真实世界这一栏里,但事实上 Kubernetes 也是由 Google 设计并参与开发的。
Kubernetes 使用 Go 语言编写, 是一个大而全的解决方案,服务调度、网络、存储、安全通通一手抓,而且本身的架构也非常好,在上面做二次开发非常容易。
HashiCorp Nomad 同样是一个比较常见的开源调度程序,架构简单,能将资源管理器和调度程序的功能集成到一个系统中。Nomad 也是分布式的,高可用且易操作。但显然 Kubernetes 的功能会更丰富。
至于 Mesos,它仅仅是一个调度系统,无法直接使用,要配合各种 Mesos framework 来实现各类功能。
存储
当然,Google 内部工具也不是所有的都能找到完美的替代品。
至少在存储这件事情上,就有网友不赞同原作者观点。他认为这份清单在一定程度上具有误导性,某些替代品根本达不到 Google 内部工具的水平。
比如将 Colossus 和 HDFS 对比是在开玩笑,相比之下,HDFS 就像是一个玩具。要说对比,它智能和十年前已经退役的 GFS 相当。
但 HDFS 恐怕是开源软件中 Colossus 最好的替代品,对于 “通用,大型,分布式文件系统” 的使用情况,很难找到有比 HDFS 更好的了。
其他开发工具
列表中还有服务、开发运维、安全等工具的替代品清单,由于篇幅限制,我们不再一一介绍,有需求的同学可以自取。全部工具的下载链接请参阅文末的 GitHub 地址。
以上,便是今日分享,觉得不错,还请点个赞看,谢谢~
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**