【转载】分布式系统的理解

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


1. 如何理解“分布式”?

     经常听到”分布式系统“,”分布式计算“,”分布式算法“。分布式的具体含义是什么?狭义的分布是指,指多台PC在地理位置上分布在不同的地方。

2. 分布式系统

    分布式系统:多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的“目标或者任务”。

    分布式程序: 运行在分布式系统上的计算机程序。

    分布式计算:利用分布式系统解决来计算问题。在分布式计算里,一个问题被细化成多个任务,每个任务可以被一个或者多个计算机来完成。

    区分分布式计算和并行计算:共同点都是大任务划分为小任务。不同点: 分布式计算:基于多台PC,每台PC完成同一任务中的不同部分。分布式的计算被分解后的小任务互相之间有独立性,节点之间的结果几乎不互相影响,实时性要求不高。并行计算:基于同一个台PC,利用CPU的多核共同完成一个任务。

1)分布式操作系统

      分布式操作系统:负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理进程通信系统结构等方面。

2)分布式文件系统

       分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。

3)分布式程序设计和编译解释系统

      分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性

     分层应用程序可以按层数进行划分,信息可以从数据层(通常存储在数据库)传送到表现层(显示在客户端上)。通常每层相对于其他层来说都运行在不同的系统中,或者在同一系统中的不同进程空间里。分层好处:减小整个应用程序的复杂性;使应用程序能够更好的扩展,跟得上企业发展的需要。 

  •        两层应用程序: 典型的结构,一个客户端的用户PC(前端);一个包含数据库的网络服务器(后端)。逻辑上根据两者的物理位置划分。通常客户端包含大部分业务逻辑,随着数据库及存储过程的发展,SQL语言允许业务逻辑在数据库服务器中存储并执行。 
  •        三层应用程序:目前最常用的是三层应用程序结构,包含一个用户服务层(表现层),一个业务服务层和一个数据服务层。业务逻辑层从用户界面和数据源中分离出来。 由于两层应用程序即客户端/服务器端结构的功能限制,分布式应用程序通常分为三层或者更多层。每层的组件都执行一个特定类型的处理。
3)分布式数据库

之我见:分布式数据库,由分布在不同地方(地理位置上的分布)的多个数据库(称为站点)连接(基于计算机网络来连接)而成。利用分布式DBMS对各个站点统一管理,各个站点逻辑上统一起来。基于数据分布的透明性,仿佛在管理单个站点上的数据。其优点在于:容错,提高访问速度。

wiki官方解释: 分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或结点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统。

 分布式数据库的基本特点包括:物理分布性、逻辑整体性和站点自治性。从这三个基本特点还可以导出的其它特点有:数据分布透明性、集中与自治相结合的控制机制、适当的数据冗余度和事务管理的分布性。分布式数据库按照各站点中数据库管理系统的数据模型的异同分为异构型分布式数据库和同构型分布式数据库,按照控制系统的类型分为全局控制集中性、全局控制分散型和全局控制可变型

3. Hadoop , HDFS, HBase, Hive

之我见:  

     Hadoop是一个分布式系统基础框架,基于这个框架开发分布式应用程序,利用集群的高速运算和存储的威力。类似于,基于NVIDIA 的 CUDA并行架构开发并行程序,发挥GPU的并行计算能力。
     HDFS是Hadoop的文件系统。基于HDFS,你可以对文件进行操作,例如新建,删除,编辑,重命名等。
     HBase: 基于Hadoop架构的数据库系统。不是关系型数据库,基于列的模式。
     Hive: 基于HBase的高层语言。类似于SQL --- 访问和处理关系型数据库的计算机语言。


官方解释:

      Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。

       HDFS(Hadoop Distributed File System)是Hadoop实现的一个分布式文件系统。它存储 Hadoop 集群中所有存储节点上的文件。对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

        HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。HBase的数据模型和存储结构,参考 http://www.searchtb.com/2011/01/understanding-hbase.html

        Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件(例如xml)映射为一张数据库表并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

转载于:https://my.oschina.net/moooofly/blog/115070

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米开招.NET,20~40k*16薪,点名要求WPF+自动化!

近期小米发布了深圳南山区的C#工程师招聘岗位,20~40k*14薪的待遇让人心动,其核心技术要求再WPF、MVVM、自动化设备、本地数据库等,有没有发现什么秘密?互联网造车!物联网终极形态自今年3月份小米宣布要造车&#xff0c…

linux内核线程socket,从Linux源码看Socket(TCP)的accept

从Linux源码看Socket(TCP)的accept前言笔者一直以为若是能知道从应用到框架再到操做系统的每一处代码,是一件Exciting的事情。 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底作了哪些事情(基于Linux 3.10内核)。html一个最简单的Server端…

豆瓣最高评分8.9!让你拥有“多样性思维”

▲数据汪特别推荐点击上图进入玩酷屋01表象与本质我们的大脑是如何工作的?所谓的类比到底是什么?我们是怎么在截然不同的情景间建立起联系的?类比在学习的过程中发挥着怎样的作用?人类大脑中的每个概念都源于多年来不知不觉中形成的一长串类…

复仇!3:1 KO叙利亚!.NET程序员用算法推演出国足进世界杯概率...

