起源:Hadoop是google 的集群系统的开源实现
           --Google集群系统,:GFS(Google file system),MapReduce,BigTable(严格意义上讲,这个不是hadoop的东西)
            --Hadoop 主要由 HDFS(Hadoop Distributed file system ---hadoop文件分布式系统)MapReduce和HBase组成 
两大核心:
            MapReduce : 组成  Map进行任务的分解,Reduce进行结果的汇总
            HDFS :组成  NameNode    ,DataNode    ,Client    
 
HTFS讲解:
            通常的,我们习惯使用的就是关系型数据库,比如mysql    , sql server , oracle等等,但是这些数据库都是有局限性的,
数据量过大时候,也需要更换,总不能一直更换吧?所以,这就延伸出了,hadoop(当然,这个东西的起源也就是因为这个,当时是用作
数据采集的,但是发现数据量过大,以至于无法处理,所以 hadoop这东西就出来了,也是被 挤出来的一个东西)
            大数据:所谓的大数据,简单的可以这么理解为,数据集的大小超过了数据库软件和现有工具的处理 的范围了,所以,很多人整天喊着
大数据大数据,到底多大的数据才是大数据?(这里有点儿讽刺的意味),每次一说出来总被吓一跳,让人觉得很厉害的样子。
                Hadoop大数据 与 传统关系型数据库的 对比: 
                对比一
 
关系型数据(库)
 大数据:
 数据量方面:
GB  TB及其以下级别数据量
基本是TB  PB级别的数据
数据增长方面:
 数据增长不快   
持续、实时不定量增长数据
 结构:
主要是关系型,有具体的数据结构
非结构化,半结构化,多维数据
存在的实际价值:
 统计和报表 
数据挖掘和数据分析
                对比二:硬件(环境方面)
                    比较直观的理解就是,关系型数据库往往就单台服务器,所以不论从扩展性或者是 性能方面 都多少存在问题,可能有人说,微软有数据库错误集群
功能啊,这个是不假,但是那不是真正意义上的集群方式。扩展性更不用说了,就一个服务器,而且数据库只能指定具体的数据类型才可以
 
     Hadoop项目(子集):
            Core:    core是一套分布式文件系统,同时支持Map_Reduce的计算框架
            Avro:    定义了支持大数据应用的数据格式,虽然是JAVA编写的,但是提供了对多种语言的支持
            HDFS:Hadoop分布式文件系统
            Map/Reduce :    是一种使用比较简易的框架,可在多个机器集群上,以一种可靠的容错方式处理 TB级别的数据集
            ZooKeeper:    高可用的 可靠的分布式协同系统

PIG: (目前使用的越来越少)

Hive:   为提供简单的数据操作设计的 新的 分布式数据仓库。它提供了HiveSQL语言,类似于sql语句一样进行数据查询

HBase: 建立在Hadoop Core之上的提供一个可扩展的 数据系统

Flume: 一个分布式、可靠、高可用的海量日志集合的系统,支持在系统中定制各类数据发送方,用于数据收集

Mahout: 是一种具有可扩充能力的机器学习类

Sqoop: 是Apache 下用于RDBMS 和HDFS互相导数据的工具

(以上只有绿色部分的内容才是 hadoop的本身的内容,其他的东西做扩展使用)

Hadoop获取

           http://hadoop.apache.org

当然,可以看到很多版本的 hadoop的文件,这里先使用  1.2.X 的版本,先从基础开始嘛,然后后面再使用  2.X 的版本

1.2.X的版本获取链接 https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/ 选择使用  .tar的  文件包,因为里面文件比较全,

包含相关文档等

HTFS介绍

htfs做到了可靠性的创建了多份数据块儿(data blocks),的复制(replicas),并将它们放在服务器群的计算节点当中(ompute nodes),

MapReduce就可以在他们所在的及诶点上处理数据了

HTFS结构:

NameNode
DataNodes
存储元数据(文件的大小,权限、版本等等)
存储文件内容
缘数据保存在内存中(当然磁盘中也有,只是他是先加载到物理磁盘,运行时在读取到内存)
文件系统保存在磁盘中
保存文件,block,datanode之间的映射关系
维护了blockid到datanode的本地文件的映射关系

namenode 和 datanode的节点的关系,注意看,我上面写的,datanodes我写的是复数形式,这里是因为

是一对多的关系,一个namenode的对应多一个datanode

HTFS的运行机制:

HTFS数据存储单元(Block - 存放到 datanode上):

① 文件被分割成固定大小的数据块,同时分布在多个 数据存储单元中(作为副本),副本越多就会减少丢失率,默认情况下,每个block

② 默认都会有三个副本文件,要存放在 集群服务器中的不同机器硬盘上

③ block 工作单元被创建之后,大小固定是多大就是多大,不能在更改size,但是副本的个数,可以更改;

④ 如果集群中,摸一个block的节点挂掉了,这是,会自动创建一个新的副本block,将之前的数据,从另外的正常运行的block中拷贝文件过去

HTFS的 NameNode:

a) 功能是,接受客户端的读写服务

b) 保存的的metadata信息包括:① 文件owership 和 permissions  ; ② 文件包含哪些模块  ; ③ Block保存在哪个 DataNode(由 dataNode启动时 上报给 nameNode,由namenode加载到内存)

