解决方案:云计算相关软件介绍

优采云 发布时间: 2022-11-21 01:34

  解决方案:云计算相关软件介绍

  Hadoop

  由 Apache 基金会开发的基础设施。用户可以在不知道分发的底层细节的情况下开发分布式程序。充分利用集群的力量进行高速计算和存储。Hadoop实现了一个(Hadoop Distributed File System),简称HDFS。HDFS具有高特性,被设计为部署在低成本(low-cost)的硬件上。并且它提供了对数据的高吞吐量访问,适用于具有大数据集的应用程序。HDFS放宽了(relax)POSIX要求(requirements),使得文件系统中的数据可以以流的形式访问(streaming access)。

  Ganglia Ganglia 是加州大学伯克利分校发起的一个开源集群监控项目,旨在测量数千个节点。Ganglia 的核心由 gmond、gmetad 和一个 web 前端组成。主要用于监控系统性能,如:cpu、mem、硬盘利用率、I/O负载、网络流量情况等,通过曲线很容易看出各个节点的工作状态,合理调整和分配对提高系统整体性能起着重要作用。每台计算机都运行一个名为 gmond 的守护进程,用于采集

和发送度量数据。所有度量数据的接收者都可以显示此数据,并可以将此数据的紧凑形式传递到层次结构中。正是由于这种层次结构,Ganglia 才能很好地扩展。gmond带来的系统负载很轻,这使得它成为一段代码,可以在世界上每台计算机上运行,​​而不会影响用户性能。多次采集

的所有这些数据都会影响节点性能。当大量的小消息同时出现时,就会出现网络中的“抖动”。这个问题可以通过保持节点时钟一致来避免。gmetad可以部署在集群中的任意节点上,也可以部署在通过网络连接到集群的独立主机上。它通过与gmond通信的方式采集

区域内节点的状态信息,并以XML数据的形式保存在数据库中。数据通过RRDTool工具进行处理,生成相应的图形展示,以Web的形式直观的提供给客户端。多次采集

的所有这些数据都会影响节点性能。当大量的小消息同时出现时,就会出现网络中的“抖动”。这个问题可以通过保持节点时钟一致来避免。gmetad可以部署在集群中的任意节点上,也可以部署在通过网络连接到集群的独立主机上。它通过与gmond通信的方式采集

区域内节点的状态信息,并以XML数据的形式保存在数据库中。数据通过RRDTool工具进行处理,生成相应的图形展示,以Web的形式直观的提供给客户端。多次采集

的所有这些数据都会影响节点性能。当大量的小消息同时出现时,就会出现网络中的“抖动”。这个问题可以通过保持节点时钟一致来避免。gmetad可以部署在集群中的任意节点上,也可以部署在通过网络连接到集群的独立主机上。它通过与gmond通信的方式采集

区域内节点的状态信息,并以XML数据的形式保存在数据库中。数据通过RRDTool工具进行处理,生成相应的图形展示,以Web的形式直观的提供给客户端。这个问题可以通过保持节点时钟一致来避免。gmetad可以部署在集群中的任意节点上,也可以部署在通过网络连接到集群的独立主机上。它通过与gmond通信的方式采集

区域内节点的状态信息,并以XML数据的形式保存在数据库中。数据通过RRDTool工具进行处理,生成相应的图形展示,以Web的形式直观的提供给客户端。这个问题可以通过保持节点时钟一致来避免。gmetad可以部署在集群中的任意节点上,也可以部署在通过网络连接到集群的独立主机上。它通过与gmond通信的方式采集

区域内节点的状态信息,并以XML数据的形式保存在数据库中。数据通过RRDTool工具进行处理,生成相应的图形展示,以Web的形式直观的提供给客户端。

  扎比克斯

  Zabbix是一个企业级开源解决方案,提供基于WEB界面的分布式和网络监控功能。Zabbix可以监控各种网络参数,确保安全运行;并提供软通知机制,快速定位/解决各种问题。zabbix由2部分组成,zabbix server和可选组件zabbix agent。zabbix server可以通过zabbix agent、端口监控等方式提供对远程服务器/网络状态的监控,可以运行在Linux、Solaris、HP-UX、AIX、Free BSD、Open BSD、OS X等平台上。需要在被监控的目标服务器上安装zabbix agent。主要完成硬件信息或相关内存、CPU等信息的采集

