学习慕课网的视频:Hadoop大数据平台架构与实践--基础篇http://www.imooc.com/learn/391

一、第一章

#,Hadoop的两大核心:

    #,HDFS,分布式文件系统,存储海量的数据;
    #,MapReduce,并行计算框架,实现任务分解和调度;

#,Hadoop的优势有哪些呢?
    #,高扩张;
    #,低成本,不依赖于高端硬件,只要普通pc就可以了,使用软件的容错就可以保证系统的可靠性;
    #,有成熟的生态圈,主要是依赖于开源的力量,比如Hive、HBase等,这些工具可以让我们对于Hadoop的使用更加顺手。
    在国内、国外的很多大型公司都在用hadoop来搭建自己的平台。已经成为业界的大数据平台的首选;    
    目前行业对于Hadoop的人才的需求主要包括两个方面,一个是开发人才,一个是运维人才。

第四节,Hadoop生态系统及其版本
    #,比如有了Hive之后,我们只需要去写sql语句,然后他就会自动转换为HDFS的命令去执行。
    #,HBASE是一个存储结构化数据的分布式数据库,和传统的关系型数据库相比,他放弃了事务特性,转而追求更高的扩展性。与HDFS的不同在于,他提供了对于数据的随机读写和实时访问,实现了对表数据的读写功能。
    #,Zookeeper,用于监控hadoop节点的状态,维护他们的一致性等,做集群管理的;
    目前Hadoop已经到了ver2.x,不过本次课程主要使用ver1.2的版本来讲解。

第二章,Hadoop安装
   主要就是,安装Linux,安装Jdk,安装Hadoop,具体就不写了

第三章,Hadoop的核心,HDFS简介
第一节,HDFS设计架构
    基本概念,BLOCK、NameNode、DataNode
    HDFS里面的所有文件被分成相同大小的块,每个块的默认大小为64M。块是文件存储和处理的逻辑单元。
    HDFS有2类节点,NameNode和DataNode
    NameNode是管理节点,用于存放文件的元数据,他包括2点:
    1)文件与数据块的映射表;
    2)数据块与数据节点的映射表;
    DataNode是HDFS的工作节点,是用于存储真正的数据块的。 

第二节,HDFS数据管理策略
    HDFS中任何数据块都存储了3份。分布在2个机架的3个节点上。
    心跳检测,每个DataNode每隔几秒钟都要以心跳协议向NameNode发送心跳。
    二级NameNode,他其实就是NameNode的备机,热备,一旦NameNode挂了,他就自动切换为主NameNode

第三节,HDFS中文件的读写操作
   客户端读取文件的基本流程如下:找NameNode要元数据,这样就知道他包括哪些块以及这些块在哪些节点上,然后直接去读取,拼接,如下图所示。
   写文件的流程如下:首先是把文件按照64M拆分成多个块,然后找NameNode要DataNode列表,然后开始逐个块写入,先把块写入到其中一个节点,然后他内部会做流水线复制到其他2个节点,然后在更新NameNode的元数据,这样一个块就算写完了,然后再写下一个块。
 
第四节,HDFS的特点
1)数据冗余,硬件容错;
2)流式的数据访问,写一次,读多次。数据没办法修改,如果要修改只能把之前的数据删除,然后重新写入一份;
3)适合存储大文件,这是设计之初就这么考虑的,如果是大量的小文件的话,不适合,因为一个小文件也要存储元数据,此时NameNode的压力会非常大。
4)适合数据的批量读写,吞吐量高,不适合做交互式应用,低延迟很难满足;
5)支持顺序读写,不支持此多用户并发写相同文件;

第五节,HDFS的使用
这里讲师使用了几个hadoop的几个常用命令来演示如何在hadoop中创建一个目录,然后上传一个文件,然后再下载一个文件。
大致都是:
hadoop fs -put filea.dat  input/
或者是get命令下载文件
或者是cat命令查看文件内容
或者是hdfsadmin命令来查看整个系统的一些统计信息。
    