c) metadata存储到磁盘上的文件名称为 fsimage,

d) Block的位置不会保存到 fsimage

e) edits 记录时,metadata的操作日志

HTFS 的读流程:(图片来自互联网)

client先open从namenode中获取文件的名称 ,上面有说过,数据的存储是存储在 datanodes中的,而namenode中存储的是 元数据,也就是数据的相关信息;

然后客户端根据获取的文件名称,从datanodes中读取数据。

HTFS 文件权限:

与LINUX文件权限类似

--- r:read ; w:write;  x:execute ,权限 x 对于文件忽略,对文件夹表示 是否允许访问其他内容

--- 如果LINUX 系统用户 张三 使用hadoop 创建一个文件,那么这个文件在HDFS中owner就是 张三

--- HDFS 的权限目的:不做密码的认证,说白了,你使用的用户名,这个用户就拥有所有权限

Hadoop 的安全模式:

注:该状态下,不能够对HDFS 进行操作,比如读写操作,你只能看着,这个过程可以理解就是,datanode数据加载过程中到 向namenode汇报的过程,这个阶段需要时间,这个时间段就是 安全的模式,当然可以强制终止,但是强制的结果就是,导致数据的丢失。所以不建议。

namenode启动的时候,将fsimage的映像文件加载到内存,

Hadoop 系列 - (1) - 学习随笔 - 起源、构成的更多相关文章

  1. ActiveReport系列报表开发随笔收集

    转自:博客园 http://www.cnblogs.com/dahuzizyd/archive/2007/04/11/ActiveReport_All.html 使用ActiveReport for ...

  2. Hive入门学习随笔(一)

    Hive入门学习随笔(一) ===什么是Hive? 它可以来保存我们的数据,Hive的数据仓库与传统意义上的数据仓库还有区别. Hive跟传统方式是不一样的,Hive是建立在Hadoop HDFS基础 ...

  3. typeScript学习随笔(一)

    TypeScript学习随笔(一) 这么久了还不没好好学习哈这么火的ts,边学边练边记吧! 啥子是TypeScript  TypeScript 是 JavaScript 的一个超集,支持 es6 标准 ...

  4. [大牛翻译系列]Hadoop系列性能部分完结

    Hadoop系列性能部分完结.其它的部分发布时间待定. Hadoop系列将不再一日一篇,开始不定期发布.

  5. 【Xamarin挖墙脚系列:学习资料大放送】

    原文:[Xamarin挖墙脚系列:学习资料大放送] 最靠谱的还是官方的文档,英文的,借着翻译工具,硬看吧.还能学习英文........... https://developer.xamarin.com ...

  6. (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

    特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

  7. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

  8. Hadoop Streaming框架学习2

    Hadoop Streaming框架学习(二) 1.常用Streaming命令介绍 使用下面的命令运行Streaming MapReduce程序: 1: $HADOOP_HOME/bin/hadoop ...

  9. Hadoop Streaming框架学习(一)

    Hadoop Streaming框架学习(一) Hadoop Streaming框架学习(一) 2013-08-19 12:32 by ATP_, 473 阅读, 3 评论, 收藏, 编辑 1.Had ...

随机推荐

  1. 【转】SourceTree的简单使用

    原文网址:http://blog.csdn.net/u011439289/article/details/42126507 今天开始参与公司项目的代码编写,公司内部采用的是gitlib,所以用到了So ...

  2. Cookies和Session理论总结

    今天主要学习了Cookies和Session,网络上关于这方面的知识可谓很多,让人眼花缭乱,在此作一个小结.本文不讲多,不讲什么高大上的,只是抛出一块砖,讲三个问题:①什么是Cookies和Sessi ...

  3. 最小生成树之Prim算法,Kruskal算法

    Prim算法 1 .概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gr ...

  4. ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA

    Centos5.5 安装Oracle11g客户端,配置了本地的net服务后,用sqlplus连接报错: tnsnames.ora配置如下 orcl = (DESCRIPTION = (ADDRESS ...

  5. Selenium WebDriver + Grid2 + RSpec之旅(六) ----多浏览器的并行执行

    Selenium WebDriver + Grid2 + RSpec之旅(六) ----多浏览器的并行执行 由于浏览器的发展,浏览器种类繁多.为了保证系统能在各种浏览器上叱咤风云,减少测试人员的测试工 ...

  6. poj 2451 Uyuw's Concert(半平面交)

    Uyuw's Concert Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8580   Accepted: 3227 De ...

  7. JavaScript高级程序设计39.pdf

    第13章 事件 JavaScript与HTML之间的交互式通过事件来实现的. 事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出了完全相反的事件流概念,IE是事件冒泡流,Nets ...

  8. Bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通 广搜,深搜

    1687: [Usaco2005 Open]Navigating the City 城市交通 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 122  So ...

  9. 用C++的类做三种优先队列的实现

    学过数据结构的都知道优先队列这种东西,普通的队列是依据入队顺序,先入队的先出队,而优先队列则是依照键值,键值越大(或越小),就越先出队. 所以,优先队列基本支持push,pop,empty,size, ...

  10. 学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀

    本篇文章中,我们一起探究了图像处理中,最基本的形态学运算--膨胀与腐蚀.浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试.......... 一.理论 ...