Hadoop 分布式文件系统 HDFS

cd /usr/local/hadoop  先到对应目录

启动hadoop,并用jps检查进程

./sbin/start-all.sh      (结束用stop-all.sh)

jps

1. 利用Shell命令与HDFS进行交互 

Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。有以下三种shell命令方式:

hadoop fs     #适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs   #只能适用于HDFS文件系统
hdfs dfs        #同hadoop dfs

运行 hadoop 命令传递不带参数的选项 fs,获取文件系统的所有命令。

./bin/hadoop fs

将hadoop命令加入安装路径后就可以直接用hadoop fs ( 前不用加./bin)

sudo gedit ~/.bashrc

在末尾加入

export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

保存,输入source ~/.bashrc使配置生效

  (同理 上述start-all.sh命令也可用此方法省去./sbin)

在终端输入如下命令,可以查看具体某个命令的作用

例如:我们查看put命令如何使用,可以输入如下命令

./bin/hadoop fs -help put

HDFS基本操作

1、查询命令

  hdfs dfs -ls /   查询/目录下的所有文件和文件夹

  hdfs dfs -ls -R 以递归的方式查询/目录下的所有文件

2、创建文件夹

  hdfs dfs -mkdir /test    创建test文件夹

3、创建新的空文件

  hdfs dfs -touchz /aa.txt   在/目录下创建一个空文件aa.txt

4、增加文件

  hdfs dfs -put aa.txt /test  将当前目录下的aa.txt文件复制到/test目录下(把-put换成-copyFromLocal效果一样-moveFromLocal会移除本地文件)

5、查看文件内容

  hdfs dfs -cat /test/aa.txt     查看/test目录下文件aa.txt的内容(将-cat 换成-text效果一样)

6、复制文件 

  hdfs dfs -copyToLocal /test/aa.txt .       将/test/aa.txt文件复制到当前目录(.是指当前目录,也可指定其他的目录)

7、删除文件或文件夹

  hdfs dfs -rm -r /test/aa.txt   删除/test/aa.txt文件(/test/aa.txt可以替换成文件夹就是删除文件夹)

8、重命名文件

  hdfs dfs -mv /aa.txt /bb.txt   将/aa.txt文件重命名为/bb.txt

9、将源目录中的所有文件排序合并到一个本地文件

  hdfs  dfs -getmerge /   local-file  将/目录下的所有文件合并到本地文件local-file中

10、查看hadoop日志的方法  ---tail命令

       tail -500 hadoop-root-resourcemanager-VM-0-10-ubuntu.log 

实例:使用 Hadoop shell 命令导入和导出数据到 HDFS

(此部分截选自实验楼教程【Hadoop 分布式文件系统 — 导入和导出数据】~)

使用 Hadoop shell 命令将数据导入HDFS 中,以及将数据从 HDFS 中导出。这些命令更多地用于加载数据,下载处理过的数据,管理文件系统,以及预览相关数据。

下载数据集 weblog_entries.txt

sudo wget http://labfile.oss.aliyuncs.com/courses/832/weblog_entries.txt

1).在 HDFS 中创建一个新文件夹,用于保存 weblog_entries.txt 文件:

hadoop fs -mkdir -p /data/weblogs

2).将 weblog_entries.txt 文件从本地文件系统复制到 HDFS 刚创建的新文件夹下:

hadoop fs -copyFromLocal weblog_entries.txt /data/weblogs

3).列出 HDFS 上 weblog_entries.txt 文件的信息:

hadoop fs -ls /data/weblogs/weblog_entries.txt

mkdir 可以通过 hadoop fs -mkdir PATH1 PATH2 的形式来执行。例如,hadoop fs –mkdir /data/weblogs/20160511 /data/weblogs/20160501 将会在 HDFS 系统上分别创建两个文件夹 /data/weblogs/20160511 和 /data/weblogs/20160501。如果文件夹创建成功则返回0,否则返回-1。

hadoop fs -mkdir /data/weblogs/20160511 /data/weblogs/20160501

hadoop fs -ls /data/weblogs

copyFromLocal 可以通过 hadoop fs –copyFromLocal LOCALFILEPATH URI 的形式来执行,如果 URI 的地址(指的是HDFS://filesystemName:9000这个串)没有明确给出,则默认会读取core-site.xml 中的 fs.default.name 这个属性。上传成功返回0,否则返回-1。

copyToLocal 命令可以通过 hadoop fs –copyToLocal [-ignorecrc] [-crc] URILOCAL_FILE_PATH的形式来执行。如果 URI 的地址没有明确的给出,则默认会读取 core-site.xml 中的 fs.default.name 这个属性。copyToLocal 会执行CRC(Cyclic Redundancy Check)校验保证已复制的数据的正确性,一个失败的副本复制可以通过 参数 –ignorecrc 来强制执行,还可以通过 -crc 参数在复制文件的同时也复制 crc 校验文件。

上文介绍的getcopyToLocal只能对文件进行复制,无法对整个文件夹进行复制。当然 Hadoop 提供了getmerge 命令,可以将文件系统中的多个文件合并成一个单独的文件下载到本地文件系统。

2. 利用Web界面管理HDFS

打开Linux自带的Firefox浏览器,转到http://localhost:9870/,即可看到HDFS的web管理界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值