"Big Data" Hadoop, Spark and Storm

Big Data
 
Big data, the official definition refers to those datasets with a particularly large amount of data and a particularly complex data category, which cannot be stored, managed and processed with traditional databases. The main characteristics of big data large amount of data (Volume) , the complex data category (Variety) , the fast data processing speed (Velocity) and the high data authenticity (Veracity) , which are collectively called 4V.
 
The amount of data in big data is very huge, reaching the petabyte level. And this huge data includes not only structured data (such as numbers, symbols, etc.), but also unstructured data (such as text, images, sounds, videos, etc.). This makes the storage, management and processing of big data difficult to use with traditional relational databases. In big data, valuable information is often hidden deep in it. This requires a very fast processing speed of big data, so that valuable information can be obtained from a large amount of complex data in a short period of time. In the large amount of complex data of big data, it usually contains not only real data, but also some false data. This requires the removal of false data in the processing of big data, and the use of real data to analyze and obtain real results.
 
Big Data Analysis
 
Big data, on the surface, is a large amount of complex data. The value of this data itself is not high, but after analyzing and processing these large amounts of complex data, valuable information can be extracted from it. The analysis of big data is mainly divided into five aspects: Visual Analysis (Analytic Visualization) , Data Mining Algorithms (Date Mining Algorithms) , Predictive Analytic Capabilities , Semantic Engines (Semantic Engines) and Data Quality Management ( Data Quality Management) .
 
Visual analysis is a form of big data analysis results that ordinary consumers can often see. For example, the "Baidu Map Spring Festival Population Migration Big Data" produced by Baidu is one of the typical cases. Visual analysis automatically converts a large amount of complex data into intuitive charts, making it easier for ordinary consumers to accept and understand.
 
Data mining algorithm is the theoretical core of big data analysis. Its essence is a set of mathematical formulas defined in advance according to the algorithm, and the collected data is brought into it as a parameter variable, so that valuable data can be extracted from a large amount of complex data. information. The famous "beer and diaper" story is a classic example of a data mining algorithm. Walmart’s analysis of beer and diaper purchase data has uncovered a previously unknown link between the two, which it uses to boost sales. Both Amazon's recommendation engine and Google's advertising system make heavy use of data mining algorithms.
 
预测性分析能力是大数据分析最重要的应用领域。从大量复杂的数据中挖掘出规律,建立起科学的事件模型,通过将新的数据带入模型,就可以预测未来的事件走向。预测性分析能力常常被应用在金融分析和科学研究领域,用于股票预测或气象预测等。
 
语义引擎是机器学习的成果之一。过去,计算机对用户输入内容的理解仅仅停留在字符阶段,不能很好的理解输入内容的意思,因此常常不能准确的了解用户的需求。通过对大量复杂的数据进行分析,让计算机从中自我学习,可以使计算机能够尽量精确的了解用户输入内容的意思,从而把握住用户的需求,提供更好的用户体验。苹果的Siri和谷歌的Google Now都采用了语义引擎。
 
数据质量管理是大数据在企业领域的重要应用。为了保证大数据分析结果的准确性,需要将大数据中不真实的数据剔除掉,保留最准确的数据。这就需要建立有效的数据质量管理系统,分析收集到的大量复杂的数据,挑选出真实有效的数据。
 
分布式计算(Distributed Computing)
 
对于如何处理大数据,计算机科学界有两大方向:第一个方向是集中式计算,就是通过不断增加处理器的数量来增强单个计算机的计算能力,从而提高处理数据的速度。第二个方向是分布式计算,就是把一组计算机通过网络相互连接组成分散系统,然后将需要处理的大量数据分散成多个部分,交由分散系统内的计算机组同时计算,最后将这些计算结果合并得到最终的结果。尽管分散系统内的单个计算机的计算能力不强,但是由于每个计算机只计算一部分数据,而且是多台计算机同时计算,所以就分散系统而言,处理数据的速度会远高于单个计算机。
 
过去,分布式计算理论比较复杂,技术实现比较困难,因此在处理大数据方面,集中式计算一直是主流解决方案。IBM的大型机就是集中式计算的典型硬件,很多银行和政府机构都用它处理大数据。不过, 对于当时的互联网公司来说, IBM的大型机的价格过于昂贵。因此,互联网公司的把研究方向放在了可以使用在廉价计算机上的分布式计算上。
 
服务器集群(Server Cluster)
 
服务器集群是一种提升服务器整体计算能力的解决方案。它是由互相连接在一起的服务器群所组成的一个并行式或分布式系统。服务器集群中的服务器运行同一个计算任务。因此,从外部看,这群服务器表现为一台虚拟的服务器,对外提供统一的服务。
 
尽管单台服务器的运算能力有限,但是将成百上千的服务器组成服务器集群后,整个系统就具备了强大的运算能力,可以支持大数据分析的运算负荷。Google,Amazon,阿里巴巴的计算中心里 的服务器集群都达到了5000台服务器的规模。
 
大数据的技术基础: MapReduce、Google File System和BigTable
 
2003年到2004年间,Google发表了 MapReduce、 GFS(Google File System)和BigTable三篇技术论文,提出了一套全新的分布式计算理论。
 
MapReduce是分布式计算框架,GFS(Google File System) 是分布式文件系统, BigTable是基于 Google File System的 数据存储系统,这三大组件组成了Google的分布式计算模型。
 
Google的分布式计算模型相比于传统的分布式计算模型有三大优势:首先,它简化了传统的分布式计算理论,降低了技术实现的难度,可以进行实际的应用。其次,它可以应用在廉价的计算设备上,只需增加计算设备的数量就可以提升整体的计算能力,应用成本十分低廉。最后,它被Google应用在 Google的计算中心,取得了很好的效果,有了实际应用的证明。
 
后来,各家互联网公司 开始利用Google的分布式计算模型搭建自己的分布式计算系统, Google的这三篇论文也就成为了大数据时代的技术核心
 
主流的三大分布式计算系统: Hadoop,Spark和Storm
 
由于Google没有开源Google分布式计算模型的技术实现,所以其他互联网公司只能根据Google三篇技术论文中的相关原理,搭建自己的分布式计算系统。
 
Yahoo的工程师Doug Cutting和Mike Cafarella在2005年合作开发了分布式计算系统Hadoop。后来,Hadoop被贡献给了Apache基金会,成为了Apache基金会的开源项目。Doug Cutting也成为Apache基金会,主持Hadoop的开发工作。
 
Hadoop采用 MapReduce分布式计算框架,并根据GFS 开发了HDFS分布式文件系统,根据 BigTable开发了HBase数据存储系统。尽管和Google内部使用的分布式计算系统原理相同, 但是Hadoop在运算速度上依然达不到Google论文中的标准。
 
不过,Hadoop的开源特性使其成为分布式计算系统的事实上的国际标准。Yahoo,Facebook,Amazon以及国内的百度,阿里巴巴等众多互联网公司都以Hadoop为基础搭建自己的分布式计算系统。
 
Spark也是Apache基金会的开源项目,它由加州大学伯克利分校的实验室开发,是另外一种重要的分布式计算系统。它在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此Spark可以提供超过Hadoop100倍的运算速度。但是,由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。
 
Storm是Twitter主推的分布式计算系统,它由BackType团队开发,是Apache基金会的孵化项目。它在Hadoop的基础上提供了实时运算的特性,可以实时的处理大数据流。不同于Hadoop和Spark,Storm不进行数据的收集和存储工作,它直接通过网络实时的接受数据并且实时的处理数据,然后直接通过网络实时的传回结果。
 
Hadoop,Spark和Storm 是目前最重要的三大分布式计算系统,Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,而Storm常用于在线的实时的大数据处理。

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326309035&siteId=291194637