分布式处理

Hadoop与Spark比较

ぃ、小莉子 提交于 2019-12-01 18:24:46
Hadoop与Spark比较 https://www.cnblogs.com/charlesblc/p/6206198.html 感觉自己落下好多东西没有学习 先看这篇文章:http://www.huochai.mobi/p/d/3967708/?share_tid=86bc0ba46c64&fmid=0 直接比较Hadoop和Spark有难度,因为它们处理的许多任务都一样,但是在一些方面又并不相互重叠。 比如说,Spark没有文件管理功能,因而必须依赖Hadoop分布式文件系统(HDFS)或另外某种解决方案。 Hadoop框架的主要模块包括如下: Hadoop Common Hadoop分布式文件系统(HDFS) Hadoop YARN Hadoop MapReduce 虽然上述四个模块构成了Hadoop的核心,不过还有其他几个模块。这些模块包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它们进一步增强和扩展了Hadoop的功能。 Spark确实速度很快(最多比Hadoop MapReduce快100倍)。Spark还可以执行批量处理,然而它真正擅长的是处理流工作负载、交互式查询和机器学习。 相比MapReduce基于磁盘的批量处理引擎,Spark赖以成名之处是其数据实时处理功能。Spark与Hadoop及其模块兼容

hadoop学习笔记:hadoop文件系统浅析

耗尽温柔 提交于 2019-12-01 17:19:55
hadoop学习笔记:hadoop文件系统浅析 https://www.cnblogs.com/sharpxiajun/archive/2013/06/15/3137765.html 1.什么是分布式文件系统? 管理网络中跨多台计算机存储的文件系统称为分布式文件系统。 2.为什么需要分布式文件系统了? 原因很简单,当数据集的大小超过一台独立物理计算机的存储能力时候,就有必要对它进行分区(partition)并存储到若干台单独计算机上。 3.分布式系统比传统的文件的系统更加复杂 因为分布式文件系统架构在网络之上,因此分布式系统引入了网络编程的复杂性,所以分布式文件系统比普通文件系统更加复杂。 4.Hadoop 的文件系统 很多童鞋会把hdfs等价于hadoop的文件系统,其实hadoop是一个综合文件系统抽象,而hdfs是hadoop旗舰级文件系统,hadoop除了hdfs还能集成其他文件系统。Hadoop的这个特点充分体现了hadoop的优良的可扩展性。 在hadoop里,hadoop定义了一个抽象的文件系统的概念,具体就是hadoop里面定义了一个java的抽象类:org.apache.hadoop.fs.FileSystm,这个抽象类用来定义hadoop中的一个文件系统接口,只要某个文件系统实现了这个接口,那么它就可以作为hadoop支持的文件系统

分布式设计与开发

流过昼夜 提交于 2019-12-01 17:03:40
#0 系列目录# 分布式设计与开发 CAP原理和最终一致性(Eventually Consistency) 分布式算法 [分布式Paxos算法] 分布式一致性Hash算法 轮循算法(Round Robin) Hash求余算法(Hash) 最少连接算法(Least Connection) 响应速度算法(Response Time) 加权算法(Weighted) 分布式消息 分布式发布订阅消息系统Kafka架构设计 分布式缓存 Redis 分布式 Memcached 分布式 分布式存储 分布式事务 #1 分布式介绍# 分布式可繁也可以简,最简单的分布式就是大家最常用的, 在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态 ,后面共享一个数据库, 其实很多号称分布式专家的人也就停留于此 ,大致结构如下图所示: 这种环境下 真正进行分布式的只是web server而已 ,并且web server之间没有任何联系,所以结构和实现都非常简单。 有些情况下,对分布式的需求就没这么简单,在每个环节上都有分布式的需求,比如Load Balance、DB、Cache和文件等等,并且当分布式节点之间有关联时,还得考虑之间的通讯,另外,节点非常多的时候,得有监控和管理来支撑。这样看起来, 分布式是一个非常庞大的体系 ,只不过你 可以根据具体需求进行适当地裁剪

分布式架构知识体系

