Hadoop概念了解及展望

来源:互联网 发布:设备动静密封点数据 编辑:程序博客网 时间:2024/06/08 04:02

Hadoop介绍

Hadoop是Google的集群系统的开源实现

  • Google集群系统:GFS(Google File System)、MapReduce、BigTable
  • Hadoop主要由HDFS(Hadoop Distributed File System 即Hadoop分布式文件系统,对GFS的实现)、MapReduce和HBase(对BigTable的实现)组成。

Hadoop的初衷是为解决 Nutch 的海量数据爬取和存储的需要
Hadoop在2005年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入Apache 基金会
名字起源:Doug Cutting 儿子的黄色大象玩具名字

Hadoop的三个核心以及解决问题:

  • HDFS(解决海量数据的存储。即上传和下载)
可以配置多台服务器解决问题。所以空间相当于是无限的。
  • MapReduce(并行计算框架,解决海量数据的分析)
由多台服务器分析,所以效率可观。该技术是运行在YARN(Yet Another Resource Negotiator,另一种资源协调者)上的,在Hadoop很久以前的版本只能够运行MapReduce这个技术框架,但是现在已经可以运行Spark、Storm(实时流处理)等等非常厉害的技术框架。
  • YARN:另一种资源协调者

Hadoop由一位大牛(Doug Cutting)看了三篇Google论文深受启发后(GFS、MapReduce、BigTable),用Java实现的一个框架。

Hadoop能干什么

  • hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)
从现在企业的使用趋势来看,Pig慢慢有点从企业的视野中淡化了。但是呢?虽然天猫以前推荐用Hive,现在呢却在用Storm了。比如:天猫已经开始用Storm来进行实时的商品推荐了。(实时商品推荐什么鬼??比如你搜索了一个商品,她会告诉你:以下是你搜索过的同类型商品,并且物超所值,你应该会感兴趣的。),注意了,这个通过实时推荐商品和通过过去的过去来判断喜欢的商品是不一样的哦。你想啊,我现在搜索了,你第二天才给我推荐,到那个时候已经晚咯,因为我已经买完了啊。是不是啊杨七七。

哪儿些公司使用Hadoop

Hadoop被认为是一套行业大数据标准开源软件(很多有钱但是没什么能力的公司,比如电信,联通啊,他们虽然对于大数据有使用Hadoop,但是他们不是使用的开源的,而是使用的IBM或者其它大公司封装的Hadoop商业软件,你想啊,如果我大数据出现了什么不可预料的bug,那么就会得到提供商的维护和支持),在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。2014大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明显增加了Hadoop方面的投入。

Hadoop在淘宝

从09年开始,用于对海量数据的离线处理,例如对日志的分析,交易记录的分析等。

规模从当初的3~4百台节点,增加到现在的一个集群有3000个节点,淘宝2014年已经有2~3个这样的集群了。(2017年应该有上万多台了吧,笔者对于淘宝这样的大公司我真想说,钱不是钱啊,MD,每个月电费都够我烧了)

2014年在支付宝的集群规模也有700台节点,使用Hbase对用户的消费记录可以实现毫秒级查询。

Hadoop生态圈(了解,以后会懂得)

这里写图片描述

给你(小妹请)看图:

这里写图片描述

在学习Hadoop大数据后,还可以接触机器学习有木有!!!

Hadoop版本

  • Apache版本
用来学习用的,安装部署都是比较原始的。
  • Cloudera(CDH)
公司用的,对Apache商业化的封装。(收费。。。)这是使用下载最多的版本,稳定,有商业支持,在Apache的基础上打了一些 patch (笔者:就是不告诉杨七七意思,好气啊)。推荐使用。
  • HDP(Hortonworks Data Platform)
Hortonworks 公司发行版(收费。。。)

Hadoop1.0与2.0的比较

这里写图片描述

前面我们也稍微提到过YARN能够运行MapReduce。在Hadoop1.0时,Hadoop的下层是HDFS,上层是MapReduce。到了Hadoop2.0后,Hadoop的下层运行HDFS,上层是YARN,在YARN中能够运行MapReduce和其它的扩展框架。比如Spark,Storm等流行大数据框架。也就是说Hadoop2.0在架构上,有了革命性的改变。

YARN的产生背景

直接源于MRv1在几方面的无能

1.扩展受限
2.单点故障
3.难以支持MR之外的计算

多计算框架各自为战,数据共享困难

1.MR离线计算框架
2.Storm实时计算框架
3.Spark内存计算框架

怎么解决海量数据存储?

这里写图片描述

一台机器存储数据的能力是有限的。那么就可以通过很多机器搭建一个集群,把文件存储到集群机器上面。如果集群机器存储数据不够时,我们还可以对集群增加机器,进行水平扩展!!!

怎么解决海量数据的计算?

例如:求和:1+5+7+3+4+9+3+5+6=?

这里写图片描述

从图中可以知道,MapReduce在这里发挥了作用,Map是把整体的任务划分成很多的小任务,把这些小任务给集群中的机器计算,并且是并行计算,计算完成后通过Reduce汇总。以此类推!!!直到任务完成!!!

当然这只是个小栗子,MapReduce还能够干更多的逻辑呢,怎么可能仅仅局限于加减乘除???

HDFS的架构

主从结构

  • 主节点,只有一个:namenode
  • 从节点,有很多个:datanodes

namenode负责:

  • 接受用户操作请求
  • 维护文件系统的目录结构
  • 管理文件与block之间关系,block与datanode之间关系

datanode负责:

  • 存储文件
  • 文件被分成block存储在磁盘上
  • 为保证数据安全,文件会有多个副本
提示:在Hadoop 1.0时,namenode只能有一个,而在Hadoop2.0时namenode在集群模式能够有多个。

Hadoop集群的物理分布

这里写图片描述

Switch是交换机其中Rack是机架,放着主机。一个机架上的多台主机通过交换机组合,多个机架的机器通过交换机汇总,组成一个集群。在集群中有NameNode(管理)和DataNode(存储)。

单节点物理结构

这里写图片描述

集群中节点分为两种:Master Node是主节点Slave Node是子节点

通过以上,我们就可以总结下Hadoop的特点了

  • 扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。
  • 成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
  • 高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。
  • 可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。

扩展知识点:

第一点:

淘宝对双十一的大数据并发访问的解决方案。有兴趣并且能力到了,请必须百度。

第二点:

数据魔方:淘宝的一个项目数据魔方主要功能:1.目标消费者地域研究2.人气特征研究(这个商品是对于80后呢?还是90后。)3.用户购买时段定位(比如这个季节推荐保暖衣服好呢?还是暴露的衣服好呢?)

这里写图片描述

其中:MyFOX是MySql搭建的集群,用于存储那20T分析后的结果数据 中的 有用但是用的不频繁的数据。Prom是Hbase搭建的集群,用于存储那20T分析后的结果数据 中的 有用而且用得频繁的数据。

单词翻译:

patch---补丁

恶魔鸡汤:

问:程序员宅男,你不够帅,没有背景,吃饭只能吃泡面,请问你拥有什么财富??答:不知道,也许是知识吧!没有财富时,它也能让我在她的心中建立起一分安全感!!问:那你很厉害咯??答:不!所以只是"一分"安全感啦!