
分布式系统
文章平均质量分 61
继续微笑lsj
眼界决定未来
展开
-
MetricsSystem
Metrics,我们听到的太多了,熟悉大数据系统的不可能没听说过metrics,当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个例子,一个图片压缩服务:每秒钟的请求数是多少(TPS)?平均每个请求处理的时间?请求处理的最长耗时?等待处理的请求队列长度?又或者一个缓存服务:缓存的命中率?平均查询缓存的时间?基本上每一个服务、应用都需要转载 2017-08-03 23:02:34 · 1486 阅读 · 0 评论 -
RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。第一部分:RabbitMQ,ActiveMq,ZeroMq比较1、 TPS比较 一ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文转载 2016-03-01 22:20:39 · 462 阅读 · 0 评论 -
hadoop集群默认配置和常用配置
获取默认配置配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生效,上网找的配置可能因为各个hadoop版本不同,导致无法生效。浏览更多的配置,有两个方法:1.选择相应版本的hadoop,下载解压后,搜索*.xml,找到core-default转载 2016-01-28 11:56:30 · 520 阅读 · 0 评论 -
“预”的话题
1)预读,内存有这种预读策略,磁盘io可以预读到buffer;2)预期/预查询,在系统中我们可以通过预先查询,不用等到一定要查询的时候进行,可以通过响应时间。但是分布式系统与分环算法配合,不然预也是徒劳。头脑中记三遍: 预!预!预!原创 2015-11-27 18:14:41 · 503 阅读 · 0 评论 -
日志分析系统
日志处理系统;1)application部署logagent,作为消息系统的生产者;2)消息系统(kafka,scribe)处理推送到下游订阅者;3)下游做分布式运算。盗图:(转载:http://www.aboutyun.com/thread-6855-1-1.html)原创 2015-11-24 20:13:45 · 657 阅读 · 0 评论 -
max-min fairness 最大最小公平算法
我们经常面临给一组用户划分稀有资源的问题,他们都享有等价的权利来获取资源,但是其中一些用户实际上只需要比其他用户少的资源.那么我们如何来分配资源呢?一种在实际中广泛使用的分享技术称作“最大最小公平分享”.直观上,公平分享分配给每个用户想要的可以满足的最小需求,然后将没有使用的资源均匀的分配给需要‘大资源’的用户。最大最小公平分配算法的形式化定义如下:资源按照需求递增的顺序进行分配不转载 2015-11-15 08:52:15 · 1675 阅读 · 0 评论 -
MR shuffle
MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据。第一个提出该技术框架的是Google 公司,而Google 的灵感则来自于函数式编程语言,如LISP,Scheme,ML 等。 MapReduce 框架的核心步骤主要分两部分:Map 和Reduce。当你向MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map 任转载 2015-10-03 10:05:50 · 2000 阅读 · 0 评论 -
全方位对比Mesos、Omega和Borg
谷歌最近公布了他们基础设施系统王冠上的宝石之一:Borg,集群调度系统。这促使我重新阅读了Mesos和Omega论文,它们与Borg的功能类似。我觉得对比下这三个系统一定会非常有趣。Mesos两级调度的突破性理念得到了认可,Omega使用类似数据库的技术有所改进,Borg可以看作是对所有这些思想的巅峰之作。背景集群调度系统在大数据出现之前就存在已久。在高性能计算(HPC)的世界中,转载 2015-11-05 16:12:21 · 1724 阅读 · 0 评论 -
MR基本步骤
工作原理MapReduce执行流程右图是论文里给出的流程图。一切都是从最上方的user program开始的,user program链接了MapReduce库,实现了最基本的Map函数和Reduce函数。图中执行的顺序都用数字标记了。1.MapReduce库先把user program的输入文件划分为M份(M为用户定义),每一份通常有16MB到64MB,如图左方所转载 2015-10-02 22:19:43 · 802 阅读 · 0 评论 -
spark submit参数说明
参数名称含义--master MASTER_URL可以是spark://host:port, mesos://host:port, yarn, yarn-cluster,yarn-client, local--deploy-mode DEPLOY_MODEDriver程序运行的地方转载 2015-07-24 16:24:53 · 2180 阅读 · 0 评论 -
spark RDD API详解
RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部分,将介绍S转载 2015-07-24 16:01:33 · 1162 阅读 · 0 评论 -
Spark开发指南
从高的层面来看,其实每一个Spark的应用,都是一个Driver类,通过运行用户定义的main函数,在集群上执行各种并发操作和计算Spark提供的最主要的抽象,是一个弹性分布式数据集(RDD),它是一种特殊集合,可以分布在集群的节点上,以函数式编程操作集合的方式,进行各种各样的并发操作。它可以由hdfs上的一个文件创建而来,或者是Driver程序中,从一个已经存在的集合转换而来。用户可以将数据转载 2015-07-24 12:55:12 · 675 阅读 · 0 评论 -
spark三种分布式部署方式比较
目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce转载 2016-02-01 17:07:07 · 1419 阅读 · 0 评论 -
Spark架构与作业执行流程
Spark架构与作业执行流程简介Local模式运行Spark最简单的方法是通过Local模式(即伪分布式模式)。 运行命令为:./bin/run-example org.apache.spark.examples.SparkPi local基于standalone的Spark架构与作业执行流程Standalone模式下,集群启动时包括Master与Wo转载 2016-02-01 17:38:49 · 800 阅读 · 0 评论 -
HBase与MongDB等NoSQL数据库对比
一、开篇淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。MySQL由于开源,并且生态系统良好,本身拥有分库分表等多种解决方案,因此很长一段时间内都满足淘宝大量业务的需求。但是由于业务的多样化发展,有越来越多的业务系统的需求开始发生了变化。一般来说有以下几类变化:(1) 数据量变得越来越多 ,事实上现在淘宝几乎任何一个与用户相关的在线业务的转载 2016-10-19 14:01:40 · 1018 阅读 · 0 评论 -
scribe 日志搜集
1.General description我们知道,使用日志系统是为了使系统变得更健壮,能够应对各种错误并能从错误中较快地恢复。一个大型的分布式系统生成的日志数量是巨大的,所以需要一个有效的工具对其进行管理。Scribe就是这样一个日志收集服务器,使用它可以对大型的系统进行监控。它是Facebook的一个开源组件,使用的是Facebook另一个框架—Thrift。Thrift在我的理解就是一转载 2016-06-29 22:26:18 · 1513 阅读 · 0 评论 -
Snowflake算法核心
把时间戳,工作机器id,序列号组合在一起。 除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id可以支持1023台机器,序列号支持1毫秒产生4095个自增序列id。下文会具体分析。Snowflake – 时间戳这里时间戳的细度转载 2016-06-29 11:33:25 · 1617 阅读 · 0 评论 -
HBase -ROOT-和.META.表结构
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究源码的基础上揭转载 2016-02-28 22:30:18 · 428 阅读 · 0 评论 -
RabbitMQ基础概念详细介绍
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ简介转载 2016-03-30 22:33:20 · 386 阅读 · 0 评论 -
四层和七层负载均衡的区别
(一) 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求转载 2016-03-18 10:25:55 · 522 阅读 · 0 评论 -
php安装gearman扩展实现异步分步式任务
一、简介Gearman是一个分发任务的程序框架,它会对作业进行排队自动分配到一系列机器上。gearman跨语言跨平台,很方便的实现异步后台任务。php官方收录:http://php.net/manual/zh/book.gearman.php如上图,一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。Client:请求的转载 2016-03-17 14:16:32 · 993 阅读 · 0 评论 -
socat代理
安装socat:运行:nohup socat -ls TCP4-LISTEN:[端口号],reuseaddr,fork TCP4:[转发目的机器]:[转发目的端口] &原创 2016-02-04 11:01:11 · 2199 阅读 · 0 评论 -
spark on yarn中yarn-cluster与yarn-client区别
我们都知道Spark支持在yarn上运行,但是Spark on yarn有分为两种模式yarn-cluster和yarn-client,它们究竟有什么区别与联系?阅读完本文,你将了解。 Spark支持可插拔的集群管理模式(Standalone、Mesos以及YARN ),集群管理负责启动executor进程,编写Spark application 的人根本不需要知道Spark用的是什么集群管转载 2016-02-03 10:24:24 · 700 阅读 · 0 评论 -
spark on yarn作业执行流程
Spark是一个分布式数据快速分析项目。它的核心技术是弹性分布式数据集(Resilient Distributed Datasets),提供了比MapReduce丰富的模型,可以快速在内存中对数据集进行多次迭代,来支持复杂的数据挖掘算法和图形计算算法。Spark 的计算调度方式,从Mesos到Standalone,即自建Spark计算集群。虽然Standalone方式性能与稳定性都得到了提转载 2016-02-01 23:30:59 · 3371 阅读 · 0 评论 -
YARN
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路:首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中转载 2016-02-01 23:22:28 · 694 阅读 · 0 评论 -
资源管理框架(mesos/YARN/coraca/Torca/Omega)选型分析
1 资源调度的目标和价值1.1 子系统高效调度任务之间资源隔离,减少争抢。 任务分配调度时结合资源分配,各个任务分配合理的资源,充分利用系统资源,减少资源利用不充分的问题。 资源调度结合优先级,优先级高的分配更多的资源。1.2 提高全系统的资源利用率各个子系统,存在不同时期,对资源需求不一样的情况,平滑系统资源的利用。1.3 支持动态调整切分资源,增强系统扩转载 2016-02-01 23:13:34 · 591 阅读 · 0 评论 -
spark中的SparkContext实例的textFile使用的小技巧
http://blog.youkuaiyun.com/xiao_jun_0820/article/details/44218045网上很多例子,包括官网的例子,都是用textFile来加载一个文件创建RDD,类似sc.textFile("hdfs://n1:8020/user/hdfs/input")textFile的参数是一个path,这个path可以是:1. 一个文件路径,这时转载 2015-08-04 13:37:08 · 784 阅读 · 0 评论 -
Spark的TaskScheduler和DagScheduler
出自:http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/2040748开始研究神奇的spark。会陆续将研究的心得放上来。 在Spark中一个核心的是模块就是调度器(Scheduler),在spark中Scheduler有两种TaskScheduler(是低级的调度器接口),DagScheduler(是高级的调度) 我们在转载 2015-07-31 23:22:32 · 860 阅读 · 0 评论 -
spark源码分析--Master和worker建立连接
原创,转载请注明出处 http://baishuo491.iteye.com/blog/1990242。作者邮箱 vc_java@hotmail.com Spark的master启动后,等待work通过spark://master'ip:7077的url去连接Master. 在worker的回调函数preStart(Worker.scala)里面,调用了函数connectToMaste转载 2015-07-31 23:15:11 · 1020 阅读 · 0 评论 -
hadoop资源感知
原文:1. 什么是Hadoop资源感知调度器?Hadoop资源感知调度器是指调度器根据各个TaskTracker当前资源负载情况(cpu,内存,网络io等)动态决定将新任务调度给哪个节点处理。2. Hadoop资源感知调度器的必要性和重要性当前绝大多数Hadoop调度器是按照slot多少进行调度。在Hadoop中,存在两种slot:map slot和reduce转载 2014-09-09 22:48:15 · 1173 阅读 · 0 评论 -
Hadoop 文件命令
* 文件操作 * 查看目录文件 * $ hadoop dfs -ls /user/cl * * 创建文件目录 * $ hadoop dfs -mkdir /user/cl/temp * * 删除文件 * $ hadoop dfs -rm /user/cl/temp/a.txt * * 删除目录与目录下所有文件 * $ hadoop dfs -rmr /u转载 2014-07-28 11:45:50 · 836 阅读 · 0 评论 -
Hadoop简介
以下一部分内容参考网友。1. hadoop的发展 2002年,Appache Lucene的子项目Nutch,Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 2004年,google发表MapReduce论文,Doug cutting等人受到这篇文章的启发开始尝试实现MapReduce计算框架,并将它与NDFS原创 2013-11-10 20:16:31 · 1498 阅读 · 0 评论 -
Zookeeper集群环境搭建实践
Zookeeper集群环境搭建实践雨水/Dennis Hu 2013-3-11摘要:Zookeeper是一个很好的集群管理工具,被大量用于分布式计算。如Hadoop以及Storm系统中。这里简单记录下Zookeeper集群环境的搭建过程。本文以Ubuntu 12.04 LTS作为操作系统环境。准备:这里以三台ubuntu机器为例搭建一个最小的集群环境,三台服务器或者三台虚拟转载 2014-03-19 10:14:32 · 1221 阅读 · 2 评论 -
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。单机模式单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某转载 2014-03-18 16:04:51 · 1132 阅读 · 0 评论 -
分布式系统
看了《大规模分布式存储系统》总觉得要记录点什么才踏实。分布式系统的核心是用廉价的计算机构造集群,同时利用软件的方法解决可靠性问题。分布式中设计的基本问题包括数据分布、复制、一致性、容错等。最后包括分布式协议。数据分布是解决数据如何均匀到分布到多个存储节点;复制是将复制多个副本,其中有一个主副本;一致性解决是多个副本之间的数据一致性问题;容错是用软件的方式实现自动容错功能,当存储节点出现错误的时候能原创 2013-12-11 13:50:11 · 1720 阅读 · 0 评论 -
Hive-数据仓库
Hive是一个构建在Hadoop上的数据仓库平台,其设计目标是使Hadoop上的数据操作与传统SQL结合,让熟悉SQL编程的开发人员能够轻松向Hadoop平台迁移。Hive可以在HDFS上构建仓库来存储结构化的数据,这些数据是来源于HDFS上的原始数据,Hive提供了类似于SQL查询语言的HiveQL,可以执行查询、变换数据等操作。通过解析,HiveQL语句在底层被变换为相应的MapReduce操原创 2013-12-20 14:25:16 · 2475 阅读 · 0 评论 -
Chubby分布式锁
Google云计算技术具体包括:Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。与之对应的有HDFS,MapReduce,Zookeeper,Hbase。 Chubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。这种锁只是一种建议性的锁(原创 2013-11-15 00:58:44 · 5500 阅读 · 1 评论 -
MapReduce
MapReduce编程模型 MapReduce是一种海量数据的并行编程模型和计算框架,它最早运行在Google的分布式系统GFS下,后面Hadoop也实现了MapReduce编程模型和计算框架。MapReduce的主要思想把大规模数据的操作分发一个主节点管理下的分节点共同完成,然后整合各分节点的结果,得到最终的结果。 并行编程会遇到各种复杂的问题:分布式存储、工作调原创 2013-11-12 14:33:52 · 1511 阅读 · 0 评论 -
海量小文件问题综述
海量小文件问题综述海量小文件LOSF问题是工业界和学术界公认的难题,分析了LOSF问题的由来以及典型的应用场景,并简要阐述了当前文件系统在LOSF优化方面的进展。重点分析LOSF问题的根本原因,并给出具体的优化方法和策略,期望对LOSF问题的研究和优化实践提供一定的理论指导。1、LOSF问题概述在互联网(尤其是移动互联网)、物联网、云计算、大数据等高速发转载 2013-11-11 13:42:35 · 1887 阅读 · 0 评论 -
JobTracker和TaskTracker
JobTracker 对应于 NameNodeTaskTracker 对应于 DataNodeDataNode 和NameNode 是针对数据存放来而言的JobTracker和TaskTracker是对于MapReduce执行而言的 mapreduce中几个主要概念,mapreduce整体上可以分为这么几条执行线索:jobclient,JobTra转载 2013-10-14 10:54:05 · 1367 阅读 · 0 评论