MR系类:

①hadoop生态

>MapReduce:分布式处理

>Hdfs:hadoop distribut file system

>其他相关框架

->unstructured data:收集日志 flume,scribe

->structured data:sqoop hdfs与关系型数据库相互转换

->OLTP:HBASE(低延时) online transection process

->monitor/manage:监控集群状态

->Hight level interfaces:JAQL HIVE

->support:

->workflow:

->more Hight level interfaces:封装了算法的高级接口 数据挖掘算法BI

②hadoop:分布式存储和计算平台

③hadoop核心系统:

>hdfs:

->主从分布式:

namenode(主节点):管理从节点,提供API,管理文件与block,block与datanode之间的关系。(存储单位为block)

datanode(从节点):存储数据,文件被分成block存储在磁盘,同时block是有副本的。

>mapReduce:

->主从分布式:

jobTracker(主节点):提供api,分配任务给tasktracker,监控其执行情况

taskTracker(从节点):执行分配的计算任务。

④hadoop分布式特点:

>扩容能力:

>成本低:低廉主机,团体集群。

>高效率:并行执行

>可靠性:自动维护数据副本

⑤hadoop集群:

>伪分布:

①安装jdk,hadoop软件

>真实分布:

⑥HDFS学习笔记:

>概念:

->dfs:分布式文件系统,适合于一次写入多次查询的情况,不支持并发写,不适合小文件。

->namenode:维护和管理目录系统,

->HDFS:

->namenode:元数据(目录数据):

->fsimage:目录数据

->edit:用户操作的事务,当事务完成后,会将新的目录数据加入fsimage.

->secondaryNode:合并fsimage与edit

->datanode:物理数据(原始数据):物理数据本身

->文件块block:默认大小64M,当不足64M时,占用实际的大小的物理空间。

->replication:副本,默认三个。优先放在本机的datanode中。

->关于HDFS的HA:

->在配置文件中设置多个namenode的copy

->secondaryNode:将edit合并到fsimage。

>shell接口:

->hadoop fs 命令 -ls,-lsr,-put,-get,-text等

->hadoop fs ls = hadoop fs -ls hdfs://hadoop:9000/

>java接口:

->IOUtil连接普通文件系统和HDFS

->FileSystem:hds中定义的文件系统对象

>RPC远程过程调用:Remote process call 不同进程间的方法调用

->客户端调用服务器端实现VersionedProtocol协议的接口中的方法。

->hadoop中存在的5的服务进程,就是RPC的服务器端

The NameNode controls two critical tables:

1)  filename->blocksequence (namespace) 外存中,静态的,存放在fsimage

2)  block->machinelist ("inodes") 内存中,namenode启动的时候重建。

hdfs的唯一一个核心类:FileSystem

⑦MapReduce:

八个步骤:

1>Map

1.1>解析hdfs中的文件,每行数据形成<k1,v1> :k1为每行开始位置,v1为每行的内容

1.2>覆盖map(),接受1.1产生的<k1,v1>进行处理,转换成新的<k2,v2> :如对每行的数据即v1进行拆分,就可以得到多个v2

1.3>对1.2中输出的数据<k2,v2>进行分区,默认为1个:

1.4>对1.3中输出的数据<k3,v3>进行排序(按照k3),分组(相同key的不同value放在一个集合中),输出<k4,{v4}>

1.5>对1.4中输出的数据进行规约。

2>Reduce

2.1>多个map任务的输出,按照不同的分区,通过网络 copy到不同的reduce节点中:

2.2>对2.1中获得的数据,进行合并排序,覆盖reduce函数,接受集合数据,统计k4对应集合中所有值的和,输出<k5,v5>:

2.3>对2.2中产生的<k5,v5>的输出,写回hdfs中。

Hadoop数据类型:

Hadoop key/value数据必须实现的接口:

①writeable接口:

public interface Writable {

* Serialize the fields of this object to <code>out</code>.

void write(DataOutput out) throws IOException;

* Deserialize the fields of this object from <code>in</code>.

void readFields(DataInput in) throws IOException;

}

