Hadoop入门实战手册.doc

上传人:sk****8 文档编号:3551377 上传时间:2019-06-04 格式:DOC 页数:56 大小:876KB
下载 相关 举报
Hadoop入门实战手册.doc_第1页
第1页 / 共56页
Hadoop入门实战手册.doc_第2页
第2页 / 共56页
Hadoop入门实战手册.doc_第3页
第3页 / 共56页
Hadoop入门实战手册.doc_第4页
第4页 / 共56页
Hadoop入门实战手册.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、北京宽连十方数字技术有限公司 公开 内部公开机密 绝密Hadoop入门实战手册北京宽连十方数字技术有限公司技术研究部(2011年7月)北京宽连十方数字技术有限公司 公开 内部公开机密 绝密目录1 概述 .41.1 什么是Hadoop? .41.2 为什么要选择Hadoop ? .51.2.1 系统特点 .51.2.2 使用场景 .52 术语 .53 Hadoop的单机部署 .63.1 目的 .63.2 先决条件 .63.2.1 支持平台 .63.2.2 所需软件 .63.2.3 安装软件 .73.3 下载 .73.4 运行Hadoop集群的准备工作 .73.5 单机模式的操作方法 .73.6

2、伪分布式模式的操作方法 .83.6.1 配置 .83.6.2 免密码ssh 设置 .93.6.3 执行 .94 Hadoop集群搭建过程手记 .124.1 免密码SSH设置 .124.2 Hadoop软件安装 .124.3 Master(85)配置 .134.4 Slave(60,245上)配置 .144.5 初始化和启动hadoop 集群 .154.5.1 初始化文件系统 .154.5.2 启动Hadoop .154.5.3 停止Hadoop .174.6 测试 .174.7 管理界面与命令 .194.7.1 hdfs运行状态界面 .194.7.2 Map-reduce的运行状态界面 .20

3、4.7.3 直接的命令行查看 .204.7.1 运行的进程查看 .215 架构分析 .235.1 HDFS .235.1.1 HDFS的三个重要角色 .245.1.2 HDFS设计特点 .255.2 MapReduce.265.2.1 算法介绍 .26北京宽连十方数字技术有限公司 公开 内部公开机密 绝密5.2.2 Hadoop框架下的mapreduce .285.3 综合架构分析 .296 Hadoop的应用 .317 系统维护 .317.1 Hadoop的系统监控 .317.2 Hadoop中的命令(Command )总结 .327.3 NameNode与JobTracker单点故障说明

4、.327.4 经验总结 .327.5 如何在一个hadoop 集群新增或删除一些机器而不重启 .337.5.1 新增节点 .337.5.2 删除节点 .347.6 其它日常问题说明 .367.6.1 datanode启动失败,各slave节点的namespaceIDs 与masters不同 .367.6.2 taskTracker和jobTracker 启动失败 .377.6.3 Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out .377.6.4 Too many fetch-failures.387.6.5 能够启动

5、datanode ,但无法访问,也无法结束的错误 .387.6.6 java.io.IOException: Could not obtain block:.387.6.7 java.lang.OutOfMemoryError: Java heap space .387.6.8 解决hadoop OutOfMemoryError问题: .397.6.9 Hadoop java.io.IOException:.397.7 防火墙的端口开放要求 .397.7.1 与HDFS 有关的地址及端口属性 .397.7.2 与MapReduce 有关的地址及端口属性 .418 附录 .428.1 hadoo

6、p历史 .428.2 Hadoop大记事 .438.3 Hadoop的几个主要子项目 .448.4 官方集群搭建参考 .448.4.1 配置文件 .448.4.2 集群配置说明 .44北京宽连十方数字技术有限公司 公开 内部公开机密 绝密1 概述作什么事情之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。避免将技术误用于不适合的场景,这一点非常重要。1.1 什么是Hadoop ?Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入。它受到最先由 Goog

7、le Lab 开发的 MapReduce 和 Google File System 的启发。2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。Hadoop 并不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的基础框架。它由 Apache 基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop 是一个可以更容易开发和运行处理大规模数据的软件平台。下图是 Hadoop

8、的体系结构:Hadoop框架中最核心的设计就是:MapReduce 和HDFS。1) MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce 就是“任务的分解与结果的汇总”。2) HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。1.2 为什么要选择Hadoop?1.2.1 系统特点下面列举 hadoop 主要的一些特点:1) 扩容能力(Scalable ):能可靠地( reliably)存储和处理千兆字节(PB )数据。北京宽连十方数字技术有限公司 公

