大数据实验报告

实验名称:      实验1 熟悉常用的Linux操作和Hadoop操作                               

实验时间

    10      15  日 星期        7-8  

实验目的

1.  理解HDFS在Hadoop体系结构中的角色;

2.  熟练使用HDFS操作常用的Shell命令;

实验环境

Ubuntu

实验内容(步骤、方法、算法、程序)

1)cd命令:切换目录

  (1)切换到目录/usr/local。

cd /usr/local

  (2)切换到当前目录的上一级目录。

cd ..

  (3)切换到当前登录Linux系统的用户自己的主文件夹。

cd ~

(4)查看目前的工作目录。

pwd

2)ls命令:查看文件与目录

  查看目录/usr 下的所有文件和目录。

ls /usr

3)mkdir命令:新建目录

  (1)进人/tmp目录,创建一个名为a的目录,并查看/tmp 目录下已经存在哪些目录。

cd /tmp

mkdir a

ls

  (2)进人/tmp目录,创建目录al/a2/a3/a4。

cd /tmp

mkdir -p a1/a2/a3/a4

4)rm命令:删除空的目录

  (1)将上面创建的目录a(在/tmp目录下面)删除。

rm -rf /tmp/a

  (2)删除上面创建的目录a1(在/tmp目录下面),然后查看/tmp目录下面存在哪些目录。

rm -rf a1

cd /tmp

ls

5)cp命令:复制文件或目录

  (1)将当前用户的主文件夹下的文件.bashrc复制到目录/usr下,并重命名为 .bashrc1。

sudo cp ~/.bashrc /usr/

sudo mv /usr/.bashrc /usr/.bashrc1

  (2)在目录/tmp下新建目录 test,再把这个目录复制到/usr目录下。

mkdir /tmp/test

sudo cp -r /tmp/test  /usr/

6)mv命令:移动文件与目录,或重命名

  (1)将/usr 目录下的文件.bashrc1 移动到/usr/test目录下。

sudo mv /usr/.bashrc1  /usr/test

  (2)将/usr目录下的 test目录重命名为test2。

sudo mv /usr/test /usr/test2   

7)rm命令:移除文件或目录

  (1)将/usr/test2 目录下的.bashrc1 文件删除。

rm  -f /usr/test2/.bashrc1

  (2)将/usr 目录下的 test2 目录删除。

sudo rm -rf /usr/test2

8)cat命令:查看文件内容

  查看当前用户主文件夹下的.bashrc 文件的内容。

cat ~/.bashrc

9)tail命令:取出后面几行

  (1)查看当前用户主文件夹下.bashrc 文件的内容的最后20行。 

tail -20 ~/.bashrc

10)find 命令:文件查找

  找出主文件夹下文件名为.bashrc 的文件。

sudo find ~ -name ".bashrc"

11)tar命令:压缩命令

  (1)在根目录下把tmp文件夹打包成 test.tar.gz。

sudo tar -zcvf test.tar.gz /tmp

  (2)把上面的test.tar.gz压缩包,解压缩到/usr/local下。

sudo tar -zxvf test.tar.gz -C /usr/local

12)配置环境变量

  (1)请在~/.bashrc中查看当前的环境变量配置。

cat ~/.bashrc

  (2)查看JAVA_HOME 变量的值。

echo $JAVA_HOME

13)在主目录下创建hello.txt,文件内容是"I love China!"

cd ~

sudo vi hello.txt

使用vi编辑器编辑内容,步骤如下:

(1)按"i"键,进入编辑模式

(2)编辑内容为"I love China!"

   (3)按ESC键,输入":",":"后面输入"wq"保存,输入"q!"不保存

   (4)查看文件内容, cat hello.txt

vi编辑中连续按两次"d",删除一行。

(14)查看hello.txt的文件权限

ls -l hello.txt

(接上)实验内容(步骤、方法、算法、程序)

部分源程序代码/实验配置

1)cd命令:切换目录

2)ls命令:查看文件与目录

3)mkdir命令:新建目录

4)rm命令:删除空的目录

5)cp命令:复制文件或目录

6)mv命令:移动文件与目录,或重命名

7)rm命令:移除文件或目录

8)cat命令:查看文件内容

9)tail命令:取出后面几行

11)tar命令:压缩命令

13)在主目录下创建hello.txt,文件内容是"I love China!"

实验结果与结论

试验心得与小结

通过这次实验,我理解了HDFS在Hadoop体系结构中的角色并熟练使用HDFS操作常用的Shell命令。

指导教师评议

成绩评定:           指导教师签名:

实验名称:             实验2 熟悉常用的HDFS操作                               

实验时间

   10         22   日 星期          7-8    

实验目的

1.  理解HDFS在Hadoop体系结构中的角色;

2.  熟练使用HDFS操作常用的Shell命令;

实验环境

操作系统:Windows7

Hadoop版本:2.7.6

JDK版本:1.8

实验内容(步骤、方法、算法、程序)

1.win7环境上,以管理员身份运行cmd。

2.在cmd应用中使用命令start-dfs.cmd启动HDFS。

3.在终端上执行jps查看HDFS的运行情况,确认Hadoop是否启动正常。

4.在终端上执行HDFS相关命令。

5.实验完毕,执行stop-dfs.cmd关闭Hadoop。

