运行Spark程序-在shell中运行1
(一)分布式计算要处理的问题
【老师提问:分布式计算要面临什么问题?】
【老师总结】
分布式计算需要做到:
1.分区控制。把大的数据拆成一小份一小份的(分区,分片)让多台设备同时计算,所以要分区。
2.Shuffle控制。不同分区之间的数据是需要有关联的,在不同的分区之间进行数据的传输就是Shuffle,也叫洗牌。
3.数据存储\序列化\发送
4.数据计算API
等等一些功能。
【举例讲案例】
我们用期末考试结束,老师们批改全校试卷的例子来解释这些概念。
老师们批改试卷时,会按照一定的规则进行分工。比如,先把试卷按照班级分成不同的 “分区”,每个班级的试卷就是一个独立的分区,就像分布式计算中把数据划分成不同的部分进行处理。然后,不同学科的老师负责批改相应学科的试卷,这就是 “区域控制”,每个学科区域专注于自己的任务。
在批改试卷之前,需要对试卷信息进行整理,就像 “数据的存储序列化”。例如,将学生的基本信息、题目内容以及对应的分值等信息整理成规范的格式,以便于后续的处理。这个过程就如同将数据转换为计算机能够理解和处理的形式。
当试卷分发到各个老师手中开始批改时,这类似于 “发送数据” 和 “计算” 的过程。老师们根据评分标准给试卷打分,这就是 “计算” 操作,每个老师就如同一个计算节点,各自处理分配到的试卷任务。
而在批改过程中,可能会出现一些特殊情况,比如某些题目的评分标准需要进一步明确或者不同老师对某个答案的理解有差异。这时就需要进行沟通和协调,就像分布式计算中的 “SHUFFLE”(洗牌)过程。老师们会交流讨论,重新梳理评分标准,确保批改结果的一致性。这个过程就像是在分布式系统中,不同节点之间的数据交换和协调,以保证整个任务的顺利进行。