9、开 内部公开机密 绝密2) 成本低(Economical ):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。3) 高效率(Efficient):通过分发数据,hadoop 可以在数据所在的节点上并行地( parallel)处理它们,这使得处理非常的快速。4) 可靠性(Reliable):hadoop 能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。1.2.2 使用场景个人觉得最适合的就是海量数据的分析,其实Google最早提出MapReduce也就是为了海量数据分析。同时HDFS最早是为了搜索引擎实现而开发的,后来才

10、被用于分布式计算框架中。海量数据被分割于多个节点,然后由每一个节点并行计算,将得出的结果归并到输出。同时第一阶段的输出又可以作为下一阶段计算的输入,因此可以想象到一个树状结构的分布式计算图,在不同阶段都有不同产出,同时并行和串行结合的计算也可以很好地在分布式集群的资源下得以高效的处理。2 术语1) Namenode: HDFS 采用 master/slave 架构。一个 HDFS 集群是由一个 Namenode和一定数目的 Datanodes 组成。Namenode 是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。Namenode 执行文件系统的名字空

11、间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode 节点的映射2) Datanode: 集群中的 Datanode 一般是一个节点一个,负责管理它所在节点上的存储。HDFS 暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组 Datanode上。Datanode 负责处理文件系统客户端的读写请求。在 Namenode 的统一调度下进行数据块的创建、删除和复制。3) Secondnamenode: 光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn

12、)就是 NameNode(nn)的热备进程。其实不是。snn 是HDFS 架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存 namenode 中对 HDFS metadata 的信息的备份,并减少namenode 重启的时间。4) Jobtracker 和 Tasktracher: JobTracker 是 MapReduce 框架中最主要的类之一,所有 job 的执行都由它来调度,而且 Hadoop 系统中只配置一个 JobTracker 应用。它们都是由一个 master 服务 JobTracker 和多个运行于多个节点的slaver 服务 Tas

13、kTracker 两个类提供的服务调度的。 master 负责调度job 的每一个子任务 task 运行于 slave 上,并监控它们,如果发现有失败的 task 就重新运行它,slave 则负责直接执行每一个北京宽连十方数字技术有限公司 公开 内部公开机密 绝密task。TaskTracker 都需要运行在 HDFS 的 DataNode 上,而 JobTracker则不需要,一般情况应该把 JobTracker 部署在单独的机器上。3 Hadoop的单机部署参考:http:/hadoop.apache.org/common/docs/current/single_node_setup.ht

14、ml#Supported+Platforms3.1 目的本章节的目的是帮助你快速完成单机上的 Hadoop 安装与使用以便你对 Hadoop 分布式文件系统(HDFS)和 Map-Reduce 框架有所体会,比如在 HDFS 上运行示例程序或简单作业等。3.2 先决条件3.2.1 支持平台1) GNU/Linux 是产品开发和运行的平台。 Hadoop 已在有 2000 个节点的 GNU/Linux主机组成的集群系统上得到验证。2) Win32 平台是作为 开发平台 支持的。由于分布式操作尚未在 Win32 平台上充分测试,所以还不作为一个 生产平台 被支持。3.2.2 所需软件Linux 和

15、 Windows 所需软件包括:1. Sun JavaTM1.6.x,必须安装。2. ssh 必须安装并且保证 sshd 一直运行,以便用 Hadoop 脚本管理远端 Hadoop 守护进程。3.2.3 安装软件如果你的集群尚未安装所需软件,你得首先安装它们。以 Linux 为例:$ sudo apt-get install ssh $ sudo apt-get install rsync北京宽连十方数字技术有限公司 公开 内部公开机密 绝密3.3 下载为了获取 Hadoop 的发行版,从 Apache 的某个镜像服务器上下载最近的 稳定发 行版。下载地址:http:/ 运行Hadoop集群的

16、准备工作解压所下载的 Hadoop 发行版。编辑 conf/hadoop-env.sh 文件,至少需要将JAVA_HOME 设置为 Java 安装根路径。尝试如下命令:$ bin/hadoop 将会显示 hadoop 脚本的使用文档。现在你可以用以下三种支持的模式中的一种启动 Hadoop 集群: 单机模式 伪分布式模式 完全分布式模式3.5 单机模式的操作方法默认情况下,Hadoop 被配置成以非分布式模式运行的一个独立 Java 进程。这对调试非常有帮助。下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的 output 目录。 $ mkd

17、ir input $ cp conf/*.xml input $ bin/hadoop jar hadoop-examples-0.20.203.0.jar grep input output dfsa-z.+$ cat output/*注:语法不理解没关系看下面进一步说明显示结果1 dfsadmin北京宽连十方数字技术有限公司 公开 内部公开机密 绝密3.6 伪分布式模式的操作方法Hadoop 可以在单节点上以所谓的伪分布式模式运行,此时每一个 Hadoop 守护进程都作为一个独立的 Java 进程运行。3.6.1 配置注:以前的版本是 hadoop-site.xml,可 hadoop 在

18、0.20 版本,配置文件由以前的 hadoop-site.xml 文件变成三个配置文件 core-site.xml,hdfs- site.xml,mapred-site.xml.内在的原因是因为 hadoop 代码量越来越宠大,拆解成三个大的分支进行独立开发,配置文件也独立了conf/core-site.xml:fs.default.namehdfs:/localhost:9000conf/hdfs-site.xml:dfs.replication1conf/mapred-site.xml:mapred.job.trackerlocalhost:9001北京宽连十方数字技术有限公司 公开 内部

19、公开机密 绝密3.6.2 免密码ssh设置现在确认能否不输入口令就用 ssh 登录 localhost:$ ssh localhost如果不输入口令就无法用 ssh 登陆 localhost,执行下面的命令:$ ssh-keygen -t dsa -P -f /.ssh/id_dsa $ cat /.ssh/id_dsa.pub /.ssh/authorized_keys3.6.3 执行首先使用 hadoop 命令对 Hadoop File System (HDFS) 进行格式化。首先,请求 namenode 对 DFS 文件系统进行格式化。在安装过程中完成了这个步骤,但是了解是否需要生成干净

20、的文件系统是有用的。hadoopTEST085 hadoop-0.20.203.0$ bin/hadoop namenode format注:在确认请求之后,文件系统进行格式化并返回一些信息:11/07/12 17:47:12 INFO namenode.NameNode: STARTUP_MSG: /*STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = TEST085/202.102.110.206STARTUP_MSG: args = -formatSTARTUP_MSG: version = 0.20.203.0STARTUP_MSG: b

21、uild = http:/svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by oom on Wed May 4 07:57:50 PDT 2011*/11/07/12 17:47:12 INFO util.GSet: VM type = 32-bit11/07/12 17:47:12 INFO util.GSet: 2% max memory = 19.33375 MB11/07/12 17:47:12 INFO util.GSet: capacity

22、= 222 = 4194304 entries11/07/12 17:47:12 INFO util.GSet: recommended=4194304, actual=4194304北京宽连十方数字技术有限公司 公开 内部公开机密 绝密11/07/12 17:47:13 INFO namenode.FSNamesystem: fsOwner=hadoop11/07/12 17:47:13 INFO namenode.FSNamesystem: supergroup=supergroup11/07/12 17:47:13 INFO namenode.FSNamesystem: isPermis

23、sionEnabled=true11/07/12 17:47:13 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=10011/07/12 17:47:13 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)11/07/12 17:47:13 INFO namenode.NameNode: Caching file names occuring mor

24、e than 10 times 11/07/12 17:47:13 INFO common.Storage: Image file of size 112 saved in 0 seconds.11/07/12 17:47:13 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.11/07/12 17:47:13 INFO namenode.NameNode: SHUTDOWN_MSG: /*SHUTDOWN_MSG: Shutting down

25、NameNode at TEST085/202.102.110.206*/接下来,启动 Hadoop 守护进程。启动 Hadoop 守护进程:hadoopTEST085 hadoop-0.20.203.0$ bin/start-all.sh注:1) Hadoop 守护进程的日志写入到 $HADOOP_LOG_DIR 目录 (默认是$HADOOP_HOME/logs)2)启动 hadoop,但 ssh 端口不是默认的 22 怎么样?好在它可以配置。在 conf/hadoop-env.sh 里改下。如:export HADOOP_SSH_OPTS=“-p 1234“浏览 NameNode 和 JobTracker 的网络接口,它们的地址默认为: NameNode - http:/localhost:50070/ JobTracker - http:/localhost:50030/将输入文件拷贝到分布式文件系统:$ bin/hadoop fs -put conf input

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。