6月16日凌晨2点,国足在阿联酋沙迦体育场迎战卡塔尔世预赛亚洲区40强赛最后一个对手,已经锁定小组头名并出线的劲敌叙利亚队,上半场艾克森中框,武磊送助攻,张稀哲打破僵局,下半场奥斯曼扳平比分,…

linux终端背景透明度设置,Ubuntu Terminal标签背景颜色设置

使用ubuntu以来一直苦于terminal标签颜色差距太小,有时候根本不知道自己在哪个标签下,于是在网上搜索如何设置背景颜色可以让标签便于区分,现总结如下:1.打开gtk-widgets.cssvim /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.…

快速入门人工智能,这波福利不能错过!

不知不觉,寒假就这样溜走了,看着这个寒假养肥的膘,嗯~又是一个充实的假期。不少同学踏上返校之路,迎来新学期!新学期,当然少不了小天的陪伴啦!早春开学季,小天送福利,福利…

从代码角度揭示:华为鸿蒙的“套壳”真相!

华为鸿蒙操作系统(HarmonyOS)出来后,互联网上已经吵翻天了,有人认为HarmonyOS是“自主的全场景分布式系统”,是国产之光,另一派则认为HarmonyOS是“Android套壳”,是挂羊头卖狗肉。作为十年老程…

linux进化树分析的软件,一款好用的进化树可视化编辑软件

原标题:一款好用的进化树可视化编辑软件iTOL(Interactive Tree Of Life)是一个在线显示和操作的进化树工具。我们可以添加很多自定义的项目,丰富和完善自己的进化树,比如添加柱状图、蛋白结构域、heatmap、基因平行转移(horizontal gene tran…

每日一笑 | 床上还是桌上,你总得选一样~

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

Redis分布式锁抽丝剥茧

之前码甲哥写了两篇有关线程安全的文章:•你管这叫线程安全?•.NET八股文:线程同步技术解读分布式锁是"线程同步"的延续最近首度应用"分布式锁",现在想想,分布式锁不是孤立的技能点,这…

让苹果CEO库克折服的程序员仅10岁!?

▲数据汪特别推荐点击上图进入玩酷屋在国外,编程教育课早已普及,美国、英国、新加坡等国家少儿编程已进入小学标准必修课程体系。韩国、日本也相继在2017年和2020年开展一年级至初三的编程教育普及。美国总统孙女,五岁开始学习在电脑上编程最…

WPF Datagrid合并表头的思路

在使用datagrid的时候,有很多情况下,都需要合并表头,多行表头之类的操作。这就需要我们自定义列了。本文给出一个思路,可以实现此需要,只是本人对这个研究不很明白,只是只是实现,仅此而已。下面…

C# 爬虫:疫情实时信息图

运行结果:using System; using System.Drawing; using System.Text; using NSoup; using NSoup.Nodes; using System.IO; using System.Net; using System.Text.RegularExpressions; using System.Windows.Forms;namespace Pneumonia {public partial class MainFor…

史上最黑科技 | 人造肌肉、DNA折叠、柔性外骨骼…

全世界只有3.14 % 的人关注了数据与算法之美说起被机器人支配,一部分人恐惧得不行,另一部人只当个笑话,但无论哪一边,都忍不住想看看这个神秘的领域正在发生什么,这是本能:“我得盯着你,如果哪天…

linux l显示详细信息,fdisk -l显示信息详解

fdisk -l显示信息详解[rootwww.linuxidc.com ~]# fdisk -lDisk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits cylinders of 16065 * 512 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/o…

有钱真的能为所欲为,微软用75亿美元解决了比尔盖茨的“心头大患”

全世界只有3.14 % 的人关注了数据与算法之美2018年6月4日,微软在官方博客上宣布:以75 亿美元的价格收购了全球最大的开源代码托管平台GitHub。谁也没想到,微软和开源这场长达几十年的战争,到最后双方竟然喜结连理了。不过&#xf…

linux 逻辑卷 pe size 4.00 mib大小怎么改,linux逻辑卷的建立

开始的时候系统各目录的挂载情况如下:增加了一个8G大小的scsi磁盘启动系统之后。[rootpoint1 ~]#fdisk �Cl增加了一个sdb设别。一、分区并格式化磁盘[rootpoint1 ~]#fdisk /dev/sdb输入m是显示帮助菜单输入n创建一个分区,选择p创建主分区&…

svn 自动同步到web站点目录post-commit.bat

为什么80%的码农都做不了架构师?>>> 需求分析: 在服务器上搭建了visualSVN server ,然后为了统一测试环境,又在服务器上搭建了web server。现在的需求是,当开发人员通过svn提交更新的时候,让svn自动将文件…

.NET之模型绑定和验证

介绍模型绑定就是接收将来自HTTP请求的数据映射到模型的过程。如果找不到模型属性的值&#xff0c;并不会报错&#xff0c;而是给该属性设置默认值。示例&#xff1a;比如我们有一个接口为[HttpGet("{id}")] public ActionResult<Pet> GetById(int id, bool do…

每日一笑 | 大学教室的真实写照...

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图片来源于网络&#xff0c;侵权删&#xff09;