谷歌云平台的数据处理与摄取策略
1. 数据原位处理与网络优势
传统的数据处理中,将数据下载到可进行计算的节点上,很大程度上依赖于互联网连接速度与驱动器速度的差异。由于公共互联网速度仅为3 - 10 MBps,而驱动器的访问速度要快两个数量级,所以我们会选择将数据移动到大型计算引擎实例(纵向扩展),或者将其分片到连接到计算引擎实例的持久驱动器上(横向扩展)。
但在某些环境中,网络速度更快,并且所有计算实例都能以高速访问文件。例如,若有一个使用100,000台服务器的作业,且这些服务器之间的通信速度可达1 GBps,这速度是SSD的两倍、本地硬盘的10倍、公共互联网的100倍。此外,如果拥有一个集群级文件系统,其元数据在数据中心进行分片,并在写入时进行复制以保证持久性,那么情况就会不同。
谷歌数据中心的Jupiter网络总二分带宽为125,000 GBps,其下一代Colossus文件系统在集群级别运行。当数据存储在谷歌云存储的存储桶中,且作业在与存储桶同一区域的计算引擎实例上运行时,就可以将整个数据中心视为一台计算机。网络速度和存储设计使计算和数据成为可互换的资源,可分配到数据中心最空闲的部分。在单个大域上调度一组作业比在多个小域上调度相同的作业具有更高的利用率,并且这种资源分配可以是自动的,无需预先分片数据。如果使用合适的计算框架(如BigQuery、Cloud Dataflow或Cloud ML Engine),甚至无需自己实例化计算引擎实例。
大多数数据中心并非针对总二分带宽进行优化,它们更侧重于最小化与外部客户端(如发送Web请求)的网络时间(“南北通信”),而不是最大化后端节点之间的网络带宽(“东西通信”)。只有当后端响应用户请求的网络调用流量是请求本
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



