初识Hadoop,
一、Hadoop能够解决的问题
Hadoop解决的问题就是大数据存储和运算问题。
这里要说一个宏观的问题,就是大数据产业链,来说明Hadoop在产业链中所处的位置,以便于更好的理解Hadoop是做什么的。
所谓大数据的产业链,就像于普通商品的产业链,普通商品的产业链先是原材料的搜集、原材料的预加工、深加工、 制造成各种各样的商品、最终销售变现获得利润。
大数据产业链可以分为三个阶段:
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、衍生的项目:
4、用SqlServer数据库理解Hadoop生态系统
SqlServer数据库解决的问题是数据存储和对数据的增删改查等处理操作;Hadoop也是解决的是数据的存储和处理操作。所以可以对他们进行对比,很多都能匹配的上,虽然有些牵强,但是对理解Hadoop有一些帮助。
Hadoop生态系统 |
|
SqlServer数据库系统 |
HDFS |
|
数据库 |
MapReduce |
|
数据库管理系统 |
Hadoop |
|
数据库系统 |
Pig |
|
查询规划器 |
Hive |
|
SQL语言 |
Sqoop |
|
导入导出工具 |
ZooKeeper |
|
|
Chukwa |
|
SqlServer Profiler |