Hadoop key数据必须实现的接口:

②Comparable接口:

③WritableComparable接口:

comparaTo()方法

1>序列化和反序列化必须实现一下几个方法:

①equals()

②hashcode()

③tostring()

④必须有无参构造方法,为了方便反射创建对象。

2>序列化:将结构化对象转化为字节流,以便在网络传输或者保存在磁盘进行永久存储。

·反序列化:将序列化字节流,反序列化为结构化对象。

为了实现对序列化字节对象的直接比较,

①comparator接口:

hadoop基础学习的更多相关文章

  1. Hadoop基础学习(一)分析、编写并执行WordCount词频统计程序

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jiq408694711/article/details/34181439 前面已经在我的Ubuntu ...

  2. Hadoop基础学习框架

    我们主要使用Hadoop的2个部分:分布式文件存储系统(HDFS)和MapReduce计算模型. 关于这2个部分,可以参考一下Google的论文:The Google File System 和 Ma ...

  3. hadoop基础学习---数据管理策略

    上图中的ABCDE都代表默认大小64M的数据块 nameNode与dataNode之间有一个心跳机制,datanode每隔多秒钟定期的发送心跳到nameNode

  4. hadoop基础学习---基本概念

    1.组成部分HDFS和MapReduce 2.HDFS这几架构

  5. 零基础学习hadoop到上手工作线路指导

    零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...

  6. 零基础学习Hadoop

    零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...

  7. 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce(转)

    零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce:http://www.aboutyun.com/thread-7567-1-1.html mapreduce学习目录总结 ...

  8. 零基础学习hadoop开发所必须具体的三个基础知识

    大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...

  9. 零基础学习hadoop到上手工作线路指导(编程篇)

    问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如 ...

随机推荐

  1. shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

    mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作m ...

  2. GETDATE()

    定义和用法 GETDATE() 函数从 SQL Server 返回当前的时间和日期. 语法 GETDATE() 实例 例子 1 使用下面的 SELECT 语句: SELECT GETDATE() AS ...

  3. 15.5.5 【Task实现细节】围绕 await 表达式的控制

    任何 await 表达式均表示执行路径的一个分支.首先,被等待的异步操作得到一个awaiter,然后检查其 IsCompleted 属性.若返回 true ,即可立即获得结果并继续.否则,需进行以下处 ...

  4. Coloring Flame Graphs: Code Hues

    转自:http://www.brendangregg.com/blog/2017-07-30/coloring-flamegraphs-code-type.html I recently improv ...

  5. [luogu3244 SHOI2016] 黑暗前的幻想乡(容斥原理+矩阵树定理)

    传送门 Description 给出 n 个点和 n−1 种颜色,每种颜色有若干条边.求这张图多少棵每种颜色的边都出现过的生成树,答案对 109+7 取模. Input 第一行包含一个正整数 N(N& ...

  6. UVa OJ 679 - Dropping Balls

    本题是一个二叉树问题——Perfect Binary Tree. 一个完美二叉树(PBT)的深度为D,从根结点开始,按层次遍历顺序编号为1,2,...,2D-1. 有若干个球,依次由根结点落下.当一个 ...

  7. ELK之Logstash配置文件详解

    Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力.它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地.它以插件的形式来组织功能,通过配置文件来描述需要插件做什么, ...

  8. pt-kill--- MySQL数据库CPU飙升紧急处理方法

    MySQL数据库CPU飙升紧急处理方法 [日期:2014-01-22] 来源:Linux社区  作者:hcymysql [字体:大 中 小]       运行平稳的数据库,如果遇到CPU狂飙,到80% ...

  9. error at ::0 can't find referenced pointcut...解决方法

    error at ::0 can't find referenced pointcut...解决方法 学习了:http://dyldragon.iteye.com/blog/512612 升级aspe ...

  10. Errors occurred during the build. Errors running builder &#39;Integrated External Tool Builder&#39; on proje

    Errors occurred during the build. Errors running builder 'Integrated External Tool Builder' on proje ...