利用Hadoop提供的Shell命令完成相同任务:

  1. 查看Hadoop的版本。

hadoop version

  1. 在HDFS上创建4个目录/a,/b,/c/d,/input。

hdfs dfs -mkdir /a

hdfs dfs -mkdir /b

hdfs dfs -mkdir –p /c/d

hdfs dfs -mkdir /input

  1. cmd中执行cd c:\进入C盘,在C盘中创建两个文件:A.txt与B.txt

文件A.txt的内容如下:

China is my motherland

I love China

文件B.txt的内容如下:

I am from China

将A.txt上传到HDFS的/input中,将B.txt上传到HDFS的/input中。

hdfs dfs -put A.txt /input

hdfs dfs -put B.txt /input

  1. 查看HDFS的目录/input下的所有文件。

hdfs dfs -ls /input

  1. 在HDFS上复制/input/A.txt到/a中,并命名为hello.txt。

hdfs dfs -cp /input/A.txt /a/hello.txt

  1. 从HDFS中下载指定文件/a/hello.txt到本地文件系统的D盘中。

       hdfs dfs -get /a/hello.txt D:\

  1. 将HDFS中的文本文件/a/hello.txt内容输出到终端中查看。

hdfs dfs -cat /a/hello.txt

  1. 显示HDFS中文件/a/hello.txt的读写权限、大小、创建时间、路径等文件详细信息。

hdfs dfs -ls /a/hello.txt

  1. 查看目录/c/d的大小。

hdfs dfs -dus /c/d

  1. 在HDFS上删除文件/a/hello.txt,删除目录/c/d。

hdfs dfs -rm /a/hello.txt

hdfs dfs -rm -r /c/d

部分源程序代码/实验配置

实验结果与结论

试验心得与小结

通过这次实验,我掌握了理解HDFS在Hadoop体系结构中的角色并熟练使用HDFS操作常用的Shell命令。

指导教师评议

成绩评定:           指导教师签名:

实验三丢了,找到了补上。。。

实验名称:             实验4 MapReduce API编程                                

实验时间

   11         5   日 星期          7-8    

实验目的

  1. 掌握使用IDE开发工具Eclipse访问MapReduce的步骤。

2. 熟悉MapReduce编程常用的Java API。

3. 理解MapReduce程序执行过程。

实验环境

操作系统:Windows7

Hadoop版本:2.7.6

JDK版本:1.8

Java IDE:Eclipse

实验内容(步骤、方法、算法、程序)

3 实验方案

  1. 数据准备:在C盘创建文本文件wordcount.txt,内容如下。

Hello World

Hello Hadoop

Hello MapReduce

  1. 以管理员身份运行启动cmd应用,在cmd应用中执行命令start-all.cmd启动Hadooop。启动Hadoop后,执行hdfs dfs -mkdir /input,在HDFS上创建/input目录。执行命令cd c:\进入C盘,再执行

hdfs dfs -put wordcount.txt /input

将wordcount.txt文件上传到HDFS上的/input目录。

(3)使用Eclipse创建java工程。

(4)引入MapReduce API开发需要的jar。

(5)编写MapReduce程序。

(6)运行查看程序执行结果,期望输出如下:

输出

Hadoop 1

Hello 3

MapReduce 1

World 1


实验内容:

编程实现一个类“WordCount”,实现词频统计。

程序清单:

package cn.chu.wordcount;

import java.io.IOException;

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.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.output.FileOutputFormat;

import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount{ 

    public static class MyMapper extends Mapper<Object,Text,Text,IntWritable>{ 

            private final static IntWritable one = new IntWritable(1); 

            private Text word = new Text(); 

            public void map(Object key, Text value, Context context) throws IOException,InterruptedException{ 

                    StringTokenizer itr = new StringTokenizer(value.toString()); 

                    while (itr.hasMoreTokens()){ 

                            word.set(itr.nextToken()); 

                            context.write(word,one); 

                    } 

            } 

    }      

   

    public static class MyReducer extends Reducer<Text,IntWritable,Text,IntWritable>{ 

            private IntWritable result = new IntWritable(); 

            public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException,InterruptedException{ 

                    int sum = 0; 

                    for (IntWritable val : values) 

                    { 

                            sum += val.get(); 

                    } 

                    result.set(sum); 

                    context.write(key,result); 

            } 

    } 

    public static void main(String[] args) throws Exception{ 

            Configuration conf = new Configuration(); 

            conf.set("fs.defaultFS","hdfs://localhost:9000");

            Job job = new Job(conf,"word count");

            job.setJarByClass(WordCount.class); 

            job.setMapperClass(MyMapper.class); 

            job.setReducerClass(MyReducer.class); 

            job.setOutputKeyClass(Text.class); 

            job.setOutputValueClass(IntWritable.class);    

            FileInputFormat.addInputPath(job,new Path("/input")); 

            FileOutputFormat.setOutputPath(job,new Path("/output"));         

            System.exit(job.waitForCompletion(true)?0:1);             

    } 

部分源程序代码/实验配置

实验结果与结论

试验心得与小结

通过这次实验,我掌握了掌握使用IDE开发工具Eclipse访问MapReduce的步骤, 熟悉MapReduce编程常用的Java API,理解MapReduce程序执行过程。

指导教师评议

成绩评定:           指导教师签名:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值