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

Hadoop学习笔记-Hadoop初识

2012-11-27 11:08 267 查看
序言:

其实Hadoop本人早就想进行一下系统的了解,一直被自己的懒惰给无限的推迟。最终还是鼓起勇气将自己放入到其中。本人了解的Hadoop的所有内容均来自于《Hadoop权威指南》,只是想通过这种方式来记录自己的学习历程,以方便以后的温习。文中的一些观点纯属我个人的看法,并不一定具有参考意见。

数据时代

信息化发展到当今,互联网的数据量是不断地增加,那么如何很好的处理以及利用这些数据可能是未来的一个发展方向,这也之所以产生了各种平台的云计算。对于互联网而言,大数据量可分为两种:第一、大访问量请求;第二、大数据量处理。大访问量请求这个事应用端应该思考的问题,如何很好的处理大的访问量,如何实现应用端的负载均衡这个不是我这里讨论的话题。大访问量将会带来大数据量的处理,因为用户的请求一般都会带来后端的处理,于是给以用户的响应,那么后端的处理比较牵扯到数据的处理。对于一个大访问量的系统,那么它的数据量必定会是庞大的,那么如何很好的处理这些庞大的数据,Hadoop是其中一种处理方式,也是当前比较流行的处理方式。故而趁工作之余学习一下Hadoop,从而丰富一下解决问题的方法。

Hadoop基本概念

Hadoop的核心模块是MapReduce以及HDFS(Hadoop Filesystem)。随着Hadoop的发展也出现了其他的一些模块例如:Pig、Hive以及HBase等等,通过这些模块达到丰富了Hadoop的生态圈。

MapReduce就是对数据分析处理的一个过程,它基于键值对的方式来分析处理数据,从而达到数据的分块处理,而HDFS是一个分布式文件系统。通过这两个模块就可以完成对数据的分析以及存储。MapReduce对数据的处理分为两个部分,一个是Map方法所处理的过程,这里主要是对数据进行键/值处理,需要确定数据的哪些属性为键,哪些属性为值,所以这里的键/值对数据并没有要求,而是开发人员自己挑选,顾从这里可以看出Hadoop对待处理数据的结构没有限制。那么另一个是Reduce方法,这里就是收集Map分类好的数据,进行分析然后进行处理。那么这两个方法的调用全部都丢给Hadoop的一个Job任务来执行。这就是Hadoop处理数据的一个基本过程。

Hadoop和传统的关系型数据库区别

Hadoop从存储的数据类型是非结构化或者是半结构化的存储,而关系型数据库是存储结构化的数据。下面一张表描述了它们两者间的区别:



从该表中可以看出Hadoop适合做一次写入多次读取的数据处理,并不适合实时更新的数据,通过这张表就可以很好地定位hadoop在开发中所处理的问题。

本文只是对Hadoop的一个基本认识,并没有太多关于Hadoop的内部信息或者如果实现以及搭建Hadoop的环境。下一节将讲述如何在Windows下利用Cygwin搭建Hadoop。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: