《数据科学家修炼之道》一2.2 新规则

  1. 云栖社区>
  2. 博客>
  3. 正文

《数据科学家修炼之道》一2.2 新规则

异步社区 2017-05-02 14:50:00 浏览759
展开阅读全文

本节书摘来异步社区《数据科学家修炼之道》一书中的第2章,第2.2节,作者: 【美】Zacharias Voulgaris(弗格里斯)译者: 吴文磊 , 田原 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 新规则

数据科学带来了许多新规则的繁荣,这些新规则由一些很棒的工具组成,主要有如下几种。

  • MapReduce是一个并行、分布式的算法,用来把负责的任务分割成一系列简化的任务,之后用一种非常有效率的手段解决它们,基于此可以增加处理复杂任务的性能以及降低计算资源的成本。尽管这个算法之前就存在,但它在数据科学中的广泛应用仍增加了它的知名度。
  • Hadoop分布式文件系统(HDFS)是一个旨在充分利用并行计算技术的开源平台,它基本上是通过把大数据分拆成小块然后分发给在网络上计算机来实现管理。
  • 高级文本分析常常是指自然语言处理(NLP),这是一个数据信息领域,包含许多从非结构化文本数据提取有效信息和商业智能的技术。在数据科学之前,这个领域并不存在。
  • 大规模数据程序语言(例如Pig、R、ECL等)是可以有效地处理大数据集的编程语言。它们在数据科学出现前处于开发状态或完全不存在。
  • 替代性的数据库结构(例如,Hbase、Cassandra、MongoDB,等等)是一些用并行计算技术来处理大数据的归档、查询以及编辑的数据库。

你可能对在现代Windows操作系统内使用的新技术文件系统(New Technology File System,NTFS)有所了解,这是一个在大多数个人电脑上不太出问题的文件系统,相当令人满意。但它对于在互联的计算机网络内处理大量数据并不适用。另外,NTFS有一个256 TB的文件大小限制,而这对于许多大数据应用来说是远远不够的。基于UNIX的文件系统面临类似的挑战,而这也是为什么当Hadoop被开发出来之后,必须创建一个新的文件系统的原因,一个适用于计算机集群的文件系统。HDFS允许用户去浏览计算机集群上的所有文件而且可以运行一些基本的操作就像在一台独立的计算机上操作一样(尽管大多数文件可能是散布在整个网络上的)。

Hadoop的灵魂是MapReduce,这是一个使计算机网络可以用低风险来高效分拆数据的规则。所有的数据都会被复制,以预防集群内的计算机(通常称为节点)发生崩溃。还有一些用来负责任务的时序安排和管理数据流的管理节点。首先,所有数据会通过一组称为Mapper(映射器)的集群节点执行映射操作。一旦执行结束,另一组节点会接受归约(Reduce)任务,当之前处理过的数据处理成有用的输出,这一组节点称为Reducer(归约器),也可能任务最后还会经过Mapper。所有的事情都是通过管理节点来协调的,管理节点可以保证所有阶段的输出在集群上都是被安全存储的(以多个副本的形式)。一旦整个处理流程结束,用户就会得到最后的输出结果。MapReduce规则包含了许多相当单调的程序。它的巨大优势在于它能确保该流程会完成地比较快,而且高效地利用所有可用资源,同时降低因为硬件故障而导致数据丢失的风险(这对于大型集群来说非常常见)。

文本分析已经存在一段时间了,但数据科学引入了一些高级的技术使得之前的技术显得相形见绌。现代(高级)文本分析使用户可以处理大量的文本数据,在允许诸如拼写错误、句内的多词分割以及其他问题的前提下,能够精确快速地找到文本模式。高级文本分析能够在社交媒体的帖子上确定情绪表达,识别出是否某人的评论是直述或是嘲讽,而这些在没有利用这些高级文本分析方法前对于机器来说是极难处理的,这种进步使通过在Hadoop环境内部署人工智能算法应用成为可能。

大规模数据程序语言,例如Pig、R和ECL的开发就是为了解决大数据问题,同时它们与Hadoop环境可以很好地融合(事实上,Pig就是Hadoop生态系统的一环)。R在大数据出现前就存在,经历了一系列大的改变,现在可以与Hadoop连接,同时可以处理HDFS里的文件。由于编程语言在现代并不是非常难于开发,很有可能在您读这本书的时候,这个行列里又会出现新的编程语言,所以把眼睛睁大总没有什么坏处。到这个10年结束的时候,很可能现有的这些语言并不会成为数据科学家的首选语言(尽管另一种可能是R语言仍会广泛流传,基于现在它有非常巨大的用户群)。

多亏了数据科学,新的替代性数据库结构才会到来。这些结构包括哈希表(例如,JBoss数据网格、Riak),B-树(例如,MongoDB、CouchDB),以及日志结构的合并树(例如,HBase、Cassandra)。不同于传统的数据库,这些模式类型旨在服务于大数据,因此它们在数据库内读写数据的方式是比较灵活弹性的。每一种类型都有它们适用与不适用的范畴,由于传统数据库在记录超过一定的级别后会崩溃,所以相比于传统数据库,它们要好用一些。举例来说,如果你有一个由上百万行列记录的大型数据库(如大型的数据仓库),要在这样的数据库中找到某一列中的最大值可能会超过很多人愿意等待的时间。同样的查询在列式数据库中(如HBase)用不了1秒。

所有这些规则是基于一组计算机的概念之上的,也就是一个计算机集群,它们的运行远远好于任何一台独立的(甚至是超级的)计算机,只要集群足够大。这种创意是基于智能和定制策略来规划基本的任务,好让它们能够被计算机集群高效地处理,主要是优化处理问题的流程。自从诞生以来,这些新规则的人气不断增加,而且得以迅速的发展进化。有大量的关注度(和钱)投入到这些科技中去。学习他们在不久的将来一定会获得回报。

网友评论

登录后评论
0/500
评论
异步社区
+ 关注