。zabbix agent 可以运行在 ,, , , Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统。zabbix server可以单独监控远程服务器的服务状态;同时也可以配合zabbix agent轮询zabbix agent主动接收监控数据(trapping方式),也可以被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP(v1,v2),可以和SNMP结合使用(eg:net-snmp)。

  动物园管理员

  ZooKeeper 是 Hadoop 的官方子项目。它是*敏*感*词*分布式系统的可靠协调系统。它提供的功能包括:配置维护、名称服务、分布式同步、群组服务等。ZooKeeper的目标是封装复杂且容易出错的关键服务,为用户提供简单易用的接口和系统具有高性能和稳定的功能。

  它是一个开源分布式服务,提供分布式协作、分布式同步、配置管理等功能。其功能与谷歌基本相同。zookeeper官网写了一篇很经典的概述文章,请参考:

  MapReduce

  MapReduce 是一种用于对*敏*感*词*数据集(大于 1TB)进行并行操作的编程模型。“Map”和“Reduce”的概念及其主要思想是从函数式编程语言中借用的,具有从矢量编程语言中借用的特性。它极大地方便了程序员在没有分布式并行编程的情况下在网络上运行他们的程序。目前的实现是指定一个Map(映射)函数将一组键值对映射成一组新的键值对,并指定一个并发的Reduce(化简)函数来保证所有映射的键值对每个共享同一组密钥。

  蜂巢

  Hive是一个基于Hadoop的工具,可以将结构化数据文件映射成数据库表,并提供完整的SQL查询功能,可以将SQL语句转换成MapReduce任务执行。其优点是学习成本低,通过类SQL语句即可快速实现简单的MapReduce统计,无需开发专门的MapReduce应用,非常适用于数据仓库的统计分析。另一个是Windows。

  数据库

  HBase 是一个分布式的、面向列的开源数据库,基于 Chang 等人的 Google 论文“Bigtable: A Structured Data Library”。正如Bigtable利用了Google文件系统(File System)提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase 是 Apache 的 Hadoop 项目的一个子项目。HBase不同于一般的关系型数据库,它是一种适合非结构化数据存储的数据库。另一个区别是 HBase 的基于列的模式而不是基于行的模式。

  mahout Mahout是Apache软件基金会(ASF)旗下的开源项目,提供机器学习领域经典算法的一些可扩展实现,旨在帮助开发者更方便快捷地创建智能应用。Apache Mahout 项目已进入第三个年头,目前有三个公开版本。Mahout 收录

许多实现,包括聚类、分类、推荐过滤和频繁子项挖掘。此外,可以使用 Apache Hadoop 库将 Mahout 有效地扩展到云中。Mahout 的创始人 Grant Ingersoll 介绍了机器学习的基本概念,并演示了如何使用 Mahout 对文档进行聚类、推荐和组织内容。

  勺子

  Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

  chukwa

  Apache的开源项目hadoop作为分布式存储和计算系统,在业界得到了广泛的应用。许多大型企业都有自己的基于 hadoop 的应用程序和相关扩展。当超过1000+节点的Hadoop集群变得普遍时,如何采集

和分析集群本身的相关信息?针对这个问题,Apache也提出了相应的解决方案,那就是chukwa。

  概述

  Chukwa 的官网是这样描述自己的:Chukwa 是一个用于监控大型分布式系统的开源数据采集

系统。它建立在Hadoop的HDFS和map/reduce框架之上,继承了Hadoop的可扩展性和健壮性。Chukwa 还包括一个强大而灵活的工具集,用于显示、监控和分析采集

