1、云计算虚拟化hadoop实验报告四 川 大 学 计 算 机 学 院、软 件 学 院实 验 报 告 学号: 姓名: 专业: 班级: 9 第 15 周 课程名称 云计算与分布式系统实验课时6实验项目在最终部署的Hadoop上运行WordCount程序实验时间2015年6月11日星期四实验目的 1. 首先通过Linux系统和KVM虚拟机的安装达成对Linux系统与虚拟机相关知识的了解和熟悉;2. 通过Linux下JAVA-ADT的安装以及Hadoop的相关配置了解Hadoop的基础知识及基础的应用方法;3. 通过多台主机的虚拟化以及Hadoop的联合部署,在该平台上运行WordCount程序,体验基
2、本的云计算的雏形应用并加深对云计算相关知识的了解。实验环境 硬件环境:PC机软件环境:Ubuntu镜像,Linux镜像以及KVM虚拟机程序包实验内容(算法、程序、步骤和方法) 一、 实验背景1. 在云计算及其相关应用日益火爆的今天,我们通过课堂上老师讲述的云计算相关的基本知识,已经对于利用Hadoop的配置实现一个较为简单的云计算环境有了一定的认识,因此,在本课程的期末设计中,我们采用Linux下的Hadoop搭建来运行一些简单的程序比如Wordcount来达成对云计算的实现的基本知识的学习效果;2. 本实验中使用的是MapReduce的编程模型,采用“分而治之”的基本思想,把对大规模数据集的
3、操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是任务的分解与结果的汇总;3. 在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker;4. 但是值得注意的一点是若要使用本实验中的MapReduce来处理数据集(或任务),其必须具备如下特点:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处
4、理。二、 Linux及KVM虚拟机安装1. 首先我们找到比较常用的Linux适用版本镜像文件,这里我们使用的是图形化做得非常好的Ubuntu 14.04,然后使用UltraISO做出一个启动盘并在电脑上做出一个双系统,分区大小我们参照网络上的建议将主分区目录设置为20G,成功做出一个Linux系统(这里我忘了截图了)装机的过程和下面的虚拟机装机是一样的。2. 然后我们在完成Linux下的基础软件安装的情况下进行程序的KVM虚拟机安装,首先使用如下指令:$ egrep -o (vmx|svm) /proc/cpuinfo检查Linux是否支持安装KVM,结果显示是可以安装的,于是我们这里使用指令
5、:$ apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils安装KVM虚拟机,安装过程是自动完成的,如下图所示:3. 经验证我们发现KVM是安装成功并且正常运行的,安装成功的验证指令为:# lsmod | grep kvm,到这里KVM的安装就基本完成了。4. 然后我们需要在KVM上创建一个虚拟机,具体操作步骤如下:在根下创建images目录,在images下创建iso和test目录。 5. 之后我们使用指令:virt-install -name ubuntutest -hvm -ram 1024 -vcpus 1 -dis
6、k path=/images/test/disk.img,size=10 -network network:default -accelerate -vnc -vncport=5911 -cdrom /images/iso/ubuntu-15.04-server-amd64.iso d创建虚拟机,至此我们基本完成了前期的基础性工作,操作流程图如下所示:虚拟机装机界面:6. 虚拟机创建完成之后还可以使用# virsh list all指令验证虚拟机是否存在,以及# virsh start VMNAME指令启动虚拟机三、 SSH的创建及使用首先创建Hadoop用户组,使用指令: $ sudo ad
7、dgroup hadoop,然后创建一个Hadoop用户,使用如下指令: $ sudo adduser -ingroup hadoop hadoop,并且为用户添加权限,使用如下指令:$ sudo gedit /etc/sudoers,操作截图如下所示:(接上)实验内容(算法、程序、步骤和方法)1. 2. 然后我们使用新增加的Hadoop用户登录Ubuntu系统,之后我们使用指令sudo apt-get install openssh-server安装ssh,运行截图如下所示:3. ssh安装完成之后我们使用指令:sudo /etc/init.d/ssh start启动服务,并且使用指令ps
8、-e | grep ssh查看服务是否启动正确,程序运行截图如下所示:4. 然后我们设置免密码登录并生成公钥和私钥,使用如下指令:ssh-keygen -t rsa -P ,程序运行截图如下所示:5. 此时会在homehadoop/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。下面我们将公钥追加到authorized_keys中,它用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。 cat /.ssh/id_rsa.pub /.ssh/authorized_keys,程序截图如下所6. 最后我们使用指令:ssh localhost来登录ssh
9、,完成我们第二部分的前期准备工作,程序截图如下所示:四、 JAVA环境变量配置1. 我们使用指令:sudo apt-get install openjdk-7-jdk来获取并安装java的jdk,并使用指令:java version来检测jdk是否安装成功,程序截图如下所示:五、 安装Hadoop1. 首先从官网下载Hadoop的安装包,然后使用指令:sudo tar xzf hadoop-2.4.0.tar.gz将hadoop解压,然后我们在命令窗口中输入指令:sudo mv hadoop-2.4.0 /usr/local/hadoop拷贝到/usr/local/下,使用指令:sudo ch
10、mod 774 /usr/local/hadoop获取文件读写权限,步骤截图如下所示:2. 然后我们需要对/.bashrc文件进行配置,需要知道JAVAHOME环境变量,使用如下指令查询:update-alternatives - -config java,然后利用指令:sudo gedit /.bashrc打开文本编辑窗口,并如图所示编辑内容,保存后关闭,执行指令:source /.bashrc使更改生效,步骤截图如下所示:3. 最后我们进行目录为/usr/local/hadoop/etc/hadoop/hadoop-env.sh的文件更改,执行命令:sudo gedit /usr/loca
11、l/hadoop/etc/hadoop/hadoop-env.sh打开文本编辑窗口,如图所示修改文本内容,保存后关闭,步骤截图如下所示:六、 WordCount实例测试1. 首先我们在/usr/local/hadoop路径下创建input文件夹,使用指令:mkdir input,然后使用指令:cp README.txt input将README.txt拷贝到input文件夹下,步骤截图如下所示:2. 最后到现在我们已经基本实现了程序运行的初始化条件,然后我们输入如下指令:bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce
12、-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output完成程序的运行,运行截图如下所结 论(结 果) 由上图的实验记录以及截图过程可以看到,本次实验基本完成了老师的要求,成功安装linux操作系统,在linux操作系统中成功安装KVM虚拟机,但是在KVM下在安装linux操作系统还存在问题,安装遇到麻烦,并没有成功。成功安装JAVA环境以及hadoop,并成功执行了hadoop下经典的WordCount程序,完成了老师的要求。小 结 虽然只是安装,配置好hadoop的环境,但是在实验过程中,并不
13、是想象的那么简单,还是遇到了较大的问题。在安装kvm的时候,由于没有在操作系统里开虚拟机,所以造成了后面的命令一直不能成功,在这里卡了很久。再后来查阅资料后,弄清楚了这些细节,才能完成后续的实验安装操作。 然后就是我找的教程上面的wordcount部分是有错误的,导致很久都找不到目标文件夹,所以这里花了很多时间,最后又同学的指导以及查阅资料下,就找到了问题所在,成功完成了实验。 本次试验里,同学的帮助以及资料的查阅是不可少的,有很多搭建成功的同学给予了我很多指导,所以我们之后要多多的互相学习,解决问题。收获很多,让自己弄清楚了很多关于云计算 Hadoop的知识,为以后的发展,打下了很好的基础。指导老师评 议 成绩评定: 指导教师签名:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1