欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Hadoop云计算平台实验报告V11.docx

    • 资源ID:15519163       资源大小:5.08MB        全文页数:32页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Hadoop云计算平台实验报告V11.docx

    1、Hadoop云计算平台实验报告V11Hadoop云计算平台实验报告V1.11实验目标 1. 掌握Hadoop安装过程 2. 理解Hadoop工作原理 3. 测试Hadoop系统的可扩展性 4. 测试Hadoop系统的稳定性 5. 测试Hadoop系统的可靠性 2实验原理 2.1Hadoop工作原理 Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇

    2、论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算、存储提供了底层支持。 HDFS采用C/S架构,对外部客户机而言,HDFS就像一个传统的分级文件系统。可以对文件执行创建、删除、重命名或者移动等操作。HDFS中有三种角色:客户端、NameNode和DataNode。HDFS的结构示意图见图1。 NameNode是一个中心服务器,存放着文件的元数据信息,它负责管理文件系统的名字空间以及客户端对文件的访问。DataNode节点负责管理它所

    3、在节点上的存储。NameNode对外暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,文件被分成一个或多个数据块,这些块存储在一组DataNode上,HDFS通过块的划分降低了文件存储的粒度,通过多副本技术和数据校验技术提高了数据的高可靠性。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。DataNode负责存放数据块和处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。图1 HDFS体系结构示意图客户端要访问一个文件,首先从NameNode获得组成文件

    4、的数据块的位置列表;然后直接与相应的DataNode建立连接并读取文件数据。数据流不经过NameNode节点。 Hadoop通过MapReduce进行海量数据处理,它是一个并行处理大规模数据的软件框架。MapReduce的设计思想基于“移动计算靠近存储”,在面向海量数据处理的技术中,通过网络将数据传输到用于计算的节点所消耗的开销远大于处理数据所需要的开销,而MapReduce将数据的处理任务交给了存储该数据的节点,避免了数据传输所带来的开销。 MapReduce的根源是函数性变成种的map和reduce函数,它由两个包含多个实例(许多的Map和Reduce)的操作组成。Map函数接收一组数据并

    5、将其转换成一个键/值对列表,输入域中的每个元素对应于一个键/值对。Reduce函数接收Map函数生成列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表。MapReduce的数据处理流程示意图如图2所示: MapReduce也采用C/S架构,其中JobTracker负责作业调度,TaskTracker负责任务执行。用户提交基于MapReduce变成规范的作业之后,JobTracker根据作业的输入数据的分布情况(在HDFS之中),将Map任务指派到存储这些数据块的DataNode上执行(DataNode也充当了TaskTracker),Map完成之后会根据用户提交的Reduce任

    6、务数对中间结果进行分区存储在Map任务节点本地的磁盘,执行Reduce任务的节点(由JobTracker指派)通过轮询的方式从各Map节点拉取Reduce的输入数据,并在Reduce任务节点的内存进行排序后进行合并作为reduce函数的输入,输出结果又输出到HDFS中进行存储。图2 MapReduce数据处理流程示意图除了HDFS和MapReduce这两个核心子项目之外,Hadoop还包括Hbase和Hive以及Pig、ZooKeeper、Avro、Chukwa等项目。其中Hbase是一个分布式的基于列(列族)存储的数据库,它使用HDFS作为底层存储,同时支持MapReduce的批量是计算和点

    7、查询。Hive一个分布式的数据仓库,使用HDFS进行数据存储,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用于查询数据。 2.2实验设计 本实验主要是针对Hadoop系统的可扩展性、稳定性、可靠性,其中主要针对HDFS进行测试,最后给出MapReduce的一个词频统计的实例。2.2.1可扩展性 Hadoop系统支持系统的动态扩容,只需要修改修改各节点的slaves文件,将需要添加的数据或计算节点加入进来,或者删掉需要注销的数据或计算节点即可,只要新加入的节点已经成功配置了Hadoop,那么就可以通过启动新的节点来实现动态扩容;对于删除节点,跟添加节点类似,将slave

    8、配置信息中删除该节点,然后在停掉该节点的数据服务即可。 有的时候,需要向集群中增加新的机器时又不能重启集群。我们可以采用下面的过程来实现Hadoop系统的动态扩展而不用重启集群。 1.把新机器的增加到conf/slaves文件中(Datanode或者Tasktracker则可跳过) 2.在新机器上进入hadoop安装目录$bin/hadoop-daemon.sh start datanode $bin/hadoop-daemon.sh start tasktracker3.在Master即Namenode上 执行如下指令,实现系统负载的平衡:对于要删除某一个节点,我们可以执行如下过程,而不需重

    9、启服务器: 1 从conf/slaves文件中移除该节点 2 在待移除节点上执行如下指令 $bin/hadoop-daemon.sh stop datanode $bin/hadoop-daemon.sh stop tasktracker3. 在Master即Namenode上 执行如下指令,实现系统负载的平衡:$bin/hadoop balancer2.2.2稳定性 Hadoop系统架构在通用商用机上,HDFS的设计思想将普通硬件故障视为常态,个别机器的故障不影响系统的正常运行。 通过将足够大文件上传到HDFS上,使文件散布到多个节点上,然后通过人为切断某一台机器的网络,如果系统还能正常提供

    10、服务,则说明系统是稳定的,因为本系统只有3个数据节点,副本数设定为2,所以只能切断一台服务器来验证系统的稳定性。当系统规模足够大的时候,文件散布的更加分散,可以允许更多的机器故障。 2.2.3可靠性 因为Hadoop的文件系统采用了多副本技术保证了数据的可靠性,如果发生了副本损害或者副本丢失,用户仍然可以通过其他副本进行数据访问和数据操作,从而保证数据的可靠性。HDFS的NameNode有一个后台进程进行文件块的扫描,如果当前某一个数据块的副本数低于系统设定的安全阈值,那么NameNode就会启动相关进程,完成副本的复制,直到副本数达到安全阈值的要求。 可以通过分析数据分布,或者通过MapRe

    11、duce进行词频统计来验证数据的可靠性。 3实验过程 3.1实验环境 设计Hadoop实验平台之前,在考虑一般用户或者中小企业不可能购买和安置大量服务器的情况下,要学习Hadoop的最佳方式就是通过虚拟平台来仿真云计算系统分布式运行的工作模式。在虚拟技术支持下,只需要一台够强力的计算机,然后在其上运行Virtual Box、Xen或者VMware之类的虚拟软件,依照计算机本身的能力,虚拟出3-5台Linux操作系统,每一个虚拟操作系统上都运行Hadoop系统,就可以完成一个小型的Hadoop实验平台。考虑到实验室的计算机的硬件配置不高以及实验室作为公共实验环境,计算机都安装了Windows操作

    12、系统的实际情况,我们只能通过在每台计算机上安装虚拟软件,通过虚拟软件安装虚拟的linux操作系统,然后在操作系统中安装Hadoop系统,通过各个虚拟linux操作系统的互连,完成Hadoop实验平台的搭建。Hadoop实验平台配置方式如图3所示:图3 Hadoop实验平台配置方式Hadoop当前的运行平台为Linux,至于Win32平台则还在开发阶段,尚不成熟,因此,在Windows物理机上通过虚拟软件采用Ubuntu散布套件来安装Linux,然后将Hadoop构建与Linux平台之上,是一种最简单的方式,各个虚拟Linux系统上都必须装有如下软件:Ubuntu Linux操作系统 Hadoo

    13、p云计算系统 Java 6开发环境 由于各个物理机均采用同构的方式进行安装,所以只需要安装一台虚拟机,然后将虚拟机文件拷贝到其他机器上,进入linux虚拟系统,修改相关配置信息即可。3.1.1安装Linux操作系统 首先需要Ubuntu操作系统的ISO镜像,可以去Ubuntu的官方网站下载:http:/www.ubuntu.org. 我们下载的是Ubuntu 10.10 32bit Desktop版。 启动WMware软件,点击“File”菜单,选择“Create a New Virtual Machine”菜单项,弹出New Virtual Machine Winzard对话框如下图所示:选

    14、择“Installer disc image file(iso)”选项,通过“Browser”安装选中需要使用的Ubuntu操作系统的ISO文件(也可以通过Ubuntu的安装光盘进行安装,此略)。单击“next”,出现用户名及密码设定对话框,如下图所示:在文本输入框中分别输入用户名以及用户密码等,点击“next”,出现配置节点名以及虚拟机系统在本地磁盘的存放路径的对话框,如下图所示:点击“next”,出现配置磁盘容量的对话框,此对话框指定Ubuntu操作系统的磁盘空间,不能超过本地磁盘分区剩余的可用空间。点击“next”,出现配置信息的确认对话框,如下图所示:如果需要修改,则可以返回,如果不需

    15、要修改,直接点击“Finish”,完成虚拟机的配置,接下来开始安装Ubuntu操作系统。因为是通过虚拟化软件安装虚拟操作系统,所以安装过程不像在物理机上直接安装linux操作系统那样,需要选择磁盘分区、创建帐户、选择键盘布局、选择时区、选择语言等等步骤。 安装完成后,就可以启动并登陆刚才安装的虚拟机了。登陆成功之后,如下图所示,至此,Ubuntu虚拟机已经安装完成,下一步,我们开始在Ubuntu系统中安装Hadoop系统及其支撑环境。3.1.2安装Java开发环境 因为实验室不能接入互联网,所以不能使用Ubuntu提供的apt-get指令进行相关支撑软件的快速下载及安装,我们只能通过下载离线包

    16、进行手动安装与设置。 首先,下载java开发工具包JDK,由于JDK的开发不仅仅是一家,常用的主要有Sun公司开发的JDK和开源社区的OpenJDK两种。我们选择Sun开发的JDK,可以去下载Linux 32bit版本的JDK。在实际使用中,我们下载的版本是jdk-7-linux-i586.tar.gz。 为了简单方便,我们将JDK安装在用户的主目录下。我们将JDK放在/home/king/目录下,然后将jdk-7-linux-i586.tar.gz进行解压缩,解压完成之后得到JDK目录jdk-1.7.0。 为了使JDK生效,我们需要将JDK配置到系统环境变量里。在命令行中执行如下指令:# s

    17、udo gedit /etc/profile然后提示输入用户名king对应的登陆密码,输入之后,即可打开环境变量配置文件。 在最后一行umask 022上面一行插入如下代码:#JAVA export JAVA_HOME=/home/king/jdk1.7.0 export PATH=$JAVA_HOME/bin:$PATH至此,JDK的安装配置已经完成,通过注销虚拟机,即可生效。再次登陆之后,在命令行执行:如果出现了相关参数提示,说明java开发环境已经安装完毕。3.1.3安装SSH 因为Hadoop采用的是C/S结构,Server(Master)需要控制Client(Slaves),需要在集

    18、群各个节点上按装SSH,Ubuntu默认安装了openssh-client,所以需要安装openssh-server。但是考虑Ubuntu软件依赖的控制较严格,而新版本的Ubuntu安装的openssh-client版本较高,与之匹配的高版本openssh-server的离线包难找,我们使用低版本进行覆盖。 考虑到实验室不能接入互联网的实际情况,我们需要首先下载用户安装ssh的离线安装包,具体的安装步骤是这样的: 1到 ”。 2.到 openssh-server_5.3p1-3ubuntu3_i386.deb”。 3. 到 下载完成之后,就可以进行安装了,执行如下指令(顺序不可更改):#sud

    19、o dpkg -i openssh-client_5.3p1-3ubuntu3_i386.deb #sudo dpkg -i openssh-server_5.3p1-3ubuntu3_i386.deb #sudo dpkg -i ssh_5.3p1-3ubuntu3_all.deb至此,ssh的安装完成,后面我们会用到它配置无密码登录。 3.1.4配置网络 由于我们是在Windows环境下通过安装虚拟机来实现Linux平台搭建的,多个Linux虚拟机之间需要建立通信,而通信依赖于IP地址,所以我们需要给虚拟机设定IP地址。 不管是Virtual Box,还是VMware,这些虚拟软件一般都带

    20、有3种网络配置方式:默认的是NAT,还有Bridge、Host-only。关于这三种网络配置模式的讲解,可以参考相关的文档资源等。 我们使用Bridge(桥接)模式来配置虚拟机,也就是物理主机和虚拟都有独立的IP地址,并且处于同一个网段。 node3所在的物理主机的IP地址为:192.168.6.156。 node3虚拟机的IP地址为:192.168.6.198。 node4所在的物理主机的IP地址为:192.168.6.157 node4虚拟机的IP地址为:192.168.6.199 node5所在的物理主机的IP地址为:192.168.6.158 node5虚拟机的IP地址为:192.16

    21、8.6.197 在使用的过程中,我们通过域名来解析各个虚拟机,而不是IP地址,所以需要编辑/etc/hosts文件,指令如下:#sudo gedit /etc/hosts将IP地址与域名进行映射,设定如下所示:如果域名不正确,需要修改/etc/hostname文件,将域名改为node3即可。执行如下指令:#sudo gedit /etc/hostname前面已经对域名解析部分进行了配置,下面开始配置虚拟机的联网方式以及IP地址等。 前面已经介绍了虚拟机默认都采用NAT联网方式,也就是物理主机和虚拟机采用相同的IP地址,虚拟机通过地址转换通过物理主机的IP与外联络,在有Linux虚拟机建立的局域

    22、网中,这种方式是不可行的,因为NAT采用的Vnet8网卡并通过DHCP来自动分配IP,所以我们要通过Bridge模式来实现虚拟机互联,也就是虚拟机和物理主机拥有不同的IP,且处于同一个网段。 首先需要更改虚拟机的联网方式,点击VMware 的“Virtual Machine”菜单,选择“Virtual Machine Settings”菜单项,出现如下:选择Hardware项下的Network Adapter,选中Bridged,如上图所示,至此,虚拟机的联网方式配置完毕,下面配置虚拟机的IP地址。 因为Linux操作系统默认采用DHCP动态获取IP,这样就无法指定IP地址,必须改成手动指定。

    23、在Ubuntu Linux系统菜单栏中选择“System” “Perferences” “Network Connections”选项,也可以通过系统右上侧的联网菜单直接选择联网设置。选中“编辑连接”,选择eth0网卡,点击“编辑”,进入网卡编辑界面,在“IP v4设置”项里,选中“方法”域中的“手动”项,在地址里选择“添加”,然后分别在地址、子网掩码、网管中填入上图所示数据。然后点击保存。 3.1.5创建SSH密钥安全联机 Hadoop系统的一个特性就是无论是Master,还是Slave节点,其Hadoop系统设定都完全一样。为了降低负担,且维护每台节点都有相同的设置,最简单的方式就是设置了

    24、Master之后,通过SSH密钥证书的scp安全复制指令,无密码登录到其他节点上,并将文件传到节点上。所以首先需要配置无密码登录(在Master上执行如下操作)。#ssh-keygen t rsa P “” #cd /home/king/.ssh #cat id_rsa.pub /.ssh/authorized_keys配置完成之后,测试登陆本节点自身:#ssh localhost #logout如果能正常登陆成功,则说明配置成功。 3.1.6配置Hadoop云计算系统 首先从Apache官方网站下载Hadoop安装包,我们下载的是hadoop-0.20.1.tar.gz,将其放到/home/

    25、king目录下,进行解压缩,得到hadoop-0.20.1目录,Hadoop不需要安装,只需要进行配置即可使用。 之后要进行一些配置,首先进入解压后目录对conf文件夹,要修改对配置文件包括hadoop-env.sh /etc/profile core-site.xml hdfs-site.xml mapred-site.xml masters slaves。 hadoop-env.sh中要释放并修改下面一行,用于指定java路径:export JAVA_HOME=/home/king/jdk1.7.0/编辑环境变量,添加HADOOP_HOME变量,使Hadoop的bin目录下的指令加入到环境

    26、变量中。# sudo gedit /etc/profile在最后一行umask 022上面一行插入如下代码:#Hadoop export HADOOP_HOME=/home/king/hadoop-0.20.1 export PATH=$HADOOP_HOME/bin:$PATH编辑core-site.xml,因为Hadoop采用网页的方式对系统运行进行监控,core-site.xml就是对这种监控进行用户自定义配置的配置文件,因为默认的配置在core-default.xml中,这里只给出了最低配置,配置Hadoop系统在本地的目录和默认的文件系统及通信端口(默认8020):配置hdfs-si

    27、te.xml,设定文件的副本数:配置mapred-site.xml,配置JobTracker节点及通信端口:配置master文件,指定master节点:配置slaves节点,配置slave节点:至此,Master节点的配置已经全部完成,下面开始配置其余节点。 3.1.7配置Slaves节点 我们前面已经说过,Hadoop所有节点的配置都相同,所以配置Slaves的时候有两种手段: 1) 按照前面的1.11.5的过程重新做一遍,但是在重做1.4的时候,只需要在node3(也就是Master)上执行: #cd /home/king/.ssh #cat id_rsa.pub node4: /.ssh

    28、/authorized_keys2) 将配置好的Master虚拟机文件全部拷贝,到node4、node5所在的物理主机上,然后分别登陆到虚拟机,修改其中的/ect/hosts和/etc/hostname文件以及配置IP地址,然后重启即可。 执行完所有的配置之后,需要确保所有的机器之间都可以可以访问到的,通过命令行中的“ping 机器IP”指令,验证所有虚拟机之间都是可以互通的。 3.1.8格式化Hadoop系统 在启动Hadoop系统之前,需要先格式化一个Hadoop系统,执行如下指令即可:#hadoop namenode -format如果顺利完成,则说明系统格式化完成,下面即可启动并使用H

    29、adoop系统了,如果失败,则需要查看Hadoop安装目录中的logs目录下的日志了。 3.1.9启动Hadoop集群 在Master即NameNode上执行如下指令:#start-all.sh然后执行如下指令,查看Hadoop进程的启动状态:因为node3同时充当master和slave,所以其上除了jps进程之外,还有另外5个Hadoop相关的进程,分别是NameNode、DataNode、SecondaryNameNode、JobTracker和 TaskTracker。如果5个进程都正常启动,则说明Hadoop系统已经成功启动。然后去个slave节点上执行同样的指令,如果有TaskTr

    30、acker和DataNode进程,则说明该节点已经成功启动:3.22实验过程 3.2.1可扩展性 3.2.1.1动态扩展 将/conf/slaves文件进行修改,只留下node3这一个节点,启动Hadoop集群。登陆Hadoop监控页面http:/node3:50070,查看Hadoop系统的运行状态,如下图所示:通过监控网页,可以看到系统的启动时间,系统存储空间以及已用大小,当前处于活动状态的节点数及死亡节点数,图中给出的当前活动节点数为1,死亡节点数为0,当前系统配置容量7.38GB。通过点击Live Nodes可以跳转到Live Nodes监控页面,出现一个节点列表,通过节点列表,可以监控每一个具体的节点上的配置信息。如下图所示:通过点击具体的某一个Node,可以进入监控该节点的页面,如下图:显示node3节点当前存储的文件目录信息等。 通过执行如下的操作,实现系统的动态扩展: 1. 把新机器的增加到conf/slaves文件中(Datanode或者Tasktracker则可跳过) ,将node4和node5添加进去。 2.在新机器上进入hadoop安装目录(新机器已经成功配置Hadoop)$bin/hadoop-daemon.sh start datanode $bin/hadoop-daemon.sh start tasktracker过几分钟之


    注意事项

    本文(Hadoop云计算平台实验报告V11.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开