到的数据。

  在某些网站上,甚至声称 chukwa 是“用于日志处理/分析的全栈解决方案”。

  说了这么多,你心动了吗?

  我们先来看看chukwa长什么样:

  chukwa 不是什么

  1. Chukwa 不是一个独立的系统。单节点部署一个chukwa系统基本没用。Chukwa是一个基于hadoop构建的分布式日志处理系统。也就是说,在搭建chukwa环境之前,需要搭建一个hadoop环境,然后在hadoop的基础上搭建chukwa环境,这个关系从后面的chukwa架构图中也可以看出来。这也是因为chukwa的假设是要处理的数据量在T级别。

  2. Chukwa 不是实时错误监控系统。在解决这个问题上,ganglia、nagios等系统都做得很好。这些系统对数据的敏感度可以达到秒级。Chukwa对分钟级别的数据进行分析是的,它认为集群的整体cpu使用率等数据如果延迟几分钟不是问题。

  3. Chukwa 不是一个封闭的系统。Chukwa虽然自带了很多针对Hadoop集群的分析项目,但这并不意味着它只能对Hadoop进行监控和分析。Chukwa提供了对大量日志数据的采集、存储、分析和展示的一整套解决方案和框架,Chukwa在该类数据生命周期的各个阶段都提供了近乎完美的解决方案,这一点从它的架构也可以看出。

  什么是chukwa

  上一节说了很多关于 chukwa 不是什么。我们来看看chukwa是专门针对什么系统的。

  具体来说,chukwa 正致力于以下领域:

  1、一般情况下,chukwa可以用来监控*敏*感*词*(超过2000+节点,每天产生的数据量在T级)hadoop集群的整体运行情况,并分析其日志

  2、对于集群用户:chukwa 显示他们的作业运行了多长时间,占用了多少资源,还有多少资源可用,作业失败的原因,读写操作出现问题的节点。

  3、对于集群的运维工程师:chukwa展示了集群的硬件错误,集群的性能变化,集群的资源瓶颈在哪里。

  4、对于集群管理者:chukwa展示了集群的资源消耗和集群整体的作业执行情况,可以用来辅助预算和集群资源协调。

  5. 面向集群开发者:chukwa展示了集群中主要的性能瓶颈和频繁出错的地方,让他们可以专注于解决重要的问题。

  基本结构

  有了感性的认识之后,我们再来看看它的结构。chukwa 的整体结构如下所示:

  主要组成部分是:

  

" />

  1.agents:负责采集最原创

的数据,并发送给采集器

  2.adaptor:直接采集数据的接口和工具,一个agent可以管理多个adapter的数据采集

  3、采集

器负责采集

代理发送的数据,并定时写入集群

  4. Map/reduce作业定时启动,负责集群中数据的分类、排序、去重和合并

  5. HICC负责数据的展示

  相关设计

  适配器和代理

  在每次数据生成结束时(基本上是在集群中的每个节点上),chukwa 会使用一个代理来采集

它感兴趣的数据,而每一类数据都是通过一个适配器来实现的,数据的类型(DataType?)在相应的配置中指定。chukwa默认为以下常用数据源提供了相应的适配器:命令行输出、日志文件、httpSender等,这些适配器会周期性运行(比如每分钟读取一次df的结果)或者事件驱动驱动执行(对于例如,内核打印错误日志)。如果这些适配器不够用,用户也可以轻松实现一个适配器来满足他们的需求。

  为了防止数据采集端的agent失效,Chukwa的agent采用了所谓的“watchdog”机制,会自动重启终止的数据采集进程,防止原创

数据丢失。

  另一方面,对于重复采集的数据,在chukwa的数据处理过程中会自动去重。这样就可以针对关键数据在多台机器上部署同一个agent,从而实现容错。

  采集器

  代理采集

的数据存储在 hadoop 集群中。hadoop集群擅长处理少量的大文件,但是处理大量的小文件并不是它的强项。鉴于此,chukwa设计了collector这个角色,将采集

到的数据先进行部分合并,再写入集群,防止大量小文件的写入。

  另一方面,为了防止采集

器成为性能瓶颈或单点故障,chukwa 允许并鼓励设置多个采集

器。代理从采集

器列表中随机选择一个采集

器来传输数据。如果采集

器发生故障或忙碌,它将被替换。采集器

。这样就可以实现负载均衡。实践证明,多个采集器的负载几乎是平均的。

  多路分解和存档

  放置在集群上的数据通过 map/reduce 作业进行分析。在 map/reduce 阶段,chukwa 提供了两种内置的作业类型:demux 和 archive 任​​务。

  demux 作业负责对数据进行分类、排序和去重。在代理部分,我们提到了数据类型(DataType?)的概念。集群中采集

