Hadoop原理期末作业(5)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hadoop原理期末作业
一、搭建一个由三个节点构成的完全分布式非HA集群;
1、主机角色分配:
2、搭建HDFS集群:
(1)core-site.xml配置文件代码及注释所编辑的代码行作用:(5分)
(2)hadoop-env.sh配置文件代码及注释所编辑的代码行作用:(5分) export JAVA_HOME=/home/YM/software/jdk1.8.0_45
(3)hdfs-site.xml配置文件代码及注释所编辑的代码行作用:(5分)
(4)slaves配置文件代码:(1分)
JYM2018122101001Slave01
JYM2018122101001Slave02
(5)将Hadoop配置到/etc/profile系统环境变量;(2分)
export JAVA_HOME=/home/YM/software/jdk1.8.0_45
export JRE_HOME=/home/YM/software/jdk1.8.0_45/jre
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export HADOOP_HOME=/home/YM/software/hadoop-2.8.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(6)批量启动HDFS集群,查看各个节点的进程,并截图,要求截图中必须含有用户及主机名;(5分)
2、搭建简单yarn集群:
(1)yarn-site.xml配置文件的内容及注释所编辑的代码行作用;(5分)
(2)批量启动Yarn集群,查看各个节点的进程,并截图,要求截图中每行必须含有用户及主机名;(5分)
二、使用MapReduce编写一个简单程序统计指定文件中英文单词出现的次数:
1、数据目录:
(1)数据源目录:HDFS文件系统中/wordcount/input/:自定义一个文本文件;
(2)目标输出目录:HDFS文件系统中/wordcount/output/
2、程序代码:(三个类)客户端生成工程Jar,且该工程Jar包在Hadoop的运行平台为本地模式:Local(10分)
WordCountReducer.java
package zhutu.mapreduce.wc;
import java.io.IOException;
import java.util.Iterator;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
/**
* 当前实现类的父类Reducer的泛型:
* 1、keyIn:接收key,并且是单词名称,Text类型;
* 2、ValueIn:接收value,是单词名称所对应值,IntWritable类型;
* 3、KeyOut:当前程序全局汇总结果中key,分组名称,即单词名称,Text;
* 4、ValueOut:当前程序全局汇总结果中key所对应的Value值,即单词出现的总次数;
*/
public class WordCountReducer extends Reducer
/**
* 每调用一次reduce()方法,ReducerTask任务就会向其传送一个分组数据;
* 参数一:分组中的key,Text类型;
* 参数二:分组中的Value,因为一个key对应了多个value值,该参数被定义迭代器类型,用于接收分组所形成的多个1;
* 参数三:用于存储每个分组进行聚合时所产生的中间结果;
*/
@Override
protected void reduce(Text key, Iterable