当前位置:文档之家› 基于Hadoop的数据分析

基于Hadoop的数据分析

实验报告
(2014 / 2015 学年第二学期)
课程名称云计算
实验名称基于Hadoop的数据分析
实验时间2015 年 5 月20 日指导单位
指导教师
学生姓名班级学号
学院(系) 专业
实验报告
实验名称指导教师
实验类型上机实验学时 2 实验时间2015.5.20 一、实验目的和要求
【实验要求】
掌握基于Hadoop单机版的数据分析
【实验目的】
学会利用Hadoop对不同数据集的分析与挖掘;
二、实验环境
虚拟机Ubuntu14.04,hadoop-1.2.1,eclipse-SDK-4.3.1
三、实验原理及内容
(1)在第一次实验的基础上安装eclipse
1.将eclipse解压到usr/local目录下:
sudo tar xzvf eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz
-C/usr/local
2.授权:sudo chmod -R 777 /usr/local/eclipse
3.将hadoop插件拷贝到/usr/local/eclipse/plugins下
4.设置eclipse的Java环境:在eclipse下创建一个jre文件夹sudo mkdir jre,进入该文件夹:cd jre,
加入一条连接指令ln -s /usr/lib/jvm/java-7-sun/bin bin
(2)在eclipse中添加Map/Reduce:点击上方window选项,依次选择open perspective,other,Map、Reduce,如下图所示:
(3)设置Map/Reduce location,选择Map/Reduce locations,new hadoop location,将其中的内容设置成下图所示的内容:
设置Advanced parameters中的tmp文件夹位置为/usr/local/hadoop/tmp,如下图所示:
(4)设置hadoop的安装路径:依次点击window,preferences,Hadoop Map/Reduce,设置hadoop安装路径为/usr/local/hadoop
(5)在桌面新建三个文件,如图所示:
(6)新建一个Map/Reduce Project:右击左侧空白处,选择新建一个如下图所示的Map/Reduce Project:
点击Next,输入工程名为average,再点击finish。

(7)新建一个Java class:右击左侧的average,依次选择New,class,设置内容如下图所示:
点击finish完成。

(8)加入Java代码:
package com.hebut.mr;
import java.io.IOException;
import java.util.Iterator;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.util.GenericOptionsParser;
public class Score {
public static class Map extends
Mapper<LongWritable, Text, Text, IntWritable> {
// 实现map函数
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
// 将输入的纯文本文件的数据转化成String
String line = value.toString();
// 将输入的数据首先按行进行分割
StringTokenizer tokenizerArticle = new StringTokenizer(line, "\n"); // 分别对每一行进行处理
(11)运行程序,首先启动hadoop的所有进程,在命令行输入start-all.sh,然后在eclipse中右击average,选择run as,run on hadoop,程序开始执行,如下图所示:
(12)查看程序运行结果,可以在eclipse界面下点击score_out下的part-r-0000查看,也可以从命令行查看,如下图所示:。

相关主题