器写入的数据有自己的类型。demux作业在执行过程中,通过配置文件中指定的数据类型和数据处理类,进行相应的数据分析工作。一般是对非结构化数据进行结构化处理,提取抽取中的数据属性。由于demux的本质是一个map/reduce作业,所以我们可以根据自己的需要制定自己的demux作业,进行各种复杂的逻辑分析。chukwa提供的demux接口可以很方便的用java语言进行扩展。

  归档作业负责合并相同类型的数据文件。一方面,它保证了同一类型的数据放在一起,以便进一步分析。另一方面减少了文件数量,减轻了hadoop集群的存储压力。

  数据库管理员

  虽然放在集群上的数据可以满足长期数据存储和*敏*感*词*计算的需求,但展示起来并不容易。为此,chukwa做了两方面的努力:

  1、使用MDL语言将集群上的数据提取到mysql数据库中。对于过去一周的数据,它是完整保存的。对于超过一周的数据,按照距离数据的时间长短进行稀释。数据距离现在越长,保存的数据时间间隔越长。使用mysql作为数据源来展示数据。

  2.使用hbase或类似技术将索引数据直接存储在集群上

  直到chukwa 0.4.0版本,chukwa使用的是第一种方式,但是第二种方式更加优雅方便。

  打嗝

  hicc 是 chukwa 数据展示端的名称。在展示方面,chukwa提供了一些默认的数据展示小部件,可以展示“列表”、“曲线图”、“多曲线图”、“条形图”和“面积图”中的一种或多种数据,给用户一个直观的数据趋势展示。而且在hicc显示端,对不断产生的新数据和历史数据采用robin策略,防止数据的不断增长增加服务器的压力,控制数据在时间上的“稀释”轴可提供长期数据显示

  hicc本质上是jetty实现的web服务器,内部使用了jsp技术和javascript技术。需要展示的各种数据类型和页面布局可以通过简单的拖拽实现,比较复杂的可以用sql语言组合各种需要的数据。如果这样还是不能满足需求,不要怕,手动修改它的jsp代码即可。

  其他数据接口

  如果有新的原创

数据需求,用户也可以直接通过map/reduce jobs或者pig language访问集群上的原创

数据,生成需要的结果。Chukwa 还提供了命令行界面,可以直接访问集群上的数据。

  默认数据支持

  对于集群中各节点的cpu使用率、内存使用率、硬盘使用率、集群整体平均cpu使用率、集群整体内存使用率、集群存储使用率作为一个整体,集群文件个数的变化,作业个数的变化等 hadoop 相关数据,chukwa内置支持从采集到展示的一整套流程,只需要几个就可以使用配置。可以说是相当方便了。

  可以看出,chukwa提供了从数据生成、采集、存储、分析到展示的全生命周期全面支持。

  乌兹

  Hadoop中执行的任务有时需要将多个Map/Reduce作业连接在一起,这样才能达到目的。[1] 在 Hadoop 生态系统中,有一个相对较新的组件称为 Oozie[2],它允许我们将多个 Map/Reduce 作业组合成一个逻辑工作单元来完成更大的任务。在本文中,我们将向您介绍 Oozie 及其使用方法。

  Oozie 是一个 Java Web 应用程序,它在 Java servlet 容器(即 Tomcat)中运行,并使用数据库来存储以下内容:

  Oozie工作流是放置在控制依赖DAG(Directed Acyclic Graph)中的一组动作(例如Hadoop的Map/Reduce作业、Pig作业等),它指定了动作执行的顺序。我们将使用 hPDL(一种 XML 流程定义语言)来描述此图。

  hPDL 是一种非常简洁的语言,只使用了很少的流程控制和动作节点。控制节点定义了执行流程,包括工作流的起点和终点(开始、结束和失败节点)以及控制工作流执行路径的机制(决策、分叉和加入节点)。动作节点是工作流触发计算或处理任务执行的机制。Oozie 支持以下类型的操作:Hadoop map-reduce、Hadoop 文件系统、Pig、Java 和 Oozie 子工作流(SSH 操作已从 Oozie 模式 0.2 中删除)。

  由动作节点触发的所有计算和处理任务都不在 Oozie 中——它们是由 Hadoop 的 Map/Reduce 框架执行的。这种方法允许 Oozie 支持现有的 Hadoop 机制以实现负载平衡和灾难恢复。这些任务大多是异步执行的(文件系统操作除外,它们是同步处理的)。这意味着对于大多数由工作流动作触发的计算或处理任务,在工作流动作转移到工作流中的下一个节点之前需要等待,直到计算或处理任务完成。Oozie 可以通过两种不同的方式检测计算或处理任务的完成,即回调和轮询。当Oozie开始一个计算或处理任务时,它会为该任务提供一个唯一的回调URL,然后任务在完成时向指定的 URL 发送通知。在任务无法触发回调 URL 的情况下(可能是任何原因,比如网络中断),或者任务类型在完成时无法触发回调 URL 时,Oozie 有一种机制可以进行计算或处理tasks 轮询,从而确保任务可以完成。

  Oozie 工作流可以参数化(在工作流定义中使用 ${inputDir} 等变量)。提交工作流操作时,我们必须提供参数值。如果正确参数化(例如,使用不同的输出目录),同一工作流的多个操作可以同时运行。

  一些工作流是按需触发的,但大多数时候需要根据特定时间段和/或数据可用性和/或外部事件来运行它们。Oozie Coordinator 系统允许用户根据这些参数定义工作流执行计划。Oozie 协调器允许我们将工作流执行触发器建模为谓词,它可以指向数据、事件和/或外部事件。当谓词得到满足时,工作流作业就开始了。

  通常我们还需要连接定期但以不同时间间隔运行的工作流操作。多个后续运行的工作流的输出成为下一个工作流的输入。将这些工作流链接在一起允许系统将其引用为数据应用程序的管道。Oozie 协调器支持创建此类数据应用程序管道。

  NoSQL 数据库

  

