设为首页 加入收藏

TOP

【Hadoop】之 熟悉常用的HDFS操作
2019-02-25 00:15:06 】 浏览:161
Tags:Hadoop 熟悉 常用 HDFS 操作
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fanfan4569/article/details/77823382

参考:
http://www.jianshu.com/p/0663d74b79b5


一、实现目的

  1. 理解HDFS在Hadoop体系结构中的角色
  2. 熟练使用HDFS操作常用的Shell命令
  3. 熟悉HDFS操作常用的Java API

二、实验平台

  • 操作系统:Ubuntu 16
  • Hadoop版本:2.7.3
  • JDK 版本:1.8
  • Java IDE: Eclipse

三、实验内容和要求

编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同的任务。


(1)向HDFS中上传任意文本文件,如果指定的文件在HDFS 中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件。


(1)创建文本

//创建带内容的文本 
echo "hello world" > test1.txt

//或者 创建一个<path> 指定的空文件 (要在启动服务下执行)
hadoop fs - touchz <path>

这里写图片描述
这里写图片描述

(2)启动服务

./fileName : 表示当前目录下的fileName这个文件

./sbin/start-all.sh

//或者
./sbin/start-dfs.sh
./sbin/start-yarn.sh


(3)上传文件

hadoop fs -put <localsrc><dst>

 ./bin/hadoop fs -put ./test1.txt

这里写图片描述

(4)追加到文件末尾的指令

hadoop fs -appendToFile local.txt text.txt

//将test1.txt 追加到 test2.txt
./bin/hadoop fs -appendToFile test1.txt test2.txt

这里写图片描述


(5)查看HDFS文件的内容

hadoop fs -cat text1.txt

 ./bin/hadoop fs -cat test2.txt

这里写图片描述


(6)覆盖原有文件的指令(覆盖之后再执行一遍上一步)

hadoop fs -copyFromLocal <localsrc><dst>

//这里使用了 -f (强制的意思), 因为我的test3.txt 已存在
./bin/hadoop fs -copyFromLocal -f test2.txt test3.txt

这里写图片描述


(7)以上步骤也可以用如下命令实现

if $(hadoop fs -test -e text.txt);
then $(hadoop fs -appendToFile local.txt text.txt);
else $(hadoop fs -copyFromLocal -f local.txt text.txt);
fi

//本机操作
if $(./bin/hadoop fs -test -e test1.txt);
then $(./bin/hadoop fs -appendToFile test1.txt test2.txt);
else $(./bin/hadoop fs -copyFromLocal -f test1.txt test3.txt);
fi

这里写图片描述

// Java 编程实现
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇hadoop学习——hdfs指定tmp目录中.. 下一篇Spark 读取HDFS存入 HBase(1.0.0..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目