Hadoop学习笔记Word格式文档下载.docx

上传人:b****1 文档编号:419654 上传时间:2023-04-28 格式:DOCX 页数:17 大小:894.88KB
下载 相关 举报
Hadoop学习笔记Word格式文档下载.docx_第1页
第1页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第2页
第2页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第3页
第3页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第4页
第4页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第5页
第5页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第6页
第6页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第7页
第7页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第8页
第8页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第9页
第9页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第10页
第10页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第11页
第11页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第12页
第12页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第13页
第13页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第14页
第14页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第15页
第15页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第16页
第16页 / 共17页
Hadoop学习笔记Word格式文档下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Hadoop学习笔记Word格式文档下载.docx

《Hadoop学习笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Hadoop学习笔记Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。

Hadoop学习笔记Word格式文档下载.docx

●用函数式编程(MapReduce)代替声明式查询(SQL)

在MapReduce中,实际的数据处理步骤是由程序员指定的,而SQL是非过程化的语言。

●用离线批量处理代替在线处理

Hadoop是专为离线处理和大规模数据分析而设计的,它并不适合那种对几个记录随机读写的在线事务处理模式。

Hadoop最适合一次写入、多次读取的数据存储需求。

在这方面它就像SQL世界中的数据仓库。

4.理解MapReduce

MapReduce也是一种数据处理模型,它最大的优点是容易扩展到多个计算节点上处理数据。

在MapReduce模型中,数据处理原语被称为mapper和reducer。

分解一个数据处理应用为mapper和reducer有时是很繁琐的,但是一旦以MapReduce的形式写好一个应用程序,仅需修改配置就可以将它扩展到集群上运行。

正是这种简单的可扩展性使得MapReduce模型吸引了众多程序员。

5.当你用MapReduce模型来编写应用程序时,Hadoop将替你管理所有与可扩展性相关的底层问题。

6.相同程序在MapReduce中的扩展

Mapper作用:

将输入进行过滤与转换

Reducer作用:

将mapper的输出进行聚合

MapReduce使用列表和键/值对作为其主要的数据原语。

在MapReduce框架中编写应用程序就是定制化mapper和reducer的过程。

map和reduce函数必须遵循以下对键和值类型的约束:

1)应用的输入必须组织为一个键/值对的列表list(<

k1,v1>

)。

输入格式可能看起来是不受约束的,但在实际中它非常简洁。

用于处理多个文件的输入格式通常为list(<

Stringfilename,Stringfile_content>

用于处理日志文件这种大文件的输入格式为list(<

Integerline_number,Stringlog_event>

2)含有键/值对的列表被拆分,进而通过调用mapper的map函数对每个单独的键/值对<

进行处理。

在这里,键k1经常被mapper所忽略。

mapper转换每个<

对并将之放入<

k2,v2>

对的列表中。

这种转换的细节很大程度上决定了MapReduce程序的行为。

值得注意的是,处理键/值对可以采用任意的顺序。

而且,这种转换必须是封闭的,使得输出仅依赖于一个单独的键/值对。

3)所有mapper的输出(在概念上)被聚合到一个包含<

对的巨大列表中。

所有共享相同k2的对被组织在一起形成一个新的键/值对<

k2,list(v2)>

框架让reducer来分别处理每一个被聚合起来的<

7.Hadoop脚本

Usage:

hadoop[--configconfdir]COMMAND

这里COMMAND为下列其中一个:

namenode-format格式化DFS文件系统

secondarynamenode运行DFS的第二个namenode

namenode运行DFS的namenode

datanode运行一个DFS的datanode

dfsadmin运行一个DFS的admin客户端

fsck运行一个DFS文件系统的检查工具

fs运行一个普通的文件系统用户客户端

balancer运行一个集群负载均衡工具

jobtracker运行MapReduce的jobTracker节点

pipes运行一个Pipes作业

tasktracker运行一个MapReduce的taskTracker节点