" />

  尽管 SQL 数据库是一种非常有用的工具,但在统治了 15 年之后,这种垄断即将被打破。这只是时间问题:您被迫使用关系数据库却发现它不符合您的需求的案例数不胜数。

  但是数据库之间的差异远远超过了两个SQL数据库之间的差异。这意味着软件架构师应该在项目之初就选择合适的NoSQL数据库。对于这种情况,这里是 、 、 、 、 和 的比较:

  (编者注1:NoSQL:是一场全新的数据库革命运动。NoSQL的支持者提倡使用非关系型数据存储。当今的计算机体系结构在数据存储上需要巨大的水平可扩展性,而NoSQL致力于改变这种状况。目前,谷歌的 BigTable 和亚马逊的 Dynamo 使用 NoSQL 类型的数据库。见。)

  1.数据库

  最佳应用场景:适用于数据变化较少、执行预定义查询、数据统计的应用。适用于需要数据版本控制支持的应用程序。

  例如:CRM、CMS系统。master-master 复制对于多站点部署非常有用。

  (编者注2:master-master replication:是一种数据库同步方式,允许一组计算机之间共享数据,组内的任何成员都可以进行数据更新。)

  2. 雷迪斯

  最佳应用场景:适用于数据变化快,满足数据库大小(适合内存容量)的应用。

  例如:股价、数据分析、实时数据采集、实时通讯。

  (编者注3:Master-slave replication:如果只有一台服务器同时处理所有的复制请求,这称为Master-slave replication,通常应用于需要提供高可用性的服务器集群。)

  3. MongoDB

  最佳应用场景:适用于需要动态查询支持的应用;需要使用索引而不是 map/reduce 函数;需要对大型数据库有性能需求;需要使用CouchDB,但是因为数据变化太频繁而占用内存。

  例如:您打算使用 MySQL 或 PostgreSQL,但由于它们附带的预定义列而灰心丧气。

  4. 里亚克

  最佳用例:对于那些想要使用类 Cassandra(类 Dynamo)数据库但无法处理膨胀和复杂性的人。适用于你打算做多站点复制,但又需要单站点的可扩展性、可用性和错误处理能力的情况。

  例如:销售数据采集、工厂控制系统;对停机时间的严格要求;可以用作易于更新的网络服务器。

  5.记忆库

  最佳应用场景:适用于需要低延迟数据访问、高并发支持、高可用的应用

  例如:广告类应用等低延迟数据访问,网络游戏等高并发网络应用(如Zynga)

  6.Neo4j

  最佳应用场景:适用于图形等数据。这是 Neo4j 和其他 nosql 数据库最显着的区别

  例如:社会关系、公共交通网络、地图和网络拓扑

  7.卡桑德拉

  最佳用例:写入次数多于读取次数(日志记录)并且每个系统组件都必须用 Java 编写(没有人会因为选择 Apache 的软件而被解雇)

  比如:银行、金融(虽然不是金融交易必须的,但这些行业对数据库的要求会比他们更大)写比读快,所以一个天然的特点就是实时数据分析

  8. 数据库

  (与 ghshephard 一起使用)

  最佳应用场景:适合比较喜欢BigTable :),需要随机、实时访问大数据的场合。

  示例:Facebook 消息数据库(更多通用用例即将推出)

  编者按4:Thrift是一种接口定义语言,为许多其他语言提供定义和创建服务。

  当然,所有系统都不仅仅具有上面列出的特征。这里我只是根据自己的观点列出一些重要的特性。同时,技术进步很快,所以以上内容肯定需要不断更新。我会尽力更新此列表。

  Membase Membase 是 NoSQL 家族的重量级新成员。Membase是一个开源项目,源代码采用Apache2.0的许可。该项目托管在 GitHub.Source tarballs 上,Linux 二进制包的 beta 版本目前可供下载。该产品主要由 North Scale 的 memcached 核心团队成员开发,其中包括来自两个主要贡献者 Zynga 和 NHN 的工程师,这两家公司都是在线游戏和社区的大型提供商。Membase 易于安装和操作,可以很容易地从单个节点扩展。它还实现了memcached的功能(wire协议的兼容性),在应用方面为开发者和运维者提供了一个相对较低的门槛。作为缓存解决方案,Memcached已经广泛应用于不同类型的领域(尤其是大容量的Web应用),Memcached的部分基础代码直接应用于Membase服务器的前端。通过兼容多种编程语言和语言,Membase具有良好的复用性。在安装和配置方面,Membase 提供了一个有效的图形界面,包括可配置的报警信息。Membase的目标是提供外部线性扩展能力,包括为了增加集群容量,可以复制为了统一。此外,数据的重新分配仍然是必要的。在这方面,一个有趣的属性是可预测性能、类精确延迟和 NoSQL 解决方案的承诺。

  MongoDB MongoDB 是介于关系数据库和非关系数据库之间的产物。它是非关系数据库中功能最强的,与关系数据库最相似。支持的很松散,是类似于json的bjson格式,所以可以存储比较复杂的。Mongo最大的特点就是它支持的查询语言非常强大。它的语法有点类似于查询语言。它几乎可以实现类似于关系数据库单表查询的大部分功能,并且还支持对数据建立索引。其特点是高性能、易部署、易使用,存储数据非常方便。主要特点:

  ◆ 面向集合的存储,对象类型的数据是“面向集合的”,意思是将数据分组存储在数据集中,称为集合(采集

)。每个集合在数据库中都有一个唯一的标识名称,并且可以收录

无限数量的文档。集合的概念类似于(RDBMS)中的表(table),不同的是它不需要定义任何模式(schema)。

  ◆ Schema Free Schema-free是指我们不需要知道mongodb数据库中文件的任何结构定义。如果需要,您可以将具有不同结构的文件存储在同一个数据库中。

  ◆支持动态查询 ◆支持全索引,包括内部对象 ◆支持查询 ◆支持复制和故障恢复 ◆使用高效的二进制数据存储,包括大对象(如视频等) ◆自动处理分片以支持层次扩展 ◆支持RUBY ,PYTHON,JAVA,C++,PHP等语言 ◆文件存储格式为BSON(JSON的扩展)BSON(Binary Serialized document Format)存储格式是指:集合中存储的文档以keys-形式存储值对。key用于唯一标识一个文档,是string类型,value可以是各种复杂的文件类型。◆可通过网络访问MongoDB服务器。它可以运行在 Linux、Windows 或 OS X 平台上,并支持 32 位和 64 位应用程序。默认端口为 27017。建议在 64 位平台上运行,因为 MongoDB 在 32 位模式下运行时支持最大文件大小为 2GB。MongoDB将其放在文件中(默认路径:/data/db)并进行管理,以提高效率。

  Hypertable Hypertable 是一个开源、高性能、可扩展的数据库,它遵循类似于 Google 的 Bigtable 的模型。在过去的几年中,谷歌为在 PC 集群上运行的可扩展计算基础架构设计并构建了三个关键部分。基础设施的第一个关键部分是 Google 文件系统 (GFS),这是一个提供全局命名空间的高可用性文件系统。它通过跨机器(和跨机架)复制文件数据来实现高可用性,因此可以免疫许多传统文件存储系统无法避免的故障,例如电源、内存等故障。第二个基础设施是一个名为 Map-Reduce 的计算框架,它与 GFS 紧密合作,帮助处理采集

到的海量数据。第三个基础设施是 Bigtable,它是 . Bigtable允许您通过一些主键来组织海量数据并实现高效查询。Hypertable 是 Bigtable 的开源实现,根据我们的想法进行了一些改进。Apache Cassandra Apache Cassandra 是一套开源的分布式 Key-Value。它最初是由 Facebook 开发的,用于存储特别大的数据。Facebook 目前使用这个系统。主要特点: ◆分布式 ◆基于列的结构 ◆高可扩展性 Cassandra的主要特点是它不是数据库,而是由一堆数据库节点组成的分布式网络服务。一个对Cassandra的写操作会被复制到其他节点,对Cassandra的读操作也会在某个节点上被读取。Hypertable 是 Bigtable 的开源实现,根据我们的想法进行了一些改进。Apache Cassandra Apache Cassandra 是一套开源的分布式 Key-Value。它最初是由 Facebook 开发的,用于存储特别大的数据。Facebook 目前使用这个系统。主要特点: ◆分布式 ◆基于列的结构 ◆高可扩展性 Cassandra的主要特点是它不是数据库,而是由一堆数据库节点组成的分布式网络服务。一个对Cassandra的写操作会被复制到其他节点,对Cassandra的读操作也会在某个节点上被读取。Hypertable 是 Bigtable 的开源实现,根据我们的想法进行了一些改进。Apache Cassandra Apache Cassandra 是一套开源的分布式 Key-Value。它最初是由 Facebook 开发的,用于存储特别大的数据。Facebook 目前使用该系统。主要特点: ◆分布式 ◆基于列的结构 ◆高可扩展性 Cassandra的主要特点是它不是数据库,而是由一堆数据库节点组成的分布式网络服务。一个对Cassandra的写操作会被复制到其他节点,对Cassandra的读操作也会在某个节点上被读取。它最初是由 Facebook 开发的,用于存储特别大的数据。Facebook 目前使用这个系统。主要特点: ◆分布式 ◆基于列的结构 ◆高可扩展性 Cassandra的主要特点是它不是数据库,而是由一堆数据库节点组成的分布式网络服务。一个对Cassandra的写操作会被复制到其他节点,对Cassandra的读操作也会在某个节点上被读取。它最初是由 Facebook 开发的,用于存储特别大的数据。Facebook 目前使用该系统。主要特点: ◆分布式 ◆基于列的结构 ◆高可扩展性 Cassandra的主要特点是它不是数据库,而是由一堆数据库节点组成的分布式网络服务。一个对Cassandra的写操作会被复制到其他节点,对Cassandra的读操作也会在某个节点上被读取。

  对于Cassandra集群来说,扩展性能比较简单,添加到集群中即可。Cassandra 是一个混合非关系数据库,类似于谷歌的 BigTable。其主要功能比Dynomite(分布式Key-Value存储系统)更丰富,但支持不如文档存储MongoDB(介于关系型数据库和非关系型数据库之间的开源产品,功能最多在非关系数据库中最全面)。就像关系数据库一样。支持的数据结构非常松散,都是类似json的bjson格式,所以可以存储更复杂的数据类型。)Cassandra最初是由Facebook开发的,后来改造成了。它是社交网络的理想数据库。基于亚马逊专有的完全分布式 Dynamo,结合Google BigTable的基于列族(Column Family)的数据模型。P2P去中心化存储。它在很多方面都可以称为 Dynamo 2.0。与其他数据库相比,它的突出特点是: ◆ 模式灵活性:有了Cassandra,就像文档存储一样,你不必预先解析记录中的字段。您可以在系统运行时随意添加或删除字段。这是一个惊人的效率提升,尤其是在大型部署中。◆ 真正的可扩展性:Cassandra 是一种纯粹的横向扩展。不必提前解析记录中的字段。您可以在系统运行时随意添加或删除字段。这是一个惊人的效率提升,尤其是在大型部署中。◆ 真正的可扩展性:Cassandra 是一种纯粹的横向扩展。不必提前解析记录中的字段。您可以在系统运行时随意添加或删除字段。这是一个惊人的效率提升,尤其是在大型部署中。◆ 真正的可扩展性:Cassandra 是一种纯粹的横向扩展。

  要向集群添加更多容量,可以将其指向另一台计算机。您不必重新启动任何进程、更改应用程序查询或手动迁移任何数据。◆ 多数据中心识别:您可以调整您的节点布局,避免某个数据中心发生火灾,备用数据中心将至少拥有每条记录的完整副本。◆ 范围查询:如果不喜欢全键值查询,可以设置键的范围进行查询。◆ 列表数据结构:在混合模式下,可以添加超列到5个维度。这对于每用户索引非常方便。◆ 分布式写操作:任何数据都可以随时随地读写。而且不会有任何单点故障。

  解决方案:准确捕捉显卡延迟!NVIDIA推FACT工具

  3月29日,泡泡网显卡频道关于Fraps实测显卡延迟的讨论越来越多。Anandtech和AMD从Fraps软件的工作原理上解释说,其测得的延迟是不真实的。之前参与过这个讨论的人也发表了新的评论或文章来进一步探讨这个问题。

  *敏*感*词*er早前提出了一种新的方法,就是用高速视频采集卡采集显卡输出的视频,然后用软件分析延迟和帧率。现在这个想法也从探索阶段变成了现实。评测中专门介绍了他们最新的这套系统及其实测结果。

  英伟达也做出了回应。他们在官方Blog中公布了自己开发的工具——FACT,全称是Frame Capture Analysis Tools,是一款帧捕捉分析工具,由一套视频采集卡、专用分析软件和脚本组成。, 通过它可以分析采集

