下载此文档

实验3-熟悉常用的HDFS操作-答案.pdf


文档分类:IT计算机 | 页数:约27页 举报非法文档有奖
1/27
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/27 下载此文档
文档列表 文档介绍
该【实验3-熟悉常用的HDFS操作-答案 】是由【小屁孩】上传分享,文档一共【27】页,该文档可以免费在线阅读,需要了解更多关于【实验3-熟悉常用的HDFS操作-答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。 : .
实验3-熟悉常用的HDFS操作-答案--第1页
..
实验2 熟悉常用的 HDFS 操作

1 实验目的
1. 理解HDFS 在 Hadoop 体系结构中的角色;
2. 熟练使用 HDFS 操作常用的 Shell 命令;
3. 熟悉 HDFS 操作常用的 Java API 。
2 实验平台
操作系统: Linux
Hadoop 版本:
JDK 版本: 或以上版本
Java IDE :Eclipse
3 实验内容和要求

1. 编程实现以下指定功能,并利用 Hadoop 提供的 Shell 命令完成相同任务:
提示:
1) 部分 Shell 命令的参数路径只能是本地路径或者 HDFS 路径。
2) 若 Shell 命令的参数既可以是本地路径,也可以是 HDFS 路径时,务必注意区分。为保
证操作正确,可指定路径前缀 hdfs:/// 或者
3) 注意区分相对路径与绝对路径
4) 具体命令的说明可参考教材或 ject-dist/hadoop-common/

(1) 向 HDFS 中上传任意文本文件,如果指定的文件在 HDFS 中已经存在,由用户
指定是追加到原有文件末尾还是覆盖原有的文件;
Shell 命令:
检查文件是否存在 : ./hdfs dfs -test -e ( 执行完这一句不会输出结果,需要继续输入命令
)
追加命令 : ./hdfs dfs -appendTo
覆盖命令 1: ./hdfs dfs -copyFromLocal -f
覆盖命令 2: ./hdfs dfs -cp -f

也可以使用如下命令实现:
(如下代码可视为一行代码,在终端中输入第一行代码后,直到输入 fi 才会真正执行):
if $(./hdfs dfs -test -e );
then $(./hdfs dfs -appendTo );
else $(./hdfs dfs -copyFromLocal -f );
fi
Java 代码:

import ;
import .*;
’.
实验3-熟悉常用的HDFS操作-答案--第1页 : .
实验3-熟悉常用的HDFS操作-答案--第2页
..
import .*;

public class HDFSApi {
/**
* 判断路径是否存在
*/
public static boolean test(Configuration conf, String path) throws IOException {
fs = (conf);
return (new Path(path));
}

/**
* 复制文件到指定路径
* 若路径已存在,则进行覆盖
*/
public static void copyFromLocal conf, String local, String remote) throws IOException {
fs = (conf);
Path localPath = new Path(local);
Path remotePath = new Path(remote);
/* 第一个参数表示是否删除源文件,第二个参数表示是否覆
盖 */
, true, localPath, remotePath);
();
}

/**
* 追加文件内容
*/
public static void appendTo conf, String local, String remote) throws IOException {
fs = (conf);
Path remotePath = new Path(remote);
/* 创建一个文件读入流 */
in = new (local);
/* 创建一个文件输出流,输出的内容将追加到文件末尾 */
FSDataOutputStream out = (remotePath);
/* 读写文件内容 */
byte[] data = new byte[1024];
int read = -1;
while ( (read = (data)) > 0 ) {
(data, 0, read);
}
();
();
();
’.
实验3-熟悉常用的HDFS操作-答案--第2页 : .
实验3-熟悉常用的HDFS操作-答案--第3页
..
}

/**
* 主函数
*/
public static void main(String[] args) {
Configuration conf = new Configuration();

// 本地路径
// HDFS 路径
// 若文件存在则追加到文件末尾
// // 若文件存在则覆盖

try {
/* 判断文件是否存在 */
Boolean = false;
if ((conf, remote)) {
= true;
已存在
} else {
不存在
}
/* 进行处理 */
if ( !) { // 文件不存在,则上传
, local, remote);
已上传至
// 选择覆盖
, local, remote);
已覆盖
// 选择追加
, local, remote);
已追加至
}
} catch (Exception e) {
();
}
}
}
’.
实验3-熟悉常用的HDFS操作-答案--第3页 : .
实验3-熟悉常用的HDFS操作-答案--第4页
..

(2) 从 HDFS 中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对
下载的文件重命名;
Shell 命令:

if $(./hdfs dfs -test -e );
then $(./hdfs dfs -copyToLocal ./);
else $(./hdfs dfs -copyToLocal ./);
fi
Java 代码:

import ;
import .*;
import .*;

public class HDFSApi {
/**
* 下载文件到本地
* 判断本地路径是否已存在,若已存在,则自动进行重命名
*/
public static void copyToLocal(Configuration conf, String remote, String local) throws
IOException {
fs = (conf);
Path remotePath = new Path(remote);
File f = new );
/* 如果文件名存在,自动重命名 (在文件名后面加上 _0, _1 ...) */
if (()) {
已存在
’.
实验3-熟悉常用的HDFS操作-答案--第4页 : .
实验3-熟悉常用的HDFS操作-答案--第5页

实验3-熟悉常用的HDFS操作-答案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数27
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小屁孩
  • 文件大小2.24 MB
  • 时间2025-02-12
最近更新