文章目录

一、实验环境二、实验内容利用Hadoop提供的Shell命令完成以下任务利用HDFS的Java API编程实现以下任务功能编写MapReduce程序实现以下任务功能

出现的问题

一、实验环境

操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);Hadoop版本:3.3.1;JDK版本:1.8;Java IDE:Eclipse

二、实验内容

利用Hadoop提供的Shell命令完成以下任务

(1)查看hadoop版本号 (2)查看hadoop集群磁盘使用情况 (3)向HDFS系统目录”/src”上传任意内容的文本文件 (4)查看该文本文件,并输出到终端中 (5)将查看结果重定向到本地文件 (6)将HDFS系统/src目录下的文本文件复制到HDFS系统/src2目录下 (7)查看/src目录和/src2目录下所有文件大小 (8)从HDFS系统/src目录和/src2目录中下载所有文件到本地/home/hadoop目录 (9)显示HDFS系统根目录/下所有文件和文件夹 (10)将/src2目录下文件重命名 (11)将/src和/src2目录下文件一起移动到hdfs系统/newsrc目录下 (12)在hdfs的/newsrc目录下创建一个0字节的空文件 (13)查看hdfs集群的名称节点状态

利用HDFS的Java API编程实现以下任务功能

(1) 从本地向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在则覆盖,由用户来指定是复制操作还是剪切操作; 提示:FileSystem类提供exists函数判断文件是否存在;提供copyFromLocalFile函数复制文件,该函数可以接受四个参数,第一个参数表示是否删除源文件,第二个参数表示是否覆盖,后两个参数为源路径和hdfs路径 要求:文字配合截图说明执行前后效果 (2) 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名(文件名添加_0, _1, …); 提示:FileSystem类提供copyToLocalFile函数用于下载文件 要求:文字配合截图说明执行前后效果 第一次执行: 第二次执行: 第三次执行: (3)从HDFS中读取指定文件输出文件内容,文件内容要求不止一行 要求:文字配合截图说明执行前后效果 (4)给定HDFS中某一个目录,输出该目录下所有文件的大小、权限、路径等信息、如果该文件是目录,则递归输出该目录下所有文件相关信息; 提示:FileSystem类提供listStatus函数返回FileStatus对象,该对象提供各种方法返回对应信息 要求:文字配合截图说明执行前后效果 (5)删除HDFS中指定文件 要求:文字配合截图说明执行前后效果

编写MapReduce程序实现以下任务功能

(1)自行在网上搜索一篇英文短文,编写MapReduce程序,完成词频统计。要求给出代码及注释,程序运行结果截图 (2)对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件的一个样例供参考。要求在代码中给出注释说明,并给出程序运行结果截图。 输入文件A的样例如下: 20170101 x 20170102 y 20170103 x 20170104 y 20170105 z 20170106 x 输入文件B的样例如下: 20170101 y 20170102 y 20170103 x 20170104 z 20170105 y 根据输入文件A和B合并得到的输出文件C的样例如下: 20170101 x 20170101 y 20170102 y 20170103 x 20170104 y 20170104 z 20170105 y 20170105 z 20170106 x 数据去重的最终目标是让原始数据中出现次数超过一次的数据在输出文件中只出现一次。由于shuffle过程会有合并相同key值记录的过程,会想到将不同文件中相同内容数据的Key设置成一样的,即是Map处理后是一样的,然后把交给Reduce,无论这个数据的value-list是怎么样,只要在最终结果输出它的key就行了。

出现的问题

1.xshell中ssh服务器登录不上。 2.运行java程序时eclipse报错:Exception in thread “main” java.net.ConnectException: Call From Leiquanyou_Master001/192.168.122.101 to Leiquanyou_Master001:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; 3.运行jar包时报错:Exception in thread “main” java.lang.UnsupportedClassVersionError;

解决办法: 1.可以尝试使用共享文件夹的方法实现主机到虚拟机的文件传输。 https://www.cnblogs.com/skyheaving/p/12286513.html 2.启动hdfs。 3.jdk的版本和class版本不一致,检查发现eclipse编译版本过低,修改即可。

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: