Hadoop学习总结

最近学习了hadoop这个框架,把自己的理解总结如下:

1、hadoop通过一个jobtracker分派任务到一系列tasktracker来运行,tasktracker同时向jobtracker返回任务运行结果。

jobtracker对作业的输入数据进行分片,然后为每个分片创建一个map任务,同时创建一定数量的reduce任务,并指派空闲的tasktracker来执行这些任务。

tasktracker从jobtracker处获取任务jar包以及分片的输入数据,然后新建jvm来执行,并定期反馈执行进度情况。

2、map任务就是进行原始数据的提取工作,提取数据后进行sufflix排序,排序后的数据作为reduce的输入,然后经过reduce的统计计算得到最后结果。

3、hdfs对数据进行分块,然后存储在datanote里,datanote向namenode报告自己存储的文件块,客户端通过访问namenode来得知构成文件的各个数据块的具体存放datanote,进而从datanote中读取整个文件。

4、hadoop作业的输入数据必须在作业执行前是固定的,然后才能进行数据的分片,所以不能胜任增量的流式数据处理作业。

5、mapreduce本身需要编写java代码,优化起来也比较复杂,而pig可以让用户通过脚本语句Latin来操作数据,并将脚本语句转换成mapreduce来在hadoop中执行,pig并不要求被操作的数据满足关系数据库模式。

6、hive构建于hadoop的数据仓库,能够对存储在HDFS中的数据增加元数据,从而提供SQL风格的数据操作,再将操作翻译成mapreduce来在hadoop中执行。

hive与pig的主要区别是hive能提供SQL风格数据库表操作,而pig使用自定义的Latin脚本来直接操作数据,pig更轻量。

7、hbase是一个按列存储的分布式数据库,它的表不满足关系数据库模式且不支持SQL查询,可以将数据存储在HDFS上。

hbase与hive的主要区别,一是hbase是一个分布式数据库易于水平扩展,而hive不是。

二是hbase的数据按列存储因而能够灵活的随机读写,而hive本身不改变数据存储格式,只给数据增加了表元数据从而支持关系数据库表操作。

8、zookeeper封装了一套分布式服务所需使用的通用机制,自身的实现是通过多台服务器冗余来实现高可用,能够自动选举出领导者来服务于用户的写请求,并自动同步到半数的跟随者,领导者和跟随者都可以服务于用户读请求。

应用场景包括:高可用分布式配置存储、分布式对象状态更新订阅通知、分布式锁、分布式集群领导者选举。

(完)

时间: 2024-11-05 23:20:20

Hadoop学习总结的相关文章

Hadoop学习笔记(6) ——重新认识Hadoop

Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功能DFS和MapReduce, DFS可以理解为一个分布式文件系统,存储而已,所以这里暂时就不深入研究了,等后面读了其源码后,再来深入分析. 所以这里主要来研究一下MapReduce. 这样,我们先来看一下MapReduce的思想来源: alert("I'd like some Spaghetti!

Hadoop学习笔记(7) ——高级编程

Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成<key, value>. 2.映射(map):根据输入的<key, value>进生处理, 3.合并(combiner):合并中间相两同的key值. 4.分区(Partition):将<key, value>分成N分,分别送到下一环节. 5.化简(Reduce):将中间结

Hadoop学习笔记(8) ——实战 做个倒排索引

Hadoop学习笔记(8) ——实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如下: 这张索引表中, 每个单词都对应着一系列的出现该单词的文档,权表示该单词在该文档中出现的次数.现在我们假定输入的是以下的文件清单: T1 : hello world hello china T2 : hello hadoop T3 : bye world bye hadoop bye bye 输

Hadoop学习笔记_2_Hadoop源起与体系概述[续]

Hadoop源起与体系概述 Hadoop的源起--Lucene Lucene是Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎 早期发布在个人网站和SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎 对于大数据的

hadoop学习;hadoop伪分布搭建

先前已经做了准备工作安装jdk什么的,下面开始ssh免密码登陆,这里我们用的是PieTTY工具,当然你也可以直接在linux下直接操作 ssh(secure shell),执行命令 ssh-keygen -t rsa产生密钥,位于~/.ssh文件夹中 \ 一路enter 复制为文件authorized_keys 登陆成功和退出 接下来传输jdk和hadoop文件,这里用的工具是WinScp(类似ftp上传工具),有的虚拟机可以设置直接从物理机拖拽,我这放到/root/Downloads下 然后复

Hadoop学习之路(一)——Hadoop家族学习路线图

主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等. 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,无

Hadoop学习路线图

Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等. 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,无一不向Ha

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

Hadoop学习笔记(5) ——编写HelloWorld(2)

Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我们写了一个MapReduce的HelloWorld程序,那这一节,我们就也学一学DFS程序的编写. DFS是什么,之前已经了解过,它是一个分布式文件存储系统.不管是远程或本地的文件系统,其实从接口上讲,应该是一至的,不然很难处理.同时在第2节的最后,我们列出了很多一些DFS的操作命令,仔细看一下,这

hadoop 学习笔记:mapreduce框架详解

hadoop 学习笔记:mapreduce框架详解 开始聊mapreduce,mapreduce是hadoop的计算框架,我 学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的 思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习 hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不