本课程以 Java 8 为背景,向学员(行业专业人士和学生)讲授分布式编程的基本概念。 分布式编程使开发人员能够使用数据中心的多个节点来提高吞吐量和/或减少选定应用程序的延迟。 课程结束时,您将学会如何在 Java 程序中使用流行的分布式编程框架,包括 Hadoop、Spark、Sockets、远程方法调用 (RMI)、多播套接字、Kafka、消息传递接口 (MPI),以及将分布式与多线程相结合的不同方法。 为什么要学习本课程? - 所有数据中心服务器都是作为分布式服务器的集合而组织的,因此学习如何使用多个服务器来增加带宽和减少延迟也很重要。


要了解的详细信息

添加到您的领英档案
4 项作业
了解顶级公司的员工如何掌握热门技能

积累特定领域的专业知识
- 向行业专家学习新概念
- 获得对主题或工具的基础理解
- 通过实践项目培养工作相关技能
- 获得可共享的职业证书

该课程共有7个模块
欢迎来到 Java 分布式编程!本课程设计为三部分系列,通过各种视频讲座、演示和编码项目涵盖一个主题或知识体系。
涵盖的内容
1个视频5篇阅读材料1个编程作业1个讨论话题
在本模块中,我们将学习 MapReduce 范式,以及如何用它来编写分布式程序,分析以键值对表示的数据。 MapReduce 程序是通过用户指定的 map 和 reduce 函数定义的,我们将学习如何在 Apache Hadoop 和 Spark 项目中编写此类程序。 MapReduce 范式可用于表达各种并行算法。 我们将学习的一个例子是计算文档挖掘中使用的术语频率-反向文档频率(TF-IDF)统计量;该算法使用固定(非迭代)数量的映射和还原操作。 我们要研究的另一个 MapReduce 例子是 PageRank 算法的并行化。 该算法是迭代 MapReduce 计算的一个示例,也是与本模块相关的小型项目的重点。
涵盖的内容
6个视频6篇阅读材料1个作业1个编程作业
在本模块中,我们将学习客户机-服务器编程,以及分布式 Java 应用程序如何使用套接字相互通信。 由于通过套接字进行的通信是在字节级别上进行的,因此我们将学习如何在发送方进程中将对象序列化为字节,并在接收方进程中将字节反序列化为对象。套接字和序列化为与本模块相关的文件服务器小型项目提供了必要的背景知识。 我们还将学习远程方法调用(RMI),它将顺序程序中的方法调用概念扩展到分布式编程环境中。 同样,我们还将学习多播套接字(multicast sockets),它对标准套接字接口进行了扩展,使发送方能够向一组指定的接收方发送相同的信息;这种功能对于新闻馈送、视频会议和多人游戏等许多应用都非常有用。 最后,我们将学习分布式发布-订阅应用,以及如何使用 Apache Kafka 框架实现这些应用。
涵盖的内容
6个视频6篇阅读材料1个作业1个编程作业
Vivek Sarkar 教授将与 Two Sigma 总经理 Jim Ward 和高级副总裁 Eric Allen 博士在得克萨斯州休斯顿市中心的办公室一起探讨分布式编程的重要性。
涵盖的内容
2个视频1篇阅读材料
在本模块中,我们将学习如何在单程序多数据(SPMD)模式下编写分布式应用程序,特别是如何使用消息传递接口(MPI)库。 MPI 进程可以使用点对点通信原语发送和接收消息,其结构和语义与使用套接字的消息传递不同。 我们还将学习 MPI 程序的消息排序和死锁属性。 非阻塞通信是点对点通信的一个有趣扩展,因为非阻塞通信可用于避免阻塞造成的延迟,还能避免与死锁相关的错误。 最后,我们将研究集体通信,它能以比组播和发布-订阅操作更强大的方式涉及多个进程。 在本模块中获得的 MPI 知识将在与本模块相关的小型项目中付诸实践,该项目是用 MPI 实现分布式矩阵乘法程序。
涵盖的内容
6个视频6篇阅读材料1个作业1个编程作业
在本模块中,我们将学习进程和线程作为并行、并发和分布式 Java 程序基本构件的作用。 有了这些背景知识,我们将学习如何在使用套接字编写的分布式应用程序中实现多线程服务器以提高响应速度,并在使用多线程和套接字实现并行文件服务器的小型项目中应用这些知识。 类似的方法也可用于结合 MPI 和多线程,以提高分布式 MPI 应用程序的性能。 分布式行动者是结合分布式和多线程的另一个例子。 行为体模型的一个显著特性是,相同的高级构造可用于在同一进程中运行的行为体之间以及不同进程中的行为体之间进行通信;这两种情况的区别取决于应用程序配置,而不是应用程序代码。 最后,我们将了解反应式编程模型,以及它在使用异步事件实现面向服务的分布式架构方面的适用性。
涵盖的内容
6个视频7篇阅读材料1个作业1个编程作业
接下来的两个视频将展示学习并行编程和 Java 并发编程的重要性。Vivek Sarkar 教授将在 Two Sigma 与业界专业人士讨论如何在该领域利用我们其他两门课程的主题。
涵盖的内容
2个视频1篇阅读材料
获得职业证书
将此证书添加到您的 LinkedIn 个人资料、简历或履历中。在社交媒体和绩效考核中分享。
位教师

从 软件开发 浏览更多内容
- 状态:免费试用
Rice University
- 状态:免费试用
Rice University
- 状态:免费试用
Rice University
人们为什么选择 Coursera 来帮助自己实现职业发展




学生评论
502 条评论
- 5 stars
69.32%
- 4 stars
22.31%
- 3 stars
4.98%
- 2 stars
0.99%
- 1 star
2.39%
显示 3/502 个
已于 May 27, 2020审阅
thanks to coursera platform,to learn new way to solving distributed problem in java
已于 Apr 27, 2020审阅
A very good course, I learnt a lot from it, thank you Coursera.
已于 Sep 4, 2017审阅
It forced me to recall OpenMP and MPI. Thought it's already dead in favor to IMDG, spark, upc and so on.Practical tasks - miniprojects - was too easy to implement. Need more complex tasks.
常见问题
讲座视频、演示和测验足以让您完成本课程。报名参加该课程并希望获得证书的学生还可以获得一本包含更多技术细节的补充教材。
Java 中的多核编程:并行和 Java 中的多核编程:多核编程:并行》和《Java 中的多核编程:并发》涵盖多核编程的互补方面,可以任意顺序学习。并行性课程涵盖使用并行性的基本原理,通过同时使用多个处理器来加快应用程序的运行速度。并发课程涵盖并行任务和线程如何正确调解共享资源(如共享对象、网络资源和文件系统)的并发使用的基础知识。
要获取课程资料、作业和证书,您需要在注册课程时购买证书体验。 您可以尝试免费试听,或申请资助。课程可能提供 "完整课程,无证书"。通过该选项,您可以查看所有课程资料,提交必要的评估,并获得最终成绩。这也意味着您无法购买证书体验。
更多问题
提供助学金,