NTP时钟服务器(时间同步服务器)在大数据时代的重要性

NTP时钟服务器(时间同步服务器)在大数据时代的重要性

技术交流:岳峰 15901092122

bjhrkc@126.com   

大数据时代众多分布式系统使用分布式算法,所以它的同步机制比集中式系统更为复杂。在集中式系统中能够做到的,在某一位置上能集收到系统的所有信息,然后由某些进程检测这些信息,再做出同步决策,而这在分布式系统中常常是不可能做到的。分布式算法一般有以下特点:

1)相关信息分布在多台机器上。

2)进程只根据本地可用的信息做出决策。

3)应避免系统中单机失效。

4)没有公共时钟或其他精确的全局时间源。

前面三点都是说在处理过程中的单个点上无法收集到系统的所有信息。例如,在做资源分配(以不会出现死锁的方式分配I/O设备)时,通常不应将所有的IO请求发送给一个管理进程.管理进程检查所有的I/O请求,根据其设备表中的信息决定满足请求或拒绝请求。在大系统中,将所有的请求发送给单个管理进程,会使这个进程的负担过重。而且象这样的单机失效会使整个系统变得不可靠。理想情况下,分布式系统应该比单机更可靠。如果分布式系统中某台机器停止工作,剩余的机器应该能够继续完成系统功能。最不希望看到的是,由于某台机器的失败(如资源分配器)导致许多其他机器(如它的客户)终止工作。为了在没有集中控制的情况下实现同步,需要采取与传统操作系统不同的方式。

  上面列出的第4点也很重要。在集中式系统中,时间是很明确的。每个进程要知道当前时间,只要执行一个系统调用,操作系统内核就会返回当前系统时间给进程。如果进程A查询了系统时间,稍后进程B也去查询系统时间,那么进程B得到的时间将在进程A得到的时间值之后(也可能相等),肯定不会在此之前。分布式系统中,要达到这种时间的一致性不是件简单的事。

作为一个简单例子,考虑一下缺乏全局一致的时间对UNIX中make程序的意义。在UNIX中,大型程序通常分割成多个源文件,这样在修改某个文件时只要编译这一个文件,而不是编译所有的文件。如果程序有一百个文件,则不需因为有一个文件发生了较大的变化而重新编译所有文件,从而大大加快了程序员工作的速度。

  通常,make程序的工作方式很简单。程序员在修改源文件后,启动nla~e。Make程序检查源文件及与它相应的目标文件的最后修改时间。如果源文件input.C的最后修改时间为2151,而相应目标程minput.o的最后修改时间为2150,make程序就可以确定在创建input.o后,修改了源文件input.C,因此要重新编译源文件input.C。相反,如果output.c的最后修改时间为2144,而output,o的最后改时间为2145,就不需要重新编译output,c了。Make程序遍历所有的源文件,找

出需要重新编译的文件,调用编译器编译这些文件。

现在,想象在没有全局—致时间的分布式系统中执行make程序。假设ouput.o的最后修改时间还是2144,随即修改了源文件output.c,但是由于编辑output.c的机器的时钟慢,所以修改后output.c的最后时间被指定为2143,如图11-1所示.这时,make程序就不会重新编译output.c结果,生成的可执行文件就包括由旧的源文件生成的目标文件和新的源文件产生的目标文件。 这样,程序的运行就会存在问题,而程序员要在代码中找到问题的出处,也是大伤脑筋的事。

  上面我们看到,时间是人们考虑问题的基础,时钟之间的不同步会产生戏剧性的结果。因此,以“分布系统中的所有时钟可能同步吗?”这样一个简单问题开始研究同步是比较合适的。

