《Hadoop分布式结构》课程
综合实验报告
mapreduce词频统计
一、摘要
MapReduce任务过程分为两个处理阶段,map阶段和reduce阶段。每个阶段都以键-值对作为输入输出,键和值的类型由我们自己指定。通常情况map的输入内容键是LongWritable类型,为某一行起始位置相对于文件起始位置的偏移量;值是Text类型,为该行的文本内容。本文做了一个简单的词频统计。
二、实验目的
学习hadoop平台的搭建,并进行简单的mapreduce程序的学习。
三、实验仪器设备
三台镜像为ubuntu18.04的云主机,其公网ip如下:
39.99.179.77 hadoop
39.99.185.54 Slave1
39.100.85.94 Slave2
Jdk安装包:
Hadoop安装包:hadoop2.7.7
四、实验方案设计
方案设计分两个方面,一是hadoop集的搭建与MapReduce的测试,第二个是一个MapReduce的实验。
MapReduce任务过程分为两个处理阶段,map阶段和reduce阶段。每个阶段都以键-值对作为输入输出,键和值的类型由我们自己指定。通常情况map的输入内容键是LongWritable类型,为某一行起始位置相对于文件起始位置的偏移量;值是Text类型,为该行的文本内容。
编写一个MapReduce程序的一般步骤是:(1)map程序。(2)reduce程序。(3)程序驱动。下面我们就根据这个顺序来写一个简单的示例,这个例子是用来统计文件中每个字符出现的次数并输出。
五、实验内容及步骤
(一)hadoop集环境搭建
1.基础环境配置
主机名称IP地址
hadoop 39.99.179.77
Slave1  39.99.185.54
Slave2 39.100.85.94
三台机器可以ping双方的ip来测试三台电脑的连通性。
为了更好的在Shell中区分三台主机,修改其显示的主机名,执行如下命令
sudo vim /etc/hostname
hadoop的/etc/hostname添加如下配置:
hadoop
同样slave1的/etc/hostname添加如下配置:hadoop分布式集搭建
slave1
同样slave2的/etc/hostname添加如下配置:
slave2
修改三台机器的/etc/hosts文件,添加同样的配置:
sudo vim /etc/hosts
配置如下:
127.0.0.1 localhost
39.99.179.77 hadoop
39.99.185.54 Slave1
39.100.85.94 Slave2
最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。
在登陆界面中选择刚创建的 hadoop 用户进行登陆。
2.配置ssh无密码登录本机和访问集机器
○1首先在主服务器配置免密登录。
在主服务器安装openssh-server,并生成ssh公钥。
sudo apt-get openssh-server
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
○2在保证了三台主机电脑都能连接到本地localhost后,还需要让master主机免密码登录slave1和slave2主机。在hadoopr执行如下命令,将hadoop的id_rsa.pub传送给两台slave主机。
scp ~/.ssh/id_rsa.pub root@slave1:/home/hadoop/
scp ~/.ssh/id_rsa.pub root@slave2:/home/hadoop/
○3接着在slave1、slave2主机上将hadoop的公钥加入各自的节点上,在slave1和slave2执行如下命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub  #添加之后删除,更加安全。
○4主服务器hadoop ssh到slave1验证,如下图所示,免密成功。
3.JDK、hadoop的安装与配置
○1第一步首先将下载好的安装包传到主服务器的相应文件夹下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。