由于大数据技术领域的各类技术框架基本上都是分布式系统,因此,理解Hadoop、storm、spark等技术框架,都需要具备基本的分布式系统概念。
分布式软件系统(Distributed Software Systems)
该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能
比如:分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式软件系统举例:solrcloud
A.一个solrcloud集群通常有多台solr服务器
B.每一个solr服务器节点负责存储整个索引库的若干个shard(数据分片)
C.每一个shard又有多台服务器存放若干个副本互为主备用
D.索引的建立和查询会在整个集群的各个节点上并发执行
E.solrcloud集群作为整体对外服务,而其内部细节可对客户端透明
总结:利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。
分布式应用系统模拟开发
需求: 可以实现由主节点将运算任务发往从节点,并将各从节点上的任务启动;
程序清单:
- AppMaster
- AppSlave/APPSlaveThread
- Task
程序运行逻辑流程: