【Hadoop】之 熟悉常用的HDFS操作

参考:
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

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

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

(2)启动服务

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

./sbin/start-all.sh

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


(3)上传文件

hadoop fs -put

 ./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

//这里使用了 -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】)