NTP时钟服务器(时间同步服务器)在大数据时代的重要性的更多相关文章

  1. 跟上节奏 大数据时代十大必备IT技能(转)

    新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最 ...

  2. 大数据时代的技术hive:hive介绍

    我最近研究了hive的相关技术,有点心得,这里和大家分享下. 首先我们要知道hive到底是做什么的.下面这几段文字很好的描述了hive的特性: 1.hive是基于Hadoop的一个数据仓库工具,可以将 ...

  3. 大数据时代的数据存储,非关系型数据库MongoDB

    在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来解释数据库中抽象的数据架构. ...

  4. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义(图灵访谈)

    转自:http://www.ituring.com.cn/article/75445 王益,LinkedIn高级分析师.他曾在腾讯担任广告算法和策略的技术总监,在此期间他发明了并行机器学习系统“孔雀” ...

  5. 大数据时代的数据存储,非关系型数据库MongoDB(一)

    原文地址:http://www.cnblogs.com/mokafamily/p/4076954.html 爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Da ...

  6. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)

    二.Work Queues(using the Java Client) 走起   在第上一个教程中我们写程序从一个命名队列发送和接收消息.在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工 ...

  7. 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)

    柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...

  8. 看大数据时代下的IT架构(1)业界消息队列对比

    一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveM ...

  9. 跟上节奏 大数据时代十大必备IT技能

    跟上节奏 大数据时代十大必备IT技能 新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT ...

  10. 大数据时代,我们为什么使用hadoop

    大数据时代,我们为什么使用hadoop 我们先来看看大数据时代, 什么叫大数据,“大”,说的并不仅是数据的“多”!不能用数据到了多少TB ,多少PB 来说. 对于大数据,可以用四个词来表示:大量,多样 ...

随机推荐

  1. 6.navicat for mysql 定时计划 定时导出EXCEL文件 并 附件发送邮件到固定邮箱

    链接:https://blog.csdn.net/pizilii/article/details/80829761 补充: 先查看mysql定时任务是否开启. show variables like ...

  2. 【Pr】如何将音频剪成多段批量导出

    如何将音频剪成多段批量导出 需要软件: Pr, Adobe Media Encoder (时间线窗口中) 用剃刀将音频割成多段 (时间线窗口中) 选中音频右键 | 嵌套 | 输入名字 (嵌套快捷键:A ...

  3. centos8使用kubeadm搭建高可用k8s集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 kubeadm ini ...

  4. C# VS2019修改工程名

    1.修改解决方案的名称:选择解决方案的名称,右键重命名即可 2.修改项目名称,方法同上,不再赘述 3.修改项目的程序集名称和默认命名空间:选择项目,右键属性,弹出如下对话框 4.替换项目或解决方案中的 ...

  5. 怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤

    怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤.如何卸载inventor呢?有很多同学想把inventor卸载后重新安装,但是发现inventor安 ...

  6. 【文献阅读】Wigley船在波浪中的运动分析

    (1)相关内容 船舶在波浪上运动所受到的外力,主要是流体作用力.这些力的大小和变化与船舶以及流体相对运动有关.一般采用流体动力学方法计算. 船舶在波浪中的运动,根据波浪的形式,分为规则波与不规则波两个 ...

  7. Android Studio 生成Jar包以及是否混淆打包等ZengYuanFinn博客等你来查看

    1,Android studio生成jar包的前提是要确保生成的代码是引用的module工程: 2,在需要生成jar包的build.gradle(上图倒数第三行)中添加如下代码: //生成jar包 t ...

  8. JVM中的GC系统

    什么是GC? GC(Garbage Collection)称之为垃圾回收,在JVM的执行引擎中自带这样的一个GC系统,此系统会按照一定的算法对内存进行监控和垃圾回收. 如何判断哪些对象是垃圾? 1.引 ...

  9. WPF BackSpace 回退到上一个页面

    在Wpf程序中,有时候点击到某些控件后,再按下[BackSpace]键,画面会回到上一个 TextBox可能自己处理了,所以没有这一个现象. 解决方案是: 在App.xaml.cs 的 Initial ...

  10. K8S中pod和container的资源管理:CPU和Memory

    K8S中创建pod时,可以显示地指明包含的container的资源需求(resouce request和resource limit),通常是CPU和Memory(RAM). kube-schedul ...