//书非借不能读也,今早从图书馆新书阅览室借来《Hadoop in Action》,最长借期7天。整理读书笔记并留下电子版以供以后方便复习。
Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。专为离线处理和大规模数据分析而设计,避免耗时的数据传输问题,适合一次写入,多次读取。
特性:方便、健壮、可扩展、简单。
MapReduce
分为两个阶段:mapping 和 reducing
每阶段定义一个数据处理函数,称为mapper和reducer
在mapping阶段,MapReduce获取输入数据并将数据单元装入mapper
在ruducing阶段,reducer处理来自mapper的所有输出,并给出最终结果。
简而言之,mapper将输入进行过滤与转换,reducer完成聚合。
处理过程:
1)应用的输入必须组织为一个键/值对的列表list(<k1,v1>)。如,用于处理日志文件的输入格式为list(<Integer line_number,String log_event>);
2)含有键/值对的列表被拆分,通过调用mapper的map函数对每个单独的键/值对<k1,v1>进行处理;
3)所有的mapper输出被聚合到一个包含<k2,v2>对的巨大列表中,所有共享相同k2的对被组织在一起形成新的<k2,list(v2)>.
|
input
|
output
|
map
|
<k1,v1>
|
list(<k2,v2>)
|
reduce
|
<k2,list(v2)>
|
list(<k3,v3>)
|
Hadoop的三种模式:
1.单机模式
配置文件conf为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式不使用HDFS,也不加载任何Hadoop守护进程。该模式主要用于开发调试MapReduce程序的逻辑。
2.伪分布模式
在“单节点集群”运行Hadoop,其中所有的守护进程都运行在同一台机器上。它具备生产集群的所有功能及“节点”,分别运行在不同的JVM上。所有的软件组件都是分布式的,与生产集群的区别仅仅在于系统和硬件规模上。
3.全分布模式
明确地声明NameNode和JobTracker守护进程所在的主机名。HDFS中的文件块默认有3份备份。
模式间的切换:
不要不断地编辑xml文件,而是使用符号链接,为做到这一点,需要为每一种模式分别生成一个配置目录,并相应的放入恰当版本的xml。如,有三个配置文件夹conf.standalone,conf.pseudo,conf.cluster 分别作为三种模式的配置文件。可以使用ln命令实现,如ln -s conf.custer conf.
----------------------------------------------------------------------
节点
1.NameNode
Hadoop分布式计算与分布式存储都采用了主/从(master/slave)结构。分布式存储系统被称为Hadoop文件系统,简称HDFS。NameNode位于HDFS的主端,它指导从端的DataNode执行底层的I/O任务。NameNode是Hadoop的书记员,它跟踪文件如何被分割成文件块,而这些文件块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常。运行NameNode要消耗大量的内存和I/O资源。
2.DataNode
每一个集群上的从节点都会驻留一个DataNode守护进程,来执行文件系统的工作——将HDFS数据块读取或者写入到本地文件系统的实际文件中。当希望对HDFS文件进行读写时,文件被分割成多个块,由NameNode告知客户端每个数据块驻留在哪个DataNode,客户端直接与DataNode守护进程通信,来处理与数据块相对应的本地文件。而后,DataNode会与其他DataNode通信,复制这些数据块以实现冗余。
3.SecondaryNameNode
是一个用于检测HDFS集群状态的辅助守护进程,它与NameNode通信,根据集群所配置的时间间隔获取HDFS元数据的快照。
4.JobTracker
是应用程序和Hadoop之间的纽带,一旦提交代码到集群上,JobTracker就会确定执行计划,包括决定处理哪些文件,为不同的文件分配节点及监控所有任务的执行 。每个Hadoop集群只有一个JobTracker守护进程,通常运行在服务器集群的主节点上。
5.TaskTracker
管理各个任务在每个从节点上的执行情况。每个TaskTracker负责执行有JobTracker分配的单项任务。
Hadoop集群典型的拓扑图,主/从结构。
HDFS基本的文件命令:
格式: hadoop fs -cmd <args>
其中,cmd代表具体的文件命令,与unix对应的命令相同,args表示可变的参数。
如,
hadoop fs ——获取完整的可用命令列表
hadoop fs -ls / ——返回根目录下/user的信息
hadoop fs -lsr / ——返回根目录下所有文件和子目录
hadoop fs -put example.txt . ——把本地文件复制到HDFS的默认目录中
hadoop fs -put example.txt /user/hadoop
hadoop fs -get example.txt . ——把HDFS中的文件复制到本地
hadoop fs -cat ——在命令行中显示文件内容
hadoop fs -rm ——删除文件
分享到:
相关推荐
《Hadoop高级编程——构建与实现大数据解决方案》本书关注用于构建先进的、基于Hadoop的企业级应用的架构和方案,并为实现现实的解决方案提供深入的、代码级的讲解。本书还会带你领略数据设计以及数据设计如何影响...
Hadoop高级编程——构建与实现大数据解决方案.rar
hadoop双机热备——facebook hadoop HA的资料整理,流汗整理
Hadoop快速入门——第四章、zookeeper安装包
Hadoop 权威指南读书笔记 我自己画的一张图
Hadoop权威指南----读书笔记
Hadoop学习笔记,自己总结的一些Hadoop学习笔记,比较简单。
此压缩包主要包含的是是hadoop的7个主要的配置文件,core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、hadoop-env.sh、mapred-env.sh、yarn-env.sh精简配置优化性能,具体相关参数根据集群规模适当...
hadoop实战——初级部分学习笔记 2
在VMware上部署hadoop集群,首先需要安装jdk。 掌握在完全分布的整合平台中快捷的进行JDK的安装 (1)完全分布模式中JDK的安装和验证; (2)在集群中所有主机上完成JDK的安装; 所有主机上JDK相关命令能够正常使用
Hadoop 学习笔记.md
Hadoop2.7.1——NFS部署
hadoop学习笔记,hadoop简介,适用于hadoop入门,讲解hadoop安装,使用,基本原理,大数据,分布式等概念
hadoop 学习笔记,从搭建环境开始到具体实验。包括hdfs配置,yarn配置,分布式配置,如何编写mapreuduce 一步一步手把手,最后项目是hadoop 与 javaweb
hadoop集群配置之————flume安装配置(详细版)
Hadoop高级编程- 构建与实现大数据解决方案.Hadoop高级编程- 构建与实现大数据解决方案