【学习】Hadoop、爬虫和Elasticsearch的企业级应用

来源:互联网 发布:蓝月传奇羽毛进阶数据 编辑:程序博客网 时间:2024/06/06 03:25

一、Hadoop生态系统

Hadoop利用大量廉价的计算机,提供了一个可扩展强,可靠性高的机制;并利用廉价的方式来存储大量数据。Hadoop把任务分成任务片,分布在数千台计算机上,从而进行快速分析,并分布式存储大量的数据。Hadoop还提供了新的和改进的分析技术,从而使大量结构化数据的复杂分析变为可能。

Hadoop的数据进行分布式存储;在集群上备份多份数据,从而来提高可靠性和实用性;数据在哪存储就在哪处理,从而消除了带宽瓶颈问题。

 Hadoop的主要特点如下:
(1)存储量大

Hadoop能够使应用程序运行在成千上万的计算机和PB级数据上。那些曾经只能由超级计算机来处理的高性能应用,可以由大量廉价的计算机一起处理。在集群中,数百台“小”的电脑的聚合计算能力,可以超过一台超级计算机的计算能力,并且价格便宜。Hadoop利用超过数千台机器的集群,在企业可以承受的价格范围内,提供了巨大的存储空间和处理能力。

(2)分布式处理与快速的数据访问

Hadoop集群在提供高效数据存储能力的同时,也提供了快速的数据访问能力。在Hadoop出现之前,应用程序很难并行运行在计算机集群之间。这是因为集群模型在创建共享存储数据时,对I/O性能要求很高。用Hadoop来处理数据,减轻了许多高性能的挑战。此外,Hadoop应用程序处理数据通常都是有序进行的,这就避免了随机的数据访问(磁盘寻道操作),进一步减轻了I/O负载。

(3)可靠性,故障转移和可扩展性

在过去,并行应用程序很难解决集群上机器的可靠性问题。虽然单台机器的可靠性相当高,但是随着群集增加,出故障的概率也随之增加。在数千个节点的集群上,这种日常故障经常发生。由于Hadoop有独特的设计和实施方式,相同的故障将会产生相似的结果。从而,Hadoop可以监测到这些故障,并利用不同的节点重新执行任务。此外,Hadoop有很好的可扩展性,实现无缝地将多个服务器整合到一个集群,并利用它们来存储数据、执行程序。

(4)将业务规划和基础设施维护进行了清晰的划分
对于大多数Hadoop用户而言,Hadoop最重要的特征是,将业务规划和基础设施维护进行了清晰的划分。为那些专注于商业业务的用户,隐藏了Hadoop的基础设施的复杂性,并提供了一个易于使用的平台,从而使复杂的分布式计算的问题简单化。


二、网络爬虫Web Crawler

网络爬虫其实是非常重要的一个系统,特别是在今天这个数据为王的时代。如果你是一个刚刚开始的公司或者项目,没有任何原始的数据积累,那么通过爬虫去Internet上找到那些有价值的数据再进行数据的清洗和整理,是一个可以快速得到数据的重要手段。

网络爬虫是搜索引擎所必须的信息采集系统,它即将互联网上的网页或其它信息收集到本地,然后对这些信息创建索引。当用户输入查询请求的时,先对用户的查询请求进行分析,然后在索引库中进行匹配,最后对结果进行处理,返回结果。

网络爬虫不仅是搜索引擎的重要组成部分,在信息采集、舆情分析、情报收集等一些需要进行数据采集的业务系统中也应用广泛。对数据的采集是对大数据进行分析的重要前提条件。

网络爬虫能够做到所见即所得的无阻拦式采集、快速把不规则页面结构化并存储、满足越来越多的数据采集还要在有限时间内采集。


三、实时搜索分析平台Elasticsearch

【简介】

Elasticsearch成立于2012年,以搜索业务起家,现在主打信息搜索与数据分析,更是为大数据挖掘提供了完整的解决方案。

Elasticsearch基于Foursquare、Soundcloud、GitHub等平台的分享点赞信息,打造了开源搜索分析引擎。目前主要有ELK组合:Elasticsearch(搜索)、Logstash(大数据搜集)、Kibana(数据流实时分析)三个核心产品,日前已达到800万下载量。其中Kibana服务能够基于时间段进行对比,从而对大量数据达到较好的透析结果。


Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

Elasticsearch不但包括了全文搜索功能,还可以进行以下工作:
(1)分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
(2)实时分析的分布式搜索引擎。
(3)可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。
简言之,Elasticsearch能够提供简单易用的方式帮助企业从大型数据库中快速提取有效信息进行分析,这种实时搜索、分析的服务将为企业提供及时有效的信息。


Elasticsearch的上手是非常简单的。它附带了很多非常合理的默认值,这让初学者很好地避免一上手就要面对复杂的理论,
它安装好了就可以使用了,用很小的学习成本就可以变得很有生产力。


【企业级应用案例】

1、Github

“Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码”,Github在2013年1月升级了他们的代码搜索,由solr转为elasticsearch,目前集群规模为26个索引存储节点和8个客户端节点(负责处理搜索请求)

2、Mozilla
Mozilla公司以火狐著名,它目前使用 WarOnOrange 这个项目来进行单元或功能测试,测试的结果以 json的方式索引到elasticsearch中,开发人员可以非常方便的查询。

Socorro是Mozilla 公司的程序崩溃报告系统,一有错误信息就插入到 Hbase和Postgres 中,然后从 Hbase中读取数据索引到elasticsearch中,方便查找。

3、Sony
Sony公司使用elasticsearch 作为信息搜索引擎

4、Infochimps
“在 Infochimps,我们已经索引了25亿文档,占 4TB的空间”。它是一家位于德克萨斯州奥斯丁的创业公司,为大数据平台提供商,主要提供基于hadoop的大数据处理方案。


四、Restful接口

大数据唯有通过应用投射给用户才有用,对于架构师而言,设计大数据应用的关键问题是用面向对象架构(SOA)还是RESTful API将大数据组件及服务与应用其他部分连接。
Rest和非rest的主要区别看来就是Restful的架构风格明确的把资源和行为分开表述了,而不是像传统的那样竟然把资源和行为耦合在一起以Url的形式表述

随着云计算和移动计算的兴起,许多企业愿意在互联网上共享自己的数据、功能;另一方面,在企业中,RESTful API(也称RESTful Web服务)也逐渐超越SOAP成为实现SOA的重要手段之一。

这个API应该是对浏览器友好的,能够很好地融入Web,而不是与Web格格不入。

浏览器是最常见和最通用的REST客户端。好的RESTful API应该能够使用浏览器+HTML完成所有的测试(不需要使用编程语言)。

当设计面向互联网的API时,松耦合变成了一种“必须有”的强需求。紧耦合的API非常脆弱,一旦公布出去,服务器端和客户端都无法持续进化。尤其是服务器端,公布出去的接口根本不敢改,改了之后,几乎所有客户端应用立即无法正常工作

在RESTful API中,对于资源的操作,是通过在服务器端-客户端之间传递资源的表述来间接完成的。



0 0
原创粉丝点击