当前位置:   article > 正文

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

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

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

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

(2)启动服务

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

./sbin/start-all.sh

//或者
./sbin/start-dfs.sh
./sbin/start-yarn.sh
  • 1
  • 2
  • 3
  • 4
  • 5


(3)上传文件

hadoop fs -put <localsrc><dst>

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

这里写图片描述

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

hadoop fs -appendToFile local.txt text.txt

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

这里写图片描述


(5)查看HDFS文件的内容

hadoop fs -cat text1.txt

 ./bin/hadoop fs -cat test2.txt
  • 1

这里写图片描述


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

hadoop fs -copyFromLocal <localsrc><dst>

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

这里写图片描述


(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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这里写图片描述

// Java 编程实现
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/574693
推荐阅读
相关标签
  

闽ICP备14008679号