job处理MapReduce作业

version打印版本

jar<

jar>

运行一个jar文件

distcp<

srcurl>

<

desturl>

递归地复制文件或者目录

archive-archiveNameNAME<

src>

*<

dest>

生成一个Hadoop档案

daemonlog获取或设置每个daemon的log级别

或CLASSNAME运行名为CLASSNAME的类大多数命令会在使用w/o参数时打出帮助信息。

8.运行一个(java)Hadoop程序的命令为bin/hadoopjar<

就像命令中显示的那样,用Java写的Hadoop程序被打包为jar执行文件。

9.wordcount的源码,安装后放在src/examples/org/apache/hadoop/examples/WordCount.java中。

第2章初始Hadoop

◆Hadoop的结构组成

◆安装Hadoop及其3种工作模式:

单机、伪分布、全分别。

◆用于监控Hadoop安装的Web工具

一台机器来运行Hadoop,则为单机或伪分布模式,用于程序的开发。

2.1Hadoop的构造模块

在一个全配置的集群上,“运行Hadoop”意味着在网络分布的不同服务器上运行一组守护进程(daemon)。

这些守护进程有特殊的角色,一些仅存在单个服务器上,一些则运行在多个服务器上。

它们包括:

NameNode(名称节点)

DataNode(数据节点)

SecondaryNameNode(次名称节点)

JobTracker(作业跟踪节点)

TaskTracker(任务跟踪节点)

1)NameNode

Hadoop在分布式计算与分布式存储中都采用了主/从(master/slave)结构。

分布式存储系统被称为Hadoop文件系统(HDFS)。

NameNode位于HDFS的主端,它指导从端的DataNode执行底层的I/O任务。

NameNode是HDFS的书记员,它跟踪文件如何被分割成文件块,而这些块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常。

运行NameNode消耗大量的内存和I/O资源。

因此,为了减轻机器的负载,驻留NameNode的服务器通常不会存储用户数据或执行MapReduce程序的计算任务。

这意味着NameNode服务器不会同时是DataNode或者TaskTracker。

不过NameNode的重要性也带来了一个负面影响——Hadoop集群的单点失效。

对于任何其他的守护进程,如果它们所驻留的节点发生软件或硬件失效,Hadoop集群很可能还会继续平稳运行,不然你还可以快速重启这个节点。

但这样的方法并不适用于NameNode。

2)DataNode

每一个集群上的从节点都会驻留一个DataNode守护进程,来执行分布式文件系统的繁重工作——将HDFS数据块读取或者写入到本地文件系统的实际文件中。

当希望对HDFS文件进行读写时,文件被分割为多个块,由NameNode告知客户端每个数据块驻留在哪个DataNode。

客户端直接与DataNode守护进程通信,来处理与数据块相对应的本地文件。

而后,DataNode会与其他DataNode进行通信,复制这些数据块以实现冗余。

DataNode不断向NameNode报告。

初始化时,每个DataNode将当前存储的数据块告知NameNode。

在这个初始映射完成后,DataNode任会不断地更新NameNode,为之提供本地修改的相关信息,同时接收指令创建、移动或删除本地磁盘上的数据块。

3)SecondaryNameNode

SecondaryNameNode(SNN)是一个用于监测HDFS集群状态的辅助守护进程。

像NameNode一样,每个集群有一个SNN,它通常也独占一台服务器。

SNN与NameNode的不同在于它不接收或记录HDFS的任何实时变化。

相反,它与NameNode通信,根据集群所配置的时间间隔获取HDFS元数据的快照。

由于NameNode是Hadoop集群的单一故障点,而SNN的快照可以有助于减少停机的时间并降低数据丢失的风险,然而,NameNode的失效处理需要人工的干预,即手动地重新配置集群,将SNN用作主要的NameNode。

4)JobTracker

JobTracker守护进程是应用程序和Hadoop之间的纽带。

