有需要的可以自取,记得帮我点个星星
问题描述
在关系代数中,自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
根据给定的数据《student.xlsx》和《student_course.xlsx》,请使用MapReduce计算模型,实现表student和表student_course的自然连接,结果集包括学生学号、姓名、选修课程编号、考试成绩。
环境配置
实验用到的MapReduce计算模型需要用到Hadoop框架,首先我们来在windows上配置Hadoop。在Linux下配置Hadoop是比较轻松的,在windows上有些小坑,还是耗费了不少时间的。
首先下载Hadoop-2.7.3,之所以用这个版本是因为网上的资源提到该版本配置时出错较少,一开始下载的2.8.4,但无奈没有找到对应版本的eclipse插件,导致eclipse无法访问HDFS,所以退回到2.7.3版本。
下载后直接解压即可。然后就是配置环境变量,具体过程与JAVA配置环境变量过程类似,唯一要注意的是配置JAVA环境变量和Hadoop环境变量时路径不能有空格,如果jdk存在Program Files文件夹下,可以用PROGRA~1替代。
接着是下载hadooponwindows-master之后解压,替换掉hadoop下的bin文件(因为原来的bin文件夹下缺少相应的dll文件)。
下一步是配置hadoop的四个XML文件和一个环境配置脚本:D:\hadoop\hadoop-2.7.3\etc\hadoop\core-site.xml
fs.defaultFS
hdfs://localhost:9000
该文件配置hdfs的ip和端口号。
2.D:\hadoop\hadoop-2.7.3\etc\hadoop\mapred-site.xml
mapreduce.framework.name
yarn
3.D:\hadoop\hadoop-2.7.3\etc\hadoop\hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
file:/hadoop/data/namenode
dfs.datanode.data.dir
file:/hadoop/data/datanode
该文件配置namenode和datanode地址。
4.D:\hadoop\hadoop-2.7.3\etc\hadoop\yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
5.D:\hadoop\hadoop-2.7.3\etc\hadoop\hadoop-env.cmd
这是windows下的hadoop环境配置脚本,在里面修改jdk路径为本机jdk路径。
在初次启动hadoop时用hdfs namenode -format命令格式化HDFS文件系统,然后以管理员身份(划重点!)将目录切换到sbin下,键入”start-all”启动hadoop,接着会启动四个进程Namenode、Datanode、YARN resourcemanager、YARN nodemanager。
由于我是在eclipse上编写MapReduce代码,所以这里还需要在eclipse上集成Hadoop;
首先下载插件hadoop-eclipse-plugin-2.7.3.jar,然后将该jar包放到eclipse下的plugins目录下,重启eclipse。