HDFS的常用操作
本文地址:http://www.cnblogs.com/archimedes/p/hdfs-operations.html,转载请注明源地址。
1、HDFS文件的权限以及读写操作
HDFS文件的权限:
•与Linux文件权限类似
•r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容
•如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan
•HDFS的权限目的:阻止好人错错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁
HDFS文件的读取:
HDFS文件的写入:
HDFS文件存储:
两个文件,一个文件156M,一个文件128在HDFS里面怎么存储?
--Block为64MB
--rapliction默认拷贝3份
HDFS文件存储结构:
2、HDFS下的文件操作
1、列出HDFS文件
通过“-ls”命令列出HDFS下的文件
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -ls
执行结果如图:
注意:在HDFS中未带参数的“-ls”命令没有返回任何值,它默认返回HDFS的“home”目录下的内容。在HDFS中,没有当前工作目录这样的概念,也没有cd这个命令
2、列出HDFS目录下某个文档中的文件
此处展示的是“-ls 文件名”命令浏览HDFS下名为in的文档中的文件
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -ls in
3、上传文件到HDFS
此处展示的是“-put 文件1 文件2”命令将hadoop-0.20.2目录下的test1文件上传到HDFS上并重命名为test
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -put test1 test
注意:在执行“-put”时只有两种可能,即是执行成功和执行失败。在上传文件时,文件首先复制到DataNode上,只有所有的DataNode都成功接收完数据,文件上传才是成功的。
4、将HDFS中的文件复制到本地系统中
此处展示的是“-get 文件1 文件2”命令将HDFS中的in文件复制到本地系统并命名为getin:
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -get in getin
5、删除HDFS下的文档
此处展示的是“-rmr 文件”命令删除HDFS下名为out的文档:
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -rmr out
执行命令后,查看只剩下一个in文件,删除成功:
6、查看HDFS下的某个文件
此处展示的是“-cat 文件”命令查看HDFS下in文件中的内容:
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfs -cat in/*
输出:
hello world
hello hadoop
PS:bin/hadoop dfs 的命令远不止这些,但是本文的这些命令很实用,对于其他的操作,可以通过“-help commandName”命令所列出的清单来进一步的学习
3、管理与更新
1、报告HDFS的基本统计信息
通过“-report”命令查看HDFS的基本统计信息:
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfsadmin -report
执行结果如下所示:
14/12/02 05:19:05 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
Configured Capacity: 19945680896 (18.58 GB)
Present Capacity: 13558165504 (12.63 GB)
DFS Remaining: 13558099968 (12.63 GB)
DFS Used: 65536 (64 KB)
DFS Used%: 0%
Under replicated blocks: 1
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 1 (1 total, 0 dead)
Name: 127.0.0.1:50010
Decommission Status : Normal
Configured Capacity: 19945680896 (18.58 GB)
DFS Used: 65536 (64 KB)
Non DFS Used: 6387515392 (5.95 GB)
DFS Remaining: 13558099968(12.63 GB)
DFS Used%: 0%
DFS Remaining%: 67.98%
Last contact: Tue Dec 02 05:19:04 PST 2014
2、退出安全模式
NameNode在启动时会自动进入安全模式。安全模式是NameNode的一种状态,在这个阶段,文件系统不允许有任何的修改。安全模式的目的是在系统启动时检查各个DataNode
上数据块的有效性,同时根据策略对数据块进行必要的复制和删除,当数据块的最小百分比数满足配置的最小副本数条件时,会自动退出安全模式。
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfsadmin -safemode leave
3、进入安全模式
wu@ubuntu:~/opt/hadoop-0.20.$ bin/hadoop dfsadmin -safemode enter
4、添加节点
可扩展性是HDFS的一个重要的特性,向HDFS集群中添加节点是很容易实现的。添加一个新的DataNode节点,首先在新加的节点上安装好hadoop,要和NameNode使用相同的配置,修改HADOOP_HOME/conf/master文件,加入NameNode主机名。然后在NameNode节点上修改HADOOP_HOME/conf/slaves文件,加入新节点主机名。再建立到新节点无密码SSH连接,运行启动命令:
$ bin/start-all.sh
通过http://(主机名):50070可查看到新的DataNode节点添加成功
5、负载均衡
用户可以使用下面的命令来重新平衡DataNode上的数据块的分布:
$ bin/start-balancer.sh
参考资料
《实战Hadop:开启通向云计算的捷径.刘鹏》
HDFS的常用操作的更多相关文章
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- Spark环境搭建(二)-----------HDFS shell 常用操作
配置好HDFS,也学习了点HDFS的简单操作,跟Linux命令相似 1) 配置Hadoop的环境变量,类似Java的配置 在 ~/.bash_profile 中加入 export HADOOP_HO ...
- 读Hadoop3.2源码,深入了解java调用HDFS的常用操作和HDFS原理
本文将通过一个演示工程来快速上手java调用HDFS的常见操作.接下来以创建文件为例,通过阅读HDFS的源码,一步步展开HDFS相关原理.理论知识的说明. 说明:本文档基于最新版本Hadoop3.2. ...
- Hadoop HDFS文件常用操作及注意事项(更新)
1.Copy a file from the local file system to HDFS The srcFile variable needs to contain the full name ...
- [b0002] Hadoop HDFS cmd常用命令练手
目的: 学会HDFS CLI 常用操作 环境: Hadoop 2.6.4 伪分布式版 环境搭建参考本博客前篇文章: 伪分布式 hadoop 2.6.4 帮助: hadoop@ssmaster:~$ h ...
- Hdfs常用操作
一.linux rm是删除,不是del 二.常用操作 package hdfs; import java.io.FileInputStream; import java.io.FileNotFound ...
- HDFS Java API 常用操作
package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...
- Hadoop2.7.6_02_HDFS常用操作
1. HDFS常用操作 1.1. 查询 1.1.1. 浏览器查询 1.1.2. 命令行查询 [yun@mini04 bin]$ hadoop fs -ls / 1.2. 上传文件 [yun@mini ...
- 三、hdfs的JavaAPI操作
下文展示Java的API如何操作hdfs,在这之前你需要先安装配置好hdfs https://www.cnblogs.com/lay2017/p/9919905.html 依赖 你需要引入依赖如下 & ...
随机推荐
- C# 字符串提取数字
转自:http://www.cnblogs.com/dolphin-gjh/p/6121792.html 一.使用正则表达式 1 string str = "sztq数字提取123sztq数 ...
- ref:Adding AFL Bloom Filter to Domato for Fun
ref:https://www.sigpwn.io/blog/2018/5/13/adding-afl-bloom-filter-to-domato-for-fun Adding AFL Bloom ...
- ref:Java安全之反序列化漏洞分析(简单-朴实)
ref:https://mp.weixin.qq.com/s?__biz=MzIzMzgxOTQ5NA==&mid=2247484200&idx=1&sn=8f3201f44e ...
- ZOJ 3955 Saddle Point
排序. 枚举每一个格子,计算这个格子在多少矩阵中是鞍点,只要计算这一行有多少数字比他大,这一列有多少数字比他小,方案数乘一下就是这个格子对答案做出的贡献. #include<bits/stdc+ ...
- vue 环境搭建笔记
环境 开发工具:VS Code vue版本: 2.x 准备 使用 npm 包管理器进行安装,也可以使用 yarn 包管理器. 可以使用淘宝的 npm 镜像,国内速度更快. 使用方式: $ npm in ...
- redis优化方案
流水线(pipelined) 批量提交redis命令,减少通信次数 事务 mulit,事务的开始 exec,执行事务快内的命令 discard,放弃事务快内的命令 watch,监视key,如果key改 ...
- React Native踩坑之启动android模拟器失败
报错 Could not install the app on the device, read the error above for details.Make sure you have an A ...
- async await 使用笔记
JavaScript的网络请求异步的,即网络请求不会阻塞当前 js 代码的继续执行,而是通过回调的方式,网络请求的代码块中注入回调函数,当网络请求完成,会触发相应的事件,通过触发事件来执行注册的回调函 ...
- POJ3687 Katu Puzzle
好好写2-sat 如果a1-->b1矛盾则连边a1-->b2和b1-->a2 我定了一个ccnt和cnt变量,结果少打一个c,wa了好多次(lll¬ω¬) By:大奕哥 #inclu ...
- [BZOJ5010][FJOI2017]矩阵填数(状压DP)
5010: [Fjoi2017]矩阵填数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 90 Solved: 45[Submit][Status][ ...