您的位置:首页 > 运维架构

hadoop学习笔记<一>----hadoop简介

2013-04-07 22:23 295 查看
什么是hadoop?

hadoop 是一个可编程和运行分布式应用,用来处理大数据的开源框架。

Hadoop主要子项目  

Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common

  HDFS: Hadoop 分布式文件系统 (Distributed File System) - HDFS (Hadoop Distributed File System)

  MapReduce:并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API

  HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBase 和 Avro 已经于2010年5月成为顶级 Apache 项目)

  Hive:数据仓库工具,由Facebook贡献。

  Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。

  Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。

和其他分布式架构比较:

SETI@home(就是寻找外星人那个):是将数据传送到要计算的地方(运行屏保的计算机),经过计算,再将计算结果传回到数据中心。

hadoop的做法:将代码向数据所在的地方迁移。

和普通的数据库比较:

1.处理的对象不一样。

传统数据库处理的是 结构化的数据,如 表的结构都是固定的。结构化查询语言(Structured Query Language)简称SQL.

hadoop更多的是处理半结构化的数据或者非结构化的数据,如分析日志记录,统计字符出现的次数等等。

2.拓展方式不一样

hadoop的拓展是向外拓展,即需要扩容的时候,增加普通的机器。

普通数据库拓展是向高拓展,即更换更好的机器。(当然也可以向外拓展,这点有待讨论...)

3.hadoop用键值对代替数据表

传统数据库是让数据以某种模式存放在具有关系数据库的模式中。基于这种模式来对数据进行处理。hadoop将数据转化为键/值对来进行处理

4.hadoop用函数式编程(MapReduce)代替sql

5.hadoop用离线批量处理代替在线处理(hadoop为离线处理和大规模数据分析而设计,

更适合于 一次写入,多次读取 的情况,类似于sql的数据仓库)

==============================================================

我也是刚开始学习hadoop,学习的资料来自于 《hadoop实战》和《hadoop权威指南》 以及网上搜到的一些资料。

这些笔记是学习的过程中自己积累的,然后用更加浅显的话表述出来,希望也能帮助到初学者。当然里边会有很多错误,也希望大家指出,我会认真改正,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: