文档章节

hadoop初学

蓝狐乐队
 蓝狐乐队
发布于 2013/12/07 09:25
字数 1135
阅读 342
收藏 3


Hadoop 学习笔记(一)

最近在学习Hadoop分布式系统,在这里与大家分享一下:

什么是Hadoop分布式系统?

从命名名称上看,首先可以认为他是一个工具,可能有人认为是废话,但是这个理念对我来说很重要,因为他是我认真学习下去的一个重要的理由,既然是工具我相信就能把他掌握。
他是一个 分布式系统 基础架构,由Apache基金会开发,他的产生由Google公司的三篇著名的论文而来,也是Google提出云计算概念的由来,大家有时间可以阅读一下这三篇经典的论文。他是一种用户在不必要分析底层的情况下,利用集群实现的一种处理高并发数据的计算和存储的框架。他实现的功能就是让用户不必使用昂贵的服务器,利用平时的小型主机就可以完成海量数据的查询与存储的基础框架。
Hadoop 分布式有哪些优点
高可靠性
Hadoop 分布式具有很好的容错机制,假设一台机器出现故障他维护的副本机器会直接替换掉出现故障的机器,以保证系统的正常运行。
高扩展性
Hadoop 可以利用计算机簇集成进行计算,可以很轻松的扩展到数千的计算机节点。
高效性
Hadoop 充分利用其分布式集群的特点,将海量数据分块处理,并细分给每一台小型计算机进行计算,保证了他的高效率并行计算。
Hadoop 采用JAVA语言开发,所以跨平台性非常好,等等还有很多优点,在这里就不和大家一一介绍了。
Hadoop 核心之—— MapReduce


     MapReduce工作原理(如图)

MapReduce的工作原理大致分为如下4个阶段:
客户端:提交MapReduce作业。
Jobtracker:协调作业程序。Jobtracker是一个Java程序,他的主类是JobTracker.
Tasktracker:运行作业分配后的任务,他也是一个Java应用程序,他的主类是TaskTracker.
分布式文件系统:一般为HDFS,用来实现实体间的共享作业文件。
作业提交
JobClientRunJob()方法用于创建JobClient实例,并调用submitJob()方法的便捷方式,调用runJob()方法对作业进行轮询,如果发现作业有变化,他自动将作业提交到控制台。如果提交成功他会把作业计数提交到控制台,如果失败的话他会将错误记录提交到控制台。
作业初始化
JobTracker通过调用其submitJob()得到作业后,会放进内部的作业队列当中,交由作业调度器(job scheduler)进行调度,并对其进行初始化。初始化包括,创建一个正在运行的业务对象,任务和记录,这样就方便程序跟踪任务的运行状态和进程。
作业的分配
tasktarcker运行一个简单的循环,定期发送‘心跳’给JobTracker,他会告诉JobTrackertasktracker是否还活着,同时也充当两者之间沟通的桥梁。
任务执行
tasktracker已经被分配了一个任务,下一步就是运行了,首先,他会通过共享文件系统把作业Jar文件复制到tasktracker所在的文件系统,从而实现作业的JAR文件的本地化,tasktracker,将应用程序,从分布式缓存复制到本地磁盘中并进行解压,然后创建任务实例,并运行。
进度和状态
MapReduce作业是常时间批量作业,运行时间从几秒到几小时甚至更长,这么长的时间用户肯定需要掌握作业的进展情况,一个作业和他的每个任务都有一个状态,包括作业或任务的状态如:运行状态,成功状态,失败状态,mapreduce的进度,作业计数器的值,状态消息,或描述等等。这些状态都是随着作业时间的改变而不断变化。
作业完成
JobTracker收到作业最后一个任务已经完成的通知后,便把作业状态改为成功,然后JobClient查询状态时,便知道执行的任务已经执行成功了。于是JobClient端会打印给客户消息告知客户,然后从runJob()方法返回。

© 著作权归作者所有

上一篇: 五年规划
蓝狐乐队
粉丝 105
博文 322
码字总数 89813
作品 0
昌平
程序员
私信 提问
Hadoop新手学习指导

对于我们新手入门学习hadoop大数据存储的朋友来说,首先了解一下云计算和云计算技术是有必要的。下面先是介绍云计算和云计算技术的: 云计算,是一种基于互联网的计算方式,通过这种方式,共...

一枚Sir
2014/08/07
87
0
分析几种Hadoop集群部署方式优劣

对hadoop初学者来说,或者说正在使用hadoop的开发者来说,hadoop环境的搭建不是一件省心的事,甚至很多博客上都重要的事说三便“不要花精力在搭建环境之上”,可见很多人在搭建环境时会遇到很...

cpaqyx
2017/06/25
0
0
Hadoop初学疑问

初次学习hadoop,我在官网下载了Hadoop的包,我下载的是133M的 地址为:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.4.0/hadoop-2.4.0.tar.gz。 按照官网的描述来部署 Si...

摆渡者
2014/05/27
395
2
Cascalog:Up and Run

运行 cascalog 经过几天的挣扎(业余时间),终于把 cascalog 运行起来。因为 hadoop 集群不是自己搭的,有一些关于安全方面的设置,对初学造成了一定的麻烦。反复尝试才跑起来。 创建项目 ...

ljie-PI
2013/12/08
0
0
如何在eclipse调试mapreduce程序

如何在eclipse或myeclipse调试mapreduce程序,这个可能是初学mr程序者碰到的一个难题 在hadoop1.2.1后,在下载的源代码中找不到hadoop-eclipse-plugin相关的jar或源代码。 其实hadoop目前使用...

cloud-coder
2013/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windowserver2008远程桌面打开和win7一样吗

  直接通过操作来看看是不是一样的就知道了。   1.Windows server 2008 R2操作系统,如图所示。点击任务栏"开始"按钮,用于打开开始菜单。   2.所示,唤出开始菜单列表。点击下侧"所有...

takethelas
22分钟前
3
0
Tomcat禁用 OPTIONS 和 TRACE 并隐藏 Apache-Coyote/1.1

打开tomcat–>conf–>web.xml 文件: 将以下代码注释或删除: <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche......

国产大熊猫
22分钟前
4
0
MySQL(逻辑分层,存储引擎,sql优化,索引优化以及底层实现(B+Tree))

一 , 逻辑分层    连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理、授权认证、安全等。 服务层:包括缓存查询、解析器、优化器,这一部...

hansonwong
23分钟前
3
0
浅谈lambda表达式

Java8发布已经有一段时间了,这次发布的改动比较大,很多人将这次改动与Java5的升级相提并论。Java8其中一个很重要的新特性就是lambda表达式,允许我们将行为传到函数中。想想看,在Java8 之...

青衣霓裳
27分钟前
19
0
UIViewController添加Xib

1.有的时候创建UIViewContollrer类时,忘记创建了xib,此时就要手动创建一个xib 2.我们首先新建一个类HOTestViewController在创建xib文件的时候,文件名尽量与其类名一直,一是方便查看,二是...

HOrange
33分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部