初识Hadoop

来源:互联网 发布:淘宝催确认订单给好评 编辑:程序博客网 时间:2024/05/17 10:06

一、Hadoop能够解决的问题

Hadoop解决的问题就是大数据存储和运算问题。

这里要说一个宏观的问题,就是大数据产业链,来说明Hadoop在产业链中所处的位置,以便于更好的理解Hadoop是做什么的。

所谓大数据的产业链,就像于普通商品的产业链,普通商品的产业链先是原材料的搜集、原材料的预加工、深加工、 制造成各种各样的商品、最终销售变现获得利润。  

大数据产业链可以分为三个阶段:

  1. 大数据收集、整理阶段;
  2. 大数据存储、处理阶段;
  3. 大数据应用、变现阶段;

Hadoop是用来解决第二步,大数据存储、处理问题的技术的。

拿一般的企业而言,数据的搜集渠道很多,也已经有了,比如订单数据、PV、UV数据等等。搜集到数据这是第一步。

第二步是如何存储和运算这些大数据,这个就是Hadoop擅长的事情,Hadoop为存储和处理大数据提供了解决方案。

第三步是和具体业务相关的,是从需求的角度为出发点利用第二步中存储的大数据,比如想做一个基于PV、UV的用户行为分析的应用程序,来指导如何优化页面和流程,以便于更好的引导客户下单,从而实现利润。

二、Hadoop核心和概念

Hadoop是存储和处理大数据的解决方案,相对应地Hadoop的核心就两个:

1、  HDFS:HDFS是分布式文件系统,提供了数据存储的方案。

2、  MapReduce:MapReduce是平行运算架构,提供了数据处理的的解决方案。

Hadoop概念分狭义的和广义的:

1、  狭义的Hadoop只是Hadoop本身 (HDFS+MapReduce)。

2、  广义的Hadoop其实是泛指在HDFS+MapReduce核心上衍生出来的一个Hadoop生态系统。

 三、Hadoop生态系统

1、    Hadoop生态系统

 

2、生态系统的核心: 

(1)     HDFS和MapReduce是Hadoop的核心,一个负责数据存储,一个负责数据处理 

(2)     HDFS特点是分布式存储、顺序读、只能追加 

  • 分布式:会将一个文件分割后存储在不同的节点,
  • 流式访问:只能从前往后读取,几乎每次读取都要读取全部数据。
  • 只能追加:HDFS中,数据写入只能追加到文件的末尾,不支持随机读写。 

(3)     MapReduce是线性的、可伸缩的编程模型,核心是两个函数:map()和reduce(); 

  • 线性表现在:所有的数据处理都是顺序执行map()和reduce()。
  • 可伸缩表现在:可以在很多运算节点并行执行,而节点数量理论上是可以无限增加的。

3、衍生的项目:

  1. Sqoop: Hadoop的数据来源往往是原有的关系型数据库,经过Hadoop的处理后,往往是把结果数据再存入关系型数据库中,所以Sqoop就是用来做数据导入导出的,Sqoop是关系型数据库和HDFS之间数据的传输桥梁。
  2. HBase是在HDFS基础上开发的面向列的分布式数据库。 它用巧妙的方式解决了不违反HDFS存取规则的前提下,提供随机读写、实时响应的功能。
  3. ChukWa是一个对整个Hadoop系统的运行情况进行分析和反馈的工具。
  4. ZooKeeper: Hadoop可以是分布式大集群系统,必然各个节点间的协调变的很复杂,ZooKeeper就是为分布式应用程序开发的协调服务。
  5. Pig: Hadoop中数据处理的机制就是通过MapReduce来线性地执行各个map()和reduce()函数来操作,要写大量的map函数和reduce函数,雅虎开发了Pig ,Pig会转换为一堆map、reduce函数来执行,简化开发。
  6. Hive:雅虎有Pig,Fackbook也有自己的解决方案,开发了Hive。Hive更像SQL的语法,但是最终还是翻译为map、reduce函数来执行
  7. 总结:整个Hadoop生态系统中,HDFS和MapReduce是比较底层的东西,实际应用开发时,不太可能会用到,而是利用基于它们这两个核心之上的各种工具来开发。

4、用SqlServer数据库理解Hadoop生态系统

SqlServer数据库解决的问题是数据存储和对数据的增删改查等处理操作;Hadoop也是解决的是数据的存储和处理操作。所以可以对他们进行对比,很多都能匹配的上,虽然有些牵强,但是对理解Hadoop有一些帮助。

 

Hadoop生态系统

 

SqlServer数据库系统

HDFS

 

数据库

MapReduce

 

数据库管理系统

Hadoop

 

数据库系统

Pig

 

查询规划器

Hive

 

SQL语言

Sqoop

 

导入导出工具

ZooKeeper

 

 

Chukwa

 

SqlServer Profiler

 

 

0 0