一旦提交代码到集群上,JobTracker就会确定执行计划,包括决定处理哪些文件、为不同的任务分配节点以及监控所有任务的运行。

如果任务失败,JobTracker将自动重启任务,但所分配的节点可能会不同,同时受到预定义的重试次数限制。

每个Hadoop集群只有一个JobTracker守护进程。

它通常运行在服务器集群的主节点上。

5)TaskTracker

与存储的守护进程一样,计算的守护进程也遵循主/从架构:

JobTracker作为主节点,监测MapReduce作业的整个执行过程,同时,TaskTracker管理各个任务在每个从节点上的执行情况。

每个TaskTracker负责执行由JobTracker分配的单项任务。

虽然每个从节点上仅有一个TaskTracker,但每个TaskTracker可以生成多个JVM(Java虚拟机)来并行地处理许多map或reduce任务。

图:

JobTracker和TaskTracker的交互。

当客户端调用JobTracker来启动一个数据处理作业时,JobTracker会将工作切分,并分配不同的map和reduce任务到集群中的每个TaskTracker上

一个典型Hadoop集群的拓扑图。

这是一个主/从架构,其中NameNode和JobTracker为主端,DataNode和TaskTracker为从端

2.2为Hadoop集群安装SSH

为使主节点能远程地访问到集群中的每个节点,Hadoop使用了无口令的SSH(SecureShell)协议。

SSH采用标的公钥加密来生成一对用户验证密钥——一个公钥、一个私钥。

公钥被存储在集群的每个节点上,私钥则由主节点在试图访问远端节点时发送过来。

结合这两段信息,目标机可以对这次登录尝试进行验证。

1)验证SSH安装:

使用“which”命令

若没安装,则可以通过以下步骤安装:

2)生成SSH密钥对

执行ssh-keygen命令生成密钥文件,如下图所示:

3)将公钥分布并登录验证

2.3运行Hadoop

在运行Hadoop之前需要做一些配置:

hadoop-env.sh:

JAVA_HOME

(hadoop-env.sh还包含定义Hadoop环境的其他变量,如日志目录的位置、Java类所在的目录,等待)

Hadoop的设置主要包含在XML配置文件中。

在0.20版本以前,它们是hadoop-default.xml和hadoop-site.xml。

在0.20及其以后的版本中,hadoop的设置主要包含在3个XML文件中:

core-site.xml,hdfs-site.xml和mapred-site.xml。

1)本地(单机)模式

单机模式是Hadoop的默认模式。

当首次解压Hadoop的源码包是,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。

在这种模式下3个XML文件均为空。

当配置文件为空时,Hadoop会完全运行在本地。

因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。

该模式主要用于开发调试MapReduce程序的应用逻辑,而不会与守护进程交互,避免引起额外的复杂性。

2)伪分布模式

伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。

该模式在单机模式上增加了代码调试功能,允许你检查内存使用情况、HDFS输入输出,以及其他的守护进程交互。

此种模式,3个配置文件的配置实例入戏:

core-site.xml

mapred-site.xml

hdfs-site.xml

core-site.xml和mapred-site.xml中分别指定了NameNode和JobTracker的主机名与端口。

在hdfs-site.xml中指定了HDFS的默认副本数,因为仅运行在一个节点上,这里副本数为1。

我们还需要在文件masters中指定SNN的位置,并在文件slaves中指定从节点的位置。

虽然所有的守护进程都运行在同一节点上,它们任然像分布在集群中一样,彼此通过相同的SSH协议进行通信。

对于单节点的操作,仅需检查一下机器是否允许对自己运行ssh。

在启动Hadoop之前,还需要格式化HDFS:

启动Hadoop:

结束Hadoop:

单机模式和伪分布模式均用于开发与调试的目的。

真实Hadoop集群的运行采用的是第三种模式,即全分布模式。

3)全分布模式

服务器名称:

master—集群的主节点,驻留NameNode和JobTracker守护进程。

backup—驻留SNN守护进程的节点。

hadoop1,hadoop2,hadoop3,…—集群的从节点,驻留DataNode和TaskTracker守护进程。

全分布式模式的配置文件样例:

主要不同在于以下两点:

⏹明确地声明了NameNode和JobTracker守护进程所在的主机名。

⏹增大了HDFS的备份参数以发挥分布式存储的优势。

还需要更新master和slaves文件来指定其他的守护进程的位置:

 

将这些文件复制到集群上的所有节点之后,一定要格式化HDFS以准备好存储数据:

启动Hadoop守护进程:

2.4基于Web的集群用户界面

以下介绍Hadoop用于监控集群健康状态的Web界面。

与搜寻日志和目录相比,通过浏览器的界面,可以更快地获得所需的信息。

NameNode通过端口50070提供常规报告,描绘集群上HDFS的状态视图。

通过这个界面,可以浏览文件系统,检查集群每个DataNode的状态,并详细查看Hadoop守护进程的日志来判断集群当前运行是否正确。

Hadoop还提供了一个MapReduce作业运行时状态的近视视图。

它包括大量的信息,如MapReduce中任务的运行时状态,以及整个作业的详细报告。

后者尤为重要——这些日志描述了哪个节点执行了哪个任务,以及需要完成每个任务所需的时间或资源。

最后,还可以获得Hadoop对每个作业的配置。

MapReduce的Web界面快照。

这个工具可以监控活跃的MapReduce作业,并访问每个map和reduce任务的日志。

还可以获得以前提交作业的日志,以辅助程序的调试

一个特定MapReduce作业的详细配置,这些信息在通过调整参数来优化程序性能时可能有用

第3章Hadoop组件

◆管理HDFS中的文件

◆分析MapReduce框架中的组件

◆读写输入输出数据

HDFS,它存储着Hadoop应用将要处理的数据。

3.1HDFS文件操作

HDFS是一种文件系统,专为MapReduce这类框架下的大规模分布式数据处理而设计。

可以把一个大数据集(比如说100TB)在HDFS中存储为单个文件,而大多数其他的文件系统无力实现这一点。

因为HDFS并不是一个天生的Unix文件系统,不支持像ls和cp这种标准的Unix文件命令,也不支持如fopen()和fread()这样的标准文件读写操作。

另一方面,Hadoop确也提供了一套与Linux文件命令类似的命令行工具。

1.基本文件命令

Hadoop的文件命令采取的形式为:

Hadoopfs-cmd<

args>

cmd:

是具体的文件命令。

<

:

是一组数目可变的参数。

Hadoop中最常用的文件管理任务,其中包括:

Ø

添加文件和目录

获取文件

删除文件

指定文件和目录确切位置的URI:

Hadoop的文件命令既可以与HDFS文件系统交互,也可以和本地文件系统交互。

URI可以精确地定位一个特定文件或目录的位置。

完整的URI格式为:

scheme:

//authority/path

Scheme类似一个协议。

它可以使hdfs或file,分别指定HDFS文件系统或本地文件系统。

Authority是NameNode的主机名

Path是文件或目录的路径

例如:

Hadoopfs-cathdfs:

//localhost:

9000/user/chuck/example.txt

当在本地文件系统和HDFS之间复制文件时,Hadoop中的命令(如put和get)会分别把本地文件系统作源和目的,而不需要指定scheme为file。

对于其他命令,如果未设置URI中scheme:

//authority,就会采用Hadoop的默认配置。

该配置在core-site.xml文件中:

在此配置下,URIhdfs:

9000/user/chuck/example.txt缩短为/user/chuck/example.txt

HDFS默认当前工作目录为/user/$USER,其中$USER是你的登录用户名。

1)添加文件和目录

2)索引文件

3)删除文件

4)查阅帮助

2.编程读写HDFS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2