构建大数据网络不得不重视的6个问题

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

在我们考虑大数据时,我们注意到了“大”这个字,但是在建设基础架构时,我们还应该注意“分布式”。

事实上,大数据应用程序需要处理大规模信息,而且在出于弹性的考虑将数据复制到多个位置时,信息的规模变得越来越大。但是,大数据的最重要属性并不在于它的规模,而在于它将大作业分割成许多小作业的能力,它能够将处理一个任务的资源分散到多个位置变为并行处理。

在将大规模和分布式架构组合在一起时,我们就能发现大数据网络有一组特殊的需求。下面是需要考虑的六个方面:

1.网络弹性与大数据应用程序

如果有一组分布式资源必须通过互联网络进行协调时,可用性就变得至关重要。如果网络出现故障,那么造成的后果是出现不连续的坏计算资源与数据集。

准确地说,大多数网络架构和工程师的主要关注点是正常运行时间。但是,网络故障时间的根源又各不相同。它们可能源自于各个方面,包括设备故障(硬件与软件)、维护和人为错误。故障是不可避免的。虽然网络的高度可用性也很重要,但是想要设计完美可用性是不可能的。

网络架构师不能用故障来逃避目标,而应该设计一些能适应故障的弹性网络。网络的弹性取决于路径多样性(资源之间设置多条路径)和故障转移(能够快速发现问题和转移到其他路径上)。除了传统的平均故障时间间隔(MTBF)方法,大数据网络的真正设计标准一定要包含这些特性。

2.解决大数据应用中的网络拥塞问题

大数据应用程序不仅仅是规模大,而且还有一种我称为突发性的特性。当一个作业启动之后,数据就开始流转。在高流量时间段里,拥塞是一个严重的问题。然而,拥塞可能引起更多的队列延迟时间和丢包率。此外,拥塞还可能触发重转,这可能让本身负载繁重的网络无法承受。因此,网络架构设计时应该尽可能减少拥塞点。按照可用性的设计标准,减少拥塞要求网络具有较高的路径多样性,这样才能允许网络将流量分散到大量不同的路径上。

3.大数据中网络一致性要比迟延性更重要

实际上,大多数大数据应用程序对网络延迟并不敏感。如果计算时间的数量级为几秒钟或几分钟,那么即使网络上出现较大延迟也是无所谓的——数量级大概为几千毫秒。然而,大数据应用程序一般具有较高的同步性。这意味着作业是并行执行的,而各个作业之间较大的性能差异可能会引发应用程序的故障。因此,网络不仅要足够高效,而且要在空间和时间上具有一致的性能。

4.现在就要准备大数据未来的可伸缩性

可能让人有点意外的是,大多数大数据集群实际上并不大。许多人都知道雅虎在其大数据环境中运行着超过42,000个节点,但是根据Hadoop Wizard的数据,2013年大数据集群的平均节点数量只有100个。换句话说,即使每一台服务器配置双重冗余,支持整个集群也只需要4个接入交换机(假设是分别有72个10GbE访问端口的Broadcom交换机)。

可伸缩性并不在于现在集群现在有多大规模,而是说如何平衡地扩展支持未来的部署规模。如果基础架构设计现在只适合小规模部署,那么这个架构将如何随着节点数量的增加而不断进化?在将来某一个时刻,它是否需要完全重新设计架构?这个架构是否需要一些近程数据和数据位置信息?关键是要记住,可伸缩性并不在于绝对规模,而是更关注于实现足够规模解决方案的路径。

5.通过网络分割来处理大数据

网络分割是创建大数据环境的重要条件。在最简单的形式上,分割可能意味着要将大数据流量与其他网络流量分离,这样应用程序产生的突发流量才不会影响其他关键任务工作负载。除此之外,我们还需要处理运行多个作业的多个租户,以满足性能、合规性和/或审计的要求。这些工作要求在一些场合中实现网络负载的逻辑分离,一些场合则还要实现它们的物理分离。架构师需要同时在两个方面上进行规划,但是初始需求最好统一在一起。

6.大数据网络的应用感知能力

虽然大数据的概念与Hadoop部署关系密切,但是它已经成为集群环境的代名词。根据不同应用程序的特点,这些集群环境的需求各不同相同。有一些可能对对带宽要求高,而有一些则可能对延迟很敏感。总之,一个网络要支持多应用程序和多租户,它就必须要能够区分自己的工作负载,并且要能够正确处理各个工作负载。

大数据网络设计的关键是要理解一点:需求不仅仅是提供足够的东西向带宽。最终,应用程序体验取决于很多因素,包括网络拥塞和分割。创建一个满足所有这些需求的网络需要有前瞻性,不仅要考虑基础架构能够支持的伸缩规模,还要考虑不同类型的应用程序如何共存于一个通用环境中。

原文发布时间为:2014年12月04日
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
29天前
|
1月前
|
存储 安全 算法
网络安全与信息安全:构建安全数字生活的基石
【10月更文挑战第5天】 在数字化时代,网络安全与信息安全已成为维护个人隐私、企业机密和国家安全的重要防线。本文旨在探讨网络安全漏洞的形成与防范、加密技术的应用及其重要性,以及提升公众安全意识的必要性。通过深入浅出的方式,帮助读者理解网络安全的核心要素,并强调每个人都是网络安全生态中不可或缺的一环。
54 1
|
1月前
|
搜索推荐 程序员 调度
精通Python异步编程:利用Asyncio与Aiohttp构建高效网络应用
【10月更文挑战第5天】随着互联网技术的快速发展,用户对于网络应用的响应速度和服务质量提出了越来越高的要求。为了构建能够处理高并发请求、提供快速响应时间的应用程序,开发者们需要掌握高效的编程技术和框架。在Python语言中,`asyncio` 和 `aiohttp` 是两个非常强大的库,它们可以帮助我们编写出既简洁又高效的异步网络应用。
121 1
|
26天前
|
安全 网络架构
MPLS线路构建稳定、高效网络的优选方案
【10月更文挑战第17天】MPLS线路构建稳定、高效网络的优选方案
46 5
|
1月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
63 5
|
6天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
24天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
10天前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
36 5
|
9天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
28 3
|
1月前
|
Java 大数据 数据库连接
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
29 2
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala