实验一-Hadoop的安装与使用

上传人:日度 文档编号:146136938 上传时间:2020-09-26 格式:DOC 页数:7 大小:396.50KB
返回 下载 相关 举报
实验一-Hadoop的安装与使用_第1页
第1页 / 共7页
实验一-Hadoop的安装与使用_第2页
第2页 / 共7页
实验一-Hadoop的安装与使用_第3页
第3页 / 共7页
实验一-Hadoop的安装与使用_第4页
第4页 / 共7页
实验一-Hadoop的安装与使用_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验一-Hadoop的安装与使用》由会员分享,可在线阅读,更多相关《实验一-Hadoop的安装与使用(7页珍藏版)》请在金锄头文库上搜索。

1、电子信息学院实验报告书课程名:云计算技术 题 目: 实验一、Hadoop的安装与使用 实验类别 【设计】 班 级: bx1002 学 号: 31 姓 名: 杨汉标 评语:实验内容: 优秀 良好 合格 一般 不合格 报告格式: 优秀 良好 合格 一般 不合格 实验态度: 优秀 良好 合格 一般 不合格 实验结果: 优秀 良好 合格 一般 不合格 课题纪律: 优秀 良好 合格 一般 不合格 成绩: 指导教师: 杨志和 批阅时间: 年 月 日【实验环境】计算机、Java、Hadoop【实验目的】1理解云计算的基本理论知识;2理解Hadoop的基本概念3掌握如何在Linux上安装Hadoop;【实验要

2、求】1 下载Hadoop和JDK;2 安装SSH;3 对Linux进行相应配置。【基础知识】l Hadoop是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以 不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。l 程序员的开发步骤:1. 定义Mapper,处理

3、输入的 Key-Value 对,2. 定义Reducer,可选,对中间结果进行规约,输出最终结果3. 定义 InputFormat 和 OutputFormat,可选,InputFormat 将每行为 Java 类供Mapper函数使用,不定义时默认为 String。 4. 定义main 函数,在里面定义一个 Job 并运行它l Hadoop的工作过程一个集群中只有一个NameNode,可以有多个DataNodes;namenode 承担数据的位置存储信息,并将存储位置信息告诉client端;得到位置信息后,client端开始写数据;写数据的时候是将数据分块,并存储为多份(一般为3份),放在不

4、同的datanode 节点; client 先将数据写到第一个节点,在第一个节点接收数据的同时,又将它所接收的数据推送到第二个,第二个推送到第三个节点,如果有多个节点,依次类推;从图中可以知道 NameNode 不参与数据块的IO的。n NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。注意,这里需要您了解集群架构。实际的 I/O 事务并没有经

5、过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。n N

6、ameNode 也是一个通常在 HDFS 实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。DataNode 响应来自 HDFS 客户机的读写请求。它们还响应创建、删除和复制来自 NameNode 的块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。

7、如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。n 文件操作:可见,HDFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。

8、客户机也负责创建保存在相同 HDFS 名称空间中的校验和(checksum)文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)。【实验步骤】l 安装JDK(1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK sudo apt-get install sun-java6-jdk(2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容 export JAVA_HOME = (Java安装目录) export CLASSPATH = .:$JAVA_HOME/lib:$CLAS

9、SPATH export PATH = $JAVA_HOME/:PATH(3)验证Java是否安装成功输入 java -version ,输出Java版本信息即为安装成功。l 安装配置SSH(1)下载安装SSH:同样在命令行输入下面命令安装SSH sudo apt-get install ssh(2)配置无密码登录本机:在命令行输入下面两条命令 $ ssh-keygen -t rsa -P -f /.ssh/id_rsa 直接回车,完成后会在/.ssh/生成两个文件:id_rsa和id_rsa.pub;这两个成对出现,类似钥匙和锁。 再把id_rsa.pub追加到授权key里面(当前并没有au

10、thorized_keys文件) $ cat /.ssh/id_rsa.pub /.ssh/authorized_keys验证SSH是否安装成功 输入 ssh localhost 。如果显示本机登录成功就表明安装成功。l 关闭防火墙 $sudo ufw disable 注意:这步非常重要,如果不关闭,会出现找不到datanode的问题l 安装运行Hadoop(以0.20.2版本为例)(1)下载Hadoop:在http:/www.apache.org/dyn/closer.cgi/hadoop/core/页面上下载Hadoop。(2)安装配置Hadoop 单节点配置: 安装单节点的Hadoop无

11、需配置,在这种方式下,Hadoop被认作为一个单独的Java进程。 伪分布配置: 伪分布的Hadoop是只有一个节点的集群。在这个集群中,计算机既是master也是slave, 即使 namenode也是datanode,既是jobtracker也是tasktracker。配置的过程如下:1、进入conf文件夹修改下面的文件。Hadoop-env.sh中加入下面内容:export JAVA_HOME = (JAVA安装目录)core-site.xml文件内容修改为下面内容: hadoop.tmp.dir /home/zhongping/tmp fs.default.name hdfs:/loc

12、alhost:9000 hdfs-site.xml文件内容修改为下面内容:(replication默认为3,如果不修改,datanode少于三台就会报错) fs.replication 1 mapred-site.xml文件内容修改为下面内容: mapred.job.tracker localhost:9001 2、格式化Hadoop文件系统,在命令行输入命令:bin/hadoop namenode -format3、启动Hadoop,在命令行输入命令:bin/start-all.sh4、验证Hadoop是否安装成功,在浏览器中输入下面网址,如果正常打开说明安装成功。http:/localhost:50030 (mapreduce的web页面)http:/localhost:50070 (hdfs的web页面)l 运行实例 (1)先在本地磁盘建立两个输入文件 file01和file02 $echo Hello World Bye World file01 $echo Hello Hadoop Goodbye Hadoop file02 (2)在hdfs中建立一个input目录:$hadoop fs -mkdir input (3)将file01和file02拷贝到hdfs中: $hadoop fs

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号