颠覆大数据分析之RDD的表达性

简介:

正如前面在比较Spark及DSM系统时所提到的,由于RDD只支持粗粒度的操作,因此它有一定的局限性。但是RDD的表达性对于大多数程序而言其实已经足够好了。AMPLabs团队他们仅花了数百行代码就开发出了整个Pregel,这是Spark上的一个小的库。可以通过RDD及相关的操作来表示的集群计算模型列举如下:

  • Map-Reduce:如果存在混合器的话,这个可以使用RDD上的flatMap和reduceByKey操作来表示。简单点的话可以表示成flatMap和groupByKey操作。运算符则对应于Spark中的转换操作。
  • DryadLINQ:DryadLINQ(Yu等2008)通过结合了声明性及命令式编程提供了MR所没有的操作。大多数操作符都能对应上Spark中的转换操作。Dryad中的apply结构就类似于RDD的map转换,而Fork结构则类似于flatMap转换。
  • 整体同步并行(BSP):Pregel (Malewicz等 2010)中的计算由一系列称为超步骤的迭代所组成。图中的每个顶点都关联上一个用户定义的计算函数;Pregel会确保在每一个超步骤中,用户定义的函数都会并行地在每一条边上执行。顶点可以通过边来发送消息并与其它的顶点交互数据。同样的,还会有一个全局的栅栏——当所有的计算函数都终止的时候它就会向前移动。熟悉BSP的读者可能会知道,Pregel是一个完美的BSP的典范——一组实体在并行地计算用户定义的函数,它们有全局的同步器并可以交换消息。由于同一个用户函数会作用于所有的顶点,这种情况可以这样实现,将所有顶点存储在一个RDD中并在上面运行flatMap操作来生成一个新的RDD。把它和跟顶点的RDD连接到一块,这样就可以实现消息传递了。
  • 迭代式Map-Reduce:HaLoop项目也同样扩展了Hadoop来支持迭代式机器学习算法。HaLoop不仅为迭代式应用提供了编程抽象,同时它还用到了缓存的概念来在迭代间进行数据共享和固定点校验(迭代的终止)以便提升效率。Twister (Ekanayake等2010)是另一个类似HaLoop的尝试。这些在Spark中都可以很容易实现,因为它本身非常容易进行迭代式计算。AMPLabs团队实现HaLoop仅花了200行代码。
  • 转载自 并发编程网 - ifeve.com
相关文章
|
29天前
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
39 0
|
2天前
|
数据可视化 大数据 Python
python大数据分析处理
python大数据分析处理
7 0
|
2天前
|
机器学习/深度学习 人工智能 大数据
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
|
8天前
|
存储 机器学习/深度学习 数据采集
大数据处理与分析实战:技术深度剖析与案例分享
【5月更文挑战第2天】本文探讨了大数据处理与分析的关键环节,包括数据采集、预处理、存储、分析和可视化,并介绍了Hadoop、Spark和机器学习等核心技术。通过电商推荐系统和智慧城市交通管理的实战案例,展示了大数据在提高用户体验和解决实际问题上的效能。随着技术进步,大数据处理与分析将在更多领域发挥作用,推动社会进步。
|
11天前
|
存储 运维 监控
|
11天前
|
存储 数据可视化 大数据
大数据分析与处理:探索数据的深层价值
大数据分析与处理:探索数据的深层价值
38 2
|
21天前
|
存储 分布式计算 大数据
使用 Java 进行大数据处理和分析
【4月更文挑战第19天】本文探讨了Java在大数据处理中的关键作用,涉及Hadoop框架、HDFS数据存储、MapReduce编程模型及Spark等数据分析工具。还包括数据预处理、可视化、性能优化、安全与隐私保护以及完整处理流程。Java在金融、医疗、电商等领域有广泛应用,为大数据洞察和决策提供支持,但同时也需要开发者具备深厚的技术背景和实践经验。
|
22天前
|
缓存 大数据 Python
python利用代理IP分析大数据
python利用代理IP分析大数据
|
28天前
|
人工智能 分布式计算 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第9天】探索Microsoft Azure的Databricks服务,体验其在大数据分析和AI开发中的高效性能。此平台简化流程,提升效率,适用场景包括数据湖分析、实时流处理和AI开发。核心优势在于一体化平台设计、云原生的弹性伸缩和企业级安全保障。Databricks提升研发效能,无缝集成Azure生态,且持续创新,是应对大数据挑战和加速AI创新的理想工具。
34 1
|
29天前
|
数据采集 数据可视化 算法
Python在大数据分析中的力量:Pandas、NumPy与SciPy
【4月更文挑战第8天】Pandas、NumPy和SciPy是Python数据分析的核心,构成其在大数据领域的重要地位。Pandas提供高效的数据操作,包括DataFrame和Series结构,以及数据清洗和预处理工具。NumPy专注于数组计算,提供高性能的ndarray和数学函数。SciPy则包含专业算法,适用于科学与工程计算。这三者协同工作,覆盖数据分析的全过程,形成强大的Python生态系统。随着社区的不断创新和新库的涌现,如Dask和CuDF,Python在大数据分析领域的潜力将持续增长。
38 0

热门文章

最新文章