馋奶兔 提交于 2019-12-01 12:21:15
作者 | 晓土 阿里巴巴高级工程师 姊妹篇阅读推荐 : 《 云原生时代,分布式系统设计必备知识图谱(内含22个知识点) 》 导读: 本文力求从分布式基础理论、架构设计模式、工程应用、部署运维、业界方案这几大方面,介绍基于 MSA(微服务架构)的分布式知识体系大纲,从而对 SOA 到 MSA 进化有着立体的认识;从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感受如何搭建全套微服务架构的过程。 关注“阿里巴巴云原生”公众号,回复“ 分布 ”,即可下载分布式系统及其知识体系清晰大图! 随着移动互联网的发展和智能终端的普及,计算机系统早就从单机独立工作过渡到多机器协作,集群按照分布式理论构建出庞大复杂的应用服务,在分布式的基础上正进行一场云原生的技术革命,彻底打破传统的开发方式,解放了新一代的生产力。 分布式系统知识体系大图 关注“阿里巴巴云原生”公众号,回复“ 分布 ”,即可下载分布式系统及其知识体系清晰大图! 基础理论 SOA 到 MSA 的进化 SOA 面向服务架构 由于业务发展到一定程度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯。面向服务的设计模式,最终需要总线集成服务,而且大部分时候还共享数据库,出现单点故障时会导致总线层面的故障,更进一步可能会把数据库拖垮,所以才有了更加独立的设计方案的出现。 MSA 微服务架构

php分布式是什么

