虚拟化与云计算实验报告26 / 28目录一、实验目标1二、实验内容1三、实验步骤1四、实验遇到的问题及其解决方法1五、实验结论1一、实验目的1. 实验题目:配置和使用SAN存储掌握在Linux上配置iSCSI target服务的方法2. 实验题目:Hadoop&MapReduce安装、部署、使用Hadoop-HDFS配置运行MapReduce程序,使用MapReduce编程二、实验内容1. 实验题目:配置和使用SAN存储配置在Linux上iSCSI实现两台机器间的共享存储2. 实验题目:Hadoop&MapReduce1. 掌握在集群上(使用虚拟机模拟)安装部署Hadoop-HDFS的方法2. 掌握在HDFS运行MapReduce任务的方法3. 理解MapReduce编程模型的原理,初步使用MapReduce模型编程三、实验步骤及实验结果1. 实验题目:配置和使用SAN存储在实验1中我作为主机提供共享存储空间,实验地点是在机房,但是由于我当时没有截图所以回寝室在自己的电脑上重做,以下为主机步骤:1.1 确定以root身份执行以下步骤sudo su –1.2 安装iSCSI Target软件1.3 修改/etc/default/iscsitarget ISCSITARGET_ENABLE=true1.4 创建共享存储 共享存储可以是logical volumes, image files, hard drives , hard drive partitions or RAID devices 例如使用image file的方法,创建一个10G大小的LUN: dd if=/dev/zero of=/storage/lun1.img bs=1024k count=102401.5 修改/etc/iet/ietd.conf添加:Target iqn.2001-04..example:storage.lun1IningUser [username] [password] OutgoingUserLun 0 Path=/storage/lun1.img,Type=fileioAlias LUN1#MaxConnections 61.6 修改/etc/iet/initiators.allow 如果只允许特定IP的initiator访问LUN,则如下设置 iqn.2001-04..example:storage.lun1 192.168.0.100 如果任意initiator均可以访问,则: ALL ALL1.6 启动/重启动iSCSI target /etc/init.d/iscsitarget start /etc/init.d/iscsitarget restart2. 实验题目:Hadoop&MapReduce1. 安装JDK——在实验中安装为OpenJDK 6 Runtime2. 安装openssh-server,命令为:sudo apt-get install openssh-server,并检查ssh server是否已经启动:ps -e | grep ssh,如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。
3. 免密码ssh设置,确认能否不输入口令就用ssh登录localhost:ssh localhost如果不输入口令就无法用ssh登陆localhost,执行下面的命令:$ ssh-keygen -t rsa -f ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys再次执行ssh localhost,完成后请登入确认不用输入密码4. 安装Hadoop解压Hadoop安装包到安装目录,在本实验中我新建了一个用户hadoop并把hadoop解压到home/hadoop文件夹下,在伪分布模式下使用的版本为0.20.203,在分布模式下因为要与Eclipse兼容所以最终使用版本为0.20.2,下面部分截图为版本为0.20.203并编辑conf/hadoop-env.sh,将JAVA_HOME设置为Java安装根路径运行运行bin目录下的hadoop,如显示hadoop 脚本的使用文档,说明安装已经完成如下图所示:5. 安装部署单机伪分布式模式Hadoop-HDFSHadoop可以在单节点上以伪分布式模式运行编辑/conf/core-site.xml fs.default.name hdfs://localhost:9000 hadoop.tmp.dir /tmp/hadoop/hadoop-${user.name} 编辑 /opt/hadoop/conf/hdfs-site.xml dfs.replication 1 编辑 /opt/hadoop/conf/mapred-site.xml mapred.job.tracker localhost:9001 格式化HDFSbin/hadoop namenode –format启动Hadoop,启动后可使用命令jps查看已启动进程,观察是否namenode、datanode已启动,关闭所有服务,使用命令stop-all.sh,bin/ start-all.sh6. 浏览NameNode和JobTracker的网络接口,地址默认为:NameNode - localhost:50070/JobTracker - localhost:50030/7. 下面尝试在单机伪分布模式下运行wordcount样例程序将输入文件拷贝到分布式文件系统bin/hadoop fs -put home/lee/桌面testfileinput运行Hadoop自带的wordcount例子bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output将输出文件从分布式文件系统拷贝到本地文件系统查看bin/hadoop fs -get output /home/lee/文档cat /home/lee/文档/output/*8. 安装部署多机Hadoop-HDFS这个部署多机的实验在实验室没有做完,最后实在宿舍完成的,节点为两个,使用系统为wubi安装的Ubuntu,所以不需要桥接方式(因为有固定IP),以下步骤为我做为Master时的实验截图:本机名为node1,另外一台机器为node2,两台机器均建立一个名为hadoop的管理员用户用于统一部署安装hadoop。
编辑文件/etc/hosts127.0.1.1 ubuntu替换为127.0.1.1 node1编辑 /etc/hostname文件 删除该文件的所有内容,添加node1运行命令 hostname node1a) 指定IP地址编辑文件/etc/network/interfacesauto eth0iface eth0 inet staticaddress 115.24.250.196netmask 255.255.255.0重启网络服务sudo /etc/init.d/networking restart查看IP地址 ifconfigb) 修改/etc/hosts文件node1中:115.24.250.196 node1 115.24.250.43 node2 node2中:115.24.250.196 node1 115.24.250.43 node2 c) 配置从node1无需输入密码ssh登录node1、node2,命令如下:首先在node1、node2下建立home/hadoop/.ssh文件夹在node1(master)上:$ssh-keygen -t rsa $cat .ssh/id_rsa.pub >> .ssh/authorized_keys这两行命令生成密钥并将公钥导出到authorized_keys中,然后将此文件拷贝到node2(slaves)中的相同文件夹下,因为通过网络命令拷贝比较困难所以我在这里用U盘拷贝的,之后就可以成功无密码登录node2d) 编辑/conf/core-site.xml//此处为了方便查找我更改了hadoop.tmp.dir的文件目录,改为/home/hadoop/tmp fs.default.name hdfs://node1:9000 hadoop.tmp.dir /home/hadoop/tmp e) 编辑 /opt/hadoop/conf/hdfs-site.xml,其中//这里我们将dfs.data.dir改为/home/hadoop/data//将dfs.name.dir的默认文件夹改为/home/hadoop/namedfs.name.dir/home/hadoop/namedfs.data.dir/home/hadoop/data dfs.replication 2 f) 编辑 /opt/hadoop/conf/mapred-site.xml mapred.job.tracker。