到的数据。

  

" />

  NVIDIA开放了这个系统。作为帧延迟问题的最早提出者,Techreport网站也使用了NVIDIA的FACT系统进行了新的评测。其实P*敏*感*词*er系统并不是他们自己提出来的,实际使用也是NVIDIA的FACT。系统。

  现在事情有意思了,Anandtech和AMD的看法差不多,因为Fraps过早介入渲染过程,其测试结果不一定可靠,但他们的问题是:虽然他们解释了Fraps不可靠的原因,但他们没有解释一下为什么在同样的软件下,Fraps记录的N卡性能还是比A卡好,AMD也没有提出自己的测试系统或方法。Anandtech表示将会有新的测试方法,但目前还没有完善。正式宣布。

  NVIDIA、*敏*感*词*er 和 Techreport 是参与方之一。他们使用一套高速视频采集卡采集显卡输出的数据,并使用专门的软件和脚本分析延迟和卡顿。这个系统现在看来没有什么漏洞,因为它直接提取的是显卡的输出,避免了软件瓶颈。

  详细测试分析需要时间翻译。小编选择了这两个测试项目都有的老炮5来做一个简单的说明。

  

" />

  TR的数据表比较好理解,从中可以知道两点:第一,FACT视频采集系统测得的延迟确实低于fraps记录的,可见AMD对fraps原理的质疑是对的,它捕获到的到达延迟数据确实比它应该的要高。

  *敏*感*词*er的延迟曲线相似,HD 7970 CF的波动大于GTX 680 SLI,单卡方面,HD 7970在这两个测试中都优于GTX 680。

  现在来看,这两次争论其实没有绝对的区别。AMD表示fraps不靠谱,已经验证过了,但是AMD还是摆脱不了自家显卡的帧延迟,尤其是多卡系统的帧延迟不够好。受到质疑,幸运的是,他们没有避讳疾病、逃避治疗。他们之前已经承认了这个问题。从这几个版本的驱动来看,还在不断完善中。■

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线