Deadly 提交于 2019-12-01 12:18:53
分布式网络存储技术是将数据分散地存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。 php分布式是指多台服务器处理不同的工作,指的是业务上的一般,比如多台服务器有的处理日志分布到一些服务器,有的处理下单,分布到一些服务器。 框架作为协同开发规范和开发效率的保证,不得不被引入到日常开发中,可一旦加上了框架这层封装,势必影响php接口的整体性能。 基于php7+swoole的php代码的性能已经超过了静态编译的go语言。 当下流行的php框架laravel,确实解决了很多规范和开发效率问题;但是臃肿的架构和用php去实现的封装,让他的性能表现不佳。 针对这种情况,本架构选择c扩展框架phalcon作为开发框架,让框架带来的性能损耗,降到最小。 使用Web集群方式部署之后,首要调整的就是用户状态信息与附件信息。用户状态不能再保存到Session中,缓存也不能用本地Web服务器的文件缓存,以及附件,也不能保存在Web服务器上了。 因为要保证集群里面的各个Web服务器,状态完全一致。因此,需要将用户状态、缓存等保存到专用的缓存服务器,比如Memcache。附件需要保存到云存储中。 Web负载均衡 Web负载均衡(Load

02-3 分布式中服务中超时处理

时光怂恿深爱的人放手 提交于 2019-12-01 11:35:19
一、微服务交互模式 1.1、同步调用 特点: 请求服务方调用响应服务方,请求方阻塞等待响应处理结果,一直等待到超时或成功。 适用场景: 大规模,高并发的短小操作,不适用后端负载较高的场景。如:JDBC实现为BIO同步阻塞 1.2、异步调用 特点: 请求服务调用响应服务,响应服务受理成功后,请求服务继续其他操作,当响应服务操作成功后请求服务做后续处理操作 使用场景: 非核心链路处理,耗时长,对实时要求不高。 1.3、消息队列异步处理 特点: 发送者发送消息给接收者,发送者不等待接收者返回结果。实现了服务之间的解耦,一般应用于非核心链路负载较高环节。 使用场景: 用户支付成功后采用消息方式异步处理物流信息。 1.4、同步与异步选择 同步与异步选择原则: 1、尽量使用异步代替同步操作: 从实际业务出发,将耗时操作放在异步处理 2、能用同步解决的问题不用异步: 从技术架构出发没有性能问题使用同步操作 二、交互模式解决方案 2.1、同步调用解决方案 同步状态下服务会返回两种状态的数据 两种状态接口:成功,失败 三种状态接口:成功,失败,处理中 2.1.1、两状态的同步接口:成功,失败 1、服务调用同步接口时(返回失败时): 调用方发起重试再次处理(重试需要进行幂等性处理) 2、服务之间调用时(返回失败时): 使用快速失败策略:针对这个超时服务快速返回失败 调用方调用被调用方的冲正接口

基于SOA的高并发和高可用分布式系统架构和组件详解

瘦欲@ 提交于 2019-12-01 07:02:41
基于SOA的分布式高可用架构和微服务架构,是时下如日中天的互联网企业级系统开发架构选择方案。在核心思想上,两者都主张对系统的横向细分和扩展,按不同的业务功能模块来对系统进行分割并且使用一定的手段实现服务之间的通信,并且基于弹性云服务搭建高可用的分布式解决方案。 但它们之间的区别可能比相似的地方要多,特别是体现在对服务的使用和与云服务的深度结合上。在具体实践中,微服务的架构也可以与其它互联网中间件组合在一起,组成规模更为庞大的SOA分布式系统。本文主要对一个典型的SOA分布式应用的架构和组件做详细的说明。 企业级系统架构的演变 单体式 单体架构即所有系统功能和模块基于MVC的设计模式耦合在一个单体服务器单元中。基于传统的MVC思想,单体应用基于前后端分离的原则,通过Model、Control和View共同来完成一个特点的服务请求。这种传统的架构模式带了了多人团队合作、代码更新和维护、持续部署方面的困难,更重要的是,这种架构无法支持互联网行业对高并发的需求。下图为一个典型商城应用的单体架构及其SSM实现架构: 关于单体式应用的更多资料,可参看: JavaWeb开发之详解Servlet及Servlet容器 基于SSM的Java Web应用开发原理初探 集群 至少在高并发的需求上,单体应用的缺陷是行业所无法忍受的, 那如何提升并发性能呢?一个直接的思路是,把单体应用变成多体,变成集群

大数据技术栈

烈酒焚心 提交于 2019-12-01 06:58:49
大数据技术栈 Hadoop 历史: https://www.jikexueyuan.com/course/677_1.html?ss=1 1. Google大数据与Hadoop对比 功能 Google Hadoop 存储 GFS HDFS 计算 MapReduce MapReduce 查询 BigTable HBase 2. 大数据分类 2.1 根据数据类型分类 2.1.1 结构化数据 能够用数据或统一的结构加以表示,人们称之为结构化数据,如数字、符号。传统的关系数据模型,行数据,存储于数据库,可用二维表结构表示。 2.1.2 半结构化数据 所谓半结构化数据,就是介于完全结构化数据(如关系型数据库,面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,XML、HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。 2.1.3 非结构化数据 非结构化数据库是指其字段长度可变,并且每隔字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本,图像,声音,影视,超媒体等信息)。 参考链接: https://zhidao.baidu.com/question/589302455243618045.html 2.2 根据处理时间跨度要求分类 2.2

Hadoop+Spark分布式集群环境搭建

两盒软妹~` 提交于 2019-12-01 06:22:16
  Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,而Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。 下面使用在同一个局域网下的两台电脑搭建分布式计算的环境:   其中JDK、Hadoop、Spark都已经在两台电脑上安装好。   一台Ubuntu主机系统Master,IP地址假设为:192.168.1.101( ifconfig 查看IP地址)   一台Ubuntu主机系统Slave ,IP地址假设为:192.168.1.108   (互ping一下,测试能否ping通) 修改主机名(方便区分主机): sudo vim /etc/hostname #分别修改为Master、Slave 修改完后分别重启一下,在终端Shell中可看到机器名的变化。 修改两台电脑的/etc/hosts文件, sudo vim /etc/hosts 添加同样的配置: 127.0.0.1 localhost 192.168.1.101 Master 192.168.1.108 Slave 配置完后在Master上检测一下能否ping通: ping Slave 配置ssh无密码登录本机和访问集群机器 sudo apt-get openssh-server #若未安装ssh需先安装 ssh-keygen -t rsa -P "" cat $HOME/.ssh/id_rsa

接口常识

半腔热情 提交于 2019-12-01 02:14:37
衡量一个接口是否能够支撑高并发,我们最先想到的就是他的QPS是多少,影响QPS大小的关键因素是你的系统是否支持分布式、高并发,当提起这几三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗? 实际上,他们三个总是相伴而生,但侧重点又有不同。 01 什么是分布式? 分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。 该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。 从理念上讲,分布式的实现有两种形式: 水平扩展:当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务; 垂直拆分:前端有多种查询需求时,一台机器扛不住,可以将不同的需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。 02 什么是高并发? 相对于分布式来讲,高并发在解决的问题上会集中一些,其反应的是同时有多少量:比如在线直播服务