HDFS的常用操作

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.2$ bin/hadoop dfs -ls

执行结果如图:

注意:在HDFS中未带参数的“-ls”命令没有返回任何值,它默认返回HDFS的“home”目录下的内容。在HDFS中,没有当前工作目录这样的概念,也没有cd这个命令

2、列出HDFS目录下某个文档中的文件

此处展示的是“-ls  文件名”命令浏览HDFS下名为in的文档中的文件

wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -ls in

3、上传文件到HDFS

此处展示的是“-put  文件1  文件2”命令将hadoop-0.20.2目录下的test1文件上传到HDFS上并重命名为test

wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -put test1 test

注意:在执行“-put”时只有两种可能,即是执行成功和执行失败。在上传文件时,文件首先复制到DataNode上,只有所有的DataNode都成功接收完数据,文件上传才是成功的。

4、将HDFS中的文件复制到本地系统中

此处展示的是“-get  文件1  文件2”命令将HDFS中的in文件复制到本地系统并命名为getin:

wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -get in getin

5、删除HDFS下的文档

此处展示的是“-rmr  文件”命令删除HDFS下名为out的文档:

wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -rmr out

执行命令后,查看只剩下一个in文件,删除成功:

6、查看HDFS下的某个文件

此处展示的是“-cat  文件”命令查看HDFS下in文件中的内容:

wu@ubuntu:~/opt/hadoop-0.20.2$ 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.2$ 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.2$ bin/hadoop dfsadmin -safemode leave

3、进入安全模式

wu@ubuntu:~/opt/hadoop-0.20.2$ 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
时间: 2024-07-28 12:52:23

HDFS的常用操作的相关文章

Hdfs常用操作

一.linux rm是删除,不是del 二.常用操作 package hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URI;

《Hadoop与大数据挖掘》一2.4.1 HDFS Java API操作

2.4.1 HDFS Java API操作 Hadoop中关于文件操作类基本上是在org.apache.hadoop.fs包中,这些API能够支持的操作有:打开文件,读写文件,删除文件,创建文件.文件夹,判断是文件或文件夹,判断文件或文件夹是否存在等. Hadoop类库中最终面向用户提供的接口类是FileSystem,这个类是个抽象类,只能通过类的get方法得到其实例.get方法有几个重载版本,如图2-28所示. 比较常用的是第一个,即灰色背景的方法. FileSystem针对HDFS相关操作的

Javascript数组Array的常用操作

文章简介:JavaScript中的数组. Array是JavaScript中常用的类型,并且JavaScript中的数组和其他语言的数组有比较大的区别.JavaScript中数组中存放的数据类型不一定相同,而且数组的长度也是可改变的. 下面记录一下Array的常用操作: 一 新建数组 新建数组可以用一下方法: var obj = ['zdy',22,'湖北武汉','计算机科学与技术'];//创建一个数组变量 var obj1 = new Array('zdy',22,'湖北武汉','计算机科学与

WIN98注册表编辑器的常用操作

注册表 WIN98注册表编辑器的常用操作注册表编辑器是一个可以让你改变系统注册设定的高级工具,有经验的Windows用户可以通过编辑注册表改变系统设定. 启动注册表编辑器的方法是执行Windows文件夹下的REGEDIT.EXE.如果注册表中有错误,计算机可能不能正常运行.如果发生这种情况,可以将注册表信息恢复到上次启动计算机时的状态.下面详细介绍Win98注册表编辑器常用的操作. 一.恢复注册表 1.单击"开始",再单击"关闭系统": 2.单击"重新启动

C#中对DatagridView的部分常用操作

C#中对DatagridView部分常用操作 只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position; bookContent = this.database.dataSet.Tables[0].Rows [

python中list常用操作实例详解

  本文实例讲述了python中list常用操作.分享给大家供大家参考.具体分析如下: 1.定义list ? 1 2 3 4 5 6 7 >>> li = ["a", "b", "mpilgrim", "z", "example"] >>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[0] 'a' &

MongoDB在PHP中的常用操作小结

  本篇文章主要是对MongoDB在PHP中的常用操作进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 $mongodb = new Mongo(); //$connection = new Mongo( "$dburl:$port" ); // connect to a remote host (default port) $mydb = $mongodb->mydb; //隐性创建数据库mydb $mydb = $mongodb->selectDB(&

php中的mongodb select常用操作代码示例_php实例

前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb. 下面说一下,mongodb select的常用操作 测试数据: 复制代码 代码如下: { "_id" : 1, "title" : "红楼梦", "auther" : "曹雪芹", "typeColumn" : "test", "money" : 80,

javascript Range对象跨浏览器常用操作第1/2页_javascript技巧

开发的功能主要涉及即时代码着色(CodeColoring)和语法提示(CodeHints)功能,稍后会总结功能开发中问题或提供源码. 以下是个人对Range对象的了解和常用操作的实例和总结: Range对象 Range对象表示文档的连续范围区域,如用户在浏览器窗口中用鼠标拖动选中的区域. dom标准Range对象 http://www.w3school.com.cn/xmldom/dom_range.asp 在ie中使用TextRange对象 http://www.hbcms.com/main/