第四章,Hadoop的核心,MapReduce的原理与实现
第一节,MapReduce的原理
其实这个和Java8最新引入流操作中的并行操作类似,概念也都是想同的。
所谓Map就是要将任务拆分成很多份,这里给了一个例子,有1000副牌,少了一张,然后要找出到底是少了哪一章。
 然后又给了一个从日志中统计出访问此处最多的ip的例子,也都是类似的,先把日志分块,然后由不同的任务分别统计,然后再把他们的结果拿来合并,也就是Reduce了

第二节,MapReduce的运行流程
几个基本的概念:
#,Job&Task,比如上面的找出访问次数最多的任务就是一个Job,然后这个Job要完成的话要被分解为多个Task,放到不同的节点上去执行。Task又可以分为MapTask和ReduceTask
#,JobTracker,作业调度,分配任务并监控任务的执行进度,任务分配出去之后,TaskTracker每隔几秒钟要向JobTracker更新状态
#,TaskTracker,作业的执行
这几个概念互相之间的关系如下图:
一般来说,TaskTracker就是分配在其数据所在的DataNode上,这样可以保证运行的效率最高,毕竟读取本机的磁盘总是更快的。这也是MapReduce的一个设计思想,用移动计算来避免移动数据。 
MapReduce的容错机制,
1)重复执行;也就是执行的过程中如果出错了,他会重复执行,但是重复了4次之后如果还出错,他就放弃了。
 2)推测执行,用于解决那种计算速度特别慢的情况,此时会新开一个任务,然后再看这两个任务谁先执行完。





   



《Hadoop大数据架构与实践》学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. BZOJ2915 : [Poi1997] gen

    设f[i][j]表示串ij可以由哪些字母成长过来,用二进制压位表示. 设g[i][j]表示给定串中[i,j]这个区间一开始可以由哪些字母成长多来,用二进制压位表示. 设h[i]表示给定串前i位最少需要 ...

  2. 使用WSL连接Docker Server(Windows/Linux)

    在Windows下安装Docker for Windows Cotana搜索功能,打开Windows的Hype-v功能(注:会影响Virtualbox和Vmware的使用)并重启电脑. 从Docker ...

  3. 39、ABTestingGateway

    2015 年度新增开源软件排名 TOP 100 - 开源中国社区   http://www.oschina.net/news/69808/2015-annual-ranking-top-100-new ...

  4. SimpleUpdater.NET

    本类库+工具用于快速实现一个简单的自动更新程序,旨在快速简单地为现有的.Net应用程序添加上比较简单的自动更新功能. 本页包含以下内容 概述 整个自动升级工作的流程 更新包生成工具 发布更新包 为应用 ...

  5. TCPIP网络协议层对应的RFC文档

    原文地址:TCPIP网络协议层对应的RFC文档作者:西木 RFC - Request For Comments 请求注解 TCP/IP层 网络协议 RFC文档 Physical Layer Data ...

  6. 少女花海自拍撞亡:自拍PK火车速度,没有赢家

    心理学研究,自拍是一种自我强化的过程.人们都或多或少有着自我关注的倾向,即“自恋”.而人作为有思想的群体性社会动物,有着分享和交流的欲望.尤其是现代快节奏的生活常使人感觉“亚历山大”,自拍恰恰就成为释 ...

  7. Codeforces 394D Physical Education and Buns 胡搞

    题目链接:点击打开链接 题意:给定n个数的序列(能够排序) 操作一次能够使得某个数++或--. 问最少操作几次使得序列变成一个等差序列 输出: 第一行输出最少操作的次数 第二行输出等差数列里的最小项 ...

  8. 《Software Design中文版01》

    <Software Design中文版01> 基本信息 作者: (日)技术评论社 译者: 苏祎 出版社:人民邮电出版社 ISBN:9787115347053 上架时间:2014-3-18 ...

  9. Sklearn实现逻辑回归

    方法与参数 LogisticRegression类的各项参数的含义 class sklearn.linear_model.LogisticRegression(penalty='l2', dual=F ...

  10. [转]PHP用mysql数据库存储session

    From : http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/0226/4002.html 大部分使用php的人一旦应用到sessio ...