hadoop笔记
hadoop简介
hadoop运行的原理
Hadoop主要有三个方面组成:HAFS,mapreduce,Hbase
最核心的设计是mapreduce.
maprudece原理:
一个mapreduce作业通常有把输入的数据集切成若干独立的数据快,由map任务以完全并行的方式处理他们。框架会对map的输出先进行排序,然后把输出的结果输入给reduce任务,通常作业的输入和输出都会被存储在文件系统,整个框架负责任务的调度和监控,以及重新执行失败的任务。
HDFS存储的机制
HDFS的三个实体
数据快:
每个磁盘都有默认的数据快的大小,这个磁盘进行读写的基本单位,构建于单个磁盘上的文件系统,通过管理磁盘块来管理文件系统的块,该文件系统的块异步为磁盘块的整数倍。HDFS上的数据块也被划分为块大小的多个分块,与其他文件系统不同的是HDFS中小于一个块的文件不会占据整个整个块的空间。
HDFS用块存储带来的每一个明显的好处一个文件的大小可以大于网络中任意一个磁盘的容量,数据块可以利用磁盘中任意一个磁盘进行存储,第二个是简化了系统的设计,将控制单元设置为块,可简化存储管理,计算单个磁盘能存储多少块就相对容易了。
Datanode 节点
Datanode是HDFS文件系统的工作节点,他们根据存储并检索数据块,受namenode节点的调度,并且定期向namenode发送他们所存储的块的列表。
Namenode节点
Namenode管理HDFS文件系统的命名空间,它维护着文件树的所有文件和目录,这些文件以两个文件形式保存永久地保存在本地磁盘上,(命名空间镜像文件和编辑日志文件)namenode记录着每个文件中各个块的所在数据节点的信息,但并不保存这些块的位置信息,因为这些信息在系统启动时由数据节点健。
举一个例字说明mapreduce是怎么运行的
MapReduce处理数据过程主要分成2个阶段:map阶段和reduce阶段。先执行map阶段,再执行reduce阶段。
- 在正式执行map函数前,需要对输入进行“分片”(就是将海量数据分成大概相等的“块”,hadoop的一个分片默认是64M),以便于多个map同时工作,每一个map任务处理一个“分片”。
- 分片完毕后,多台机器就可以同时进行map工作了。
map函数要做的事情,相当于对数据进行“预处理”,输出所要的“关切”。
ap对每条记录的输出以<key,value> pair的形式输出。 - 在进入reduce阶段之前,还要将各个map中相关的数据(key相同的数据)归结到一起,发往一个reducer。这里面就涉及到多个map的输出“混合地”对应多个reducer的情况,这个过程叫做“洗牌”。
- 接下来进入reduce阶段。相同的key的map输出会到达同一个reducer。
reducer对key相同的多个value进行“reduce操作”,最后一个key的一串value经过reduce函数的作用后,变成了一个value。
4).Hadoop集群可以运行的3个模式?
单机(本地)模式
伪分布式模式
全分布式模式
.5) Namenode、Job tracker和task tracker的端口号是?
Namenode,70;Job tracker,30;Task tracker,60。
6)hadoop的核心配置是什么
hadoop现在拥有3个配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。这些文件都保存在conf/子目录下。
7)hdfs-site.xml的3个主要属性:
Dfs.name.dir:决定的是元数据存储的路径以及HDFS的存储方式
Dfs.data.dir 决定的是数据存储的路径
Fs.checkpoint.dir用于第二namenode
8)jps命令的用处:
这个命令可以检查namenode,datanode,task tarcker job tracket是否正常工作
9)如何在浏览器中查找namenode
如果你确实需要在浏览器中查找namenode,namenode 的端口号是50070
10)hadoop-env.sh文件是做什么的
Hadoop-env.sh文件位于conf下,提供了hadoop中JAVA_HOME的运行环境
11)是客户端还是namenode决定输入的分片:
这并不是客户端决定的,在配置文件中以及决定分片细则。