好文档 - 专业文书写作范文服务资料分享网站

Hadoop原理期末作业(5)

天下 分享 时间: 加入收藏 我要投稿 点赞

Hadoop原理期末作业

一、搭建一个由三个节点构成的完全分布式非HA集群;

1、主机角色分配: 主机名称 主机IP JYM2018122101001Master 192.168.30.10 NameNode 角色 ResourceManager 2、搭建HDFS集群:

(1)core-site.xml配置文件代码及注释所编辑的代码行作用:(5分)

fs.defaultFS

hdfs://JYM2018122101001Master:9000

(2)hadoop-env.sh配置文件代码及注释所编辑的代码行作用:(5分) export JAVA_HOME=/home/YM/software/jdk1.8.0_45

(3)hdfs-site.xml配置文件代码及注释所编辑的代码行作用:(5分)

dfs.namenode.name.dir /home/YM/dfsdate/name

dfs.datanode.data.dir /home/YM/dfsdate/data

NodeManager NodeManager JYM2018122101001Slave01 192.168.30.20 JYM2018122101001Slave02 192.168.30.30 DataNode、SecondNameNode DataNode dfs.namenode.secondary.http-address JYM2018122101001Slave01:50090

dfs.replication 2

dfs.blocksize 128M

(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分)

yarn.ResourceManager.hostname JYM2018122101001Master

yarn.NodeManager.aux-services mapreduce_shuffle

yarn.nodemanager.resource.memory-mb 1024

yarn.nodemanager.resource.cpu-vcores 2

(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 values,Context context) throws IOException,

InterruptedException {

// 1、定义一个变量int类型的变量存储一个分组值聚合结果; int count = 0;

// 2、生成一个迭代器,使用iterator()方法从Iterable values获取封装了value数据迭

代器;

Iterator iterator = values.iterator(); // 3、遍历迭代器; while(iterator.hasNext()){

IntWritable value = iterator.next(); count += value.get();

} } }

WordCountMapper.java package zhutu.mapreduce.wc; import java.io.IOException;

import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper{

/**

* 第一个参数为行偏移量 * 第二个参数为一行的内容

* 第三个参数用于存储每一行处理结果上下文件对象;

* map()方法:用于在其编写用户的实际运算逻辑,每调用该方法一次,只读取文件块中的一行,通

// 4、将分组的聚合结果写入到Context实例 context.write(key, new IntWritable(count));

过多次反复调用,完成对整个切片中行数据从头到尾的依次读取;;

Hadoop原理期末作业(5)

Hadoop原理期末作业一、搭建一个由三个节点构成的完全分布式非HA集群;1、主机角色分配:主机名称主机IPJYM2018122101001Master192.168.30.10NameNode角色ResourceManager2、搭建HDFS集群:(1)core-site.xml配置文件代码及注释所编辑的代码行作用:(5分)
推荐度:
点击下载文档文档为doc格式
3wo646v4o30fluh9boav3qhtz4wh9l00tts
领取福利

微信扫码领取福利

微信扫码分享