Hadoop笔记HDFS(1)

环境:Hadoop2.7.3

1、Benchmarking HDFS

1.1测试集群的写入

运行基准测试是检测HDFS集群是否正确安装以及表现是否符合预期的好方法。DFSIO是Hadoop自带的一个基准测试程序,可以用来分析HDFS集群的I/O能力

脚本: $HADOOP_HOME/bin/hadoop jar hadoop-mapreduce-client-jobclient-2.7.3-tests.jar TestDFSIO -write -nrFiles 10 -size 50MB

nrFiles:指定输入的文件个数

-size:指定每个输入文件的大小

基准测试将结果写道控制台,并且将结果添加到TestDFSIO_results.log中,可以自己指定要写入的文件名(-resFile)

1.2测试集群的读取

这一步要在第一步完成后进行,因为脚本要用到第一步写完的文件。

$HADOOP_HOME/bin/hadoop jar hadoop-mapreduce-client-jobclient-2.7.3-tests.jar TestDFSIO -read -nrFiles 10 -size 50MB

1.3删除运行基准测试产生的文件

$HADOOP_HOME/bin/hadoop jar hadoop-mapreduce-client-jobclient-2.7.3-tests.jar TestDFSIO -clean

2、删除节点

用下面的方法可以方便优雅的将节点从集群中解除掉。(从slaves文件中删除掉节点名也可以,简单但不优雅)2.1建立一个文件存放要删除的节点,hdfs_exclude.txt2.2在hdfs-site.xml中配置如下属性和value<property>
   <name>dfs.hosts.exclude</name>
   <value>$HADOOP_HOME/etc/hadoop/hdfs_exclude.txt</value>
   <description>DFS exclude</description>
</property>2.3 运行:$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes2.4 解除节点的过程会在HDFS的webUI显示。解除过程可以使用脚本进行监控。在解除节点的过程完成前,不要关闭节点>bin/hadoop dfsadmin -report

在一个解除一个节点的过程中,HDFS会将原来存在节点上的blocks移动到集群中其它的节点。解除节点的过程可能会很慢,因为HDFS会小心的进行避免集群的崩溃。在解除节点的过程结束前,关闭节点会导致数据的丢失。在解除过程结束后,在exclude文件中的节点不会再与namenode节点通信。

3、Using multiple disks/volumes and limiting HDFS disk usageHadoop支持为DataNode数据目录(datanode data directory)指定多个存储路径,这种特性允许我们使用DataNode的多个disk/valumes存放数据blocks,Hadoop会尽量在每个存储目录存放相同大小的数据。Hadoop也支持限制HDFS使用硬盘空间的大小。实现方法:3.1 Create HDFS data storage directories in each volume.3.2 In the $HADOOP_HOME/conf/hdfs-site.xml , provide a comma-separated listof directories corresponding to the data storage locations in each volume under thedfs.data.dir directory.<property><name>dfs.data.dir</name><value>/u1/hadoop/data,/u2/hadoop/data</value></property>3.3 To limit the HDFS disk usage, add the following property to $HADOOP_HOME/conf/hdfs-site.xml to reserve space for non-DFS usage. The value specifies thenumber of bytes that HDFS cannot use per volume.<property><name>dfs.datanode.du.reserved</name><value>6000000000</value><description>Reserved space in bytes per volume. Always leavethis much space free for non dfs use.</description></property>

4、设置HDFS的block大小hdfs通过把存储的文件拆分成固定的大小block,存放在集群上。默认的hdfs的block大小是64MB。block的大小会影响hdfs上对文件系统进行操作的性能,如果存储和处理的是非常大的文件,那么更大的block大小会更有效。数据产品中block的大小,会影响MapReduce计算的性能,因为hadoop默认的行为是为每一个数据块中存储的数据创建一个map任务。4.1设置block的大小:在hdfs-site.xml中添加属性<property><name>dfs.block.size</name><value>134217728</value></property>4.2 可以在上传文件的时候指定要上传路径的块的大小To specify the HDFS block size for specific file paths, you can specify the block sizewhen uploading the file from the command line as follows:>bin/hadoop fs -Ddfs.blocksize=134217728 -put data.in /user/foo

5、Setting the file replication factor(设置文件副本因子)HDFS在集群上将文件拆分成多个固定大小的blocks来存放。这些数据块在不同的datanode上保存有副本,以增加容错性。5.1在hdfs-site.xml中设置<property><name>dfs.replication</name><value>2</value></property>5.2如果要在上传文件的时候设置副本个数,可以使用下面的命令行>bin/hadoop fs -D dfs.replication=1 -copyFromLocal non-critical-file.txt /user/foo5.3 setrep命令可以用来改变在hdfs中已经存在的文件或文件路径的副本因子。The setrep command can be used to change the replication factor of files or filepaths that are already in the HDFS.> bin/hadoop fs -setrep 2 non-critical-file.txt --设置.txt文件的副本数为2个Replication 3 set: hdfs://myhost:9000/user/foo/non-critical-file.txtThe setrep 命令的语法如下:hadoop fs -setrep [-R] <path>The <path> parameter of the setrep command specifies the HDFS path where thereplication factor has to be changed. The –R option recursively sets the replicationfactor for files and directories within a directory.

5.4The replication factor of a file is displayed when listing the files using the ls command.>bin/hadoop fs -lsFound 1 item-rw-r--r--2foo supergroup ... /user/foo/non-critical-file.txt--2就是表示副本因子是2
时间: 2024-08-26 08:29:56

Hadoop笔记HDFS(1)的相关文章

Hadoop笔记(一)

1.Hadoop要解决2个问题 海量数据的存储--HDFS 海量数据的分析--MapReduce HDFS的设计目标 Very large files Streaming data access Commodity hardware HDFS不适合的场景 Low-latency data access Lots of small files Multiple writers,arbitrary file modifications 2.宿主机(windows)和客户机(虚拟机中的linux)网络

hadoop之 HDFS fs 命令总结

版本:Hadoop 2.7.4 -- 查看hadoop fs帮助信息[[email protected] sbin]# hadoop fsUsage: hadoop fs [generic options][-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-checksum <src> ...][-chgrp [-R] GROUP PATH...][-chmod [-R] &l

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

Hadoop之HDFS

摘要:HDFS是Hadoop的核心模块之一,围绕HDFS是什么.HDFS的设计思想和HDFS的体系结构三方面来介绍. 关键词:Hadoop  HDFS   分布式存储系统 HDFS是Hadoop的核心模块之一,HDFS是什么?它是Hadoop分布式文件系统(Hadoop Distributed File System),摘录Apache 组织关于HDFS的介绍"The Hadoop Distributed File System (HDFS) is a distributed file syst

Hadoop之HDFS文件操作

摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具:另一种是JavaAPI,即利用Hadoop的Java库,采用编程的方式操作HDFS的文件.

hadoop和hdfs环境搭建

参考链接:http://blog.csdn.net/zolalad/article/details/11470449 环境:ubuntu14.04 hadoop1.0.1 下面以3台机器为例,讲解安装过程 1) 准备3台机器,一台作为nameNode,命名为master,两台作为dataNode,命名为slave01, slave02.强调命名是为了方便管理,其实命名无所谓.如果已命名为其它名称,可通过编辑/etc/hostname进行更改. 2) 为所有主从节点配置静态ip,因为主从节点间需要

Hadoop之——HDFS

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45849029 Hadoop 主要由HDFS和MapReduce 引擎两部分组成.最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件.HDFS 的上一层是MapReduce 引擎,该引擎由JobTrackers 和TaskTrackers组成.  一.HDFS基本概念    1.数据块 HDFS默认的最基本的存储单位是64M的数据块,这个数据块可以理解和一般的文件里面

浅谈Hadoop下HDFS文件系统

Hadoop下HDFS文件系统 在这里我们对Hadoop的基本概念,历史功能就不做过多的阐述,重点在对于他的文件系统做一些了解和阐述. HDFS(Hadoop distributed file system)是一个分布式文件系统.具有高容错性(fault-tolerant),使得他能够部署在低廉的硬件上.他可以提供高吞吐率来访问应用程序的数据.HDFS放宽了可移植操作系统接口的要求.这样就可以实现以流式的形式来访问文件系统的数据. HDFS的设计目标: 检测和快速回复硬件故障 流式的数据访问 简

【Hadoop】HDFS - 创建文件流程详解

1.本文目的 通过解析客户端创建文件流程,认知hadoop的HDFS系统的一些功能和概念. 2.主要概念 2.1 NameNode(NN): HDFS系统核心组件,负责分布式文件系统的名字空间管理.INode表的文件映射管理.如果不开启备份/故障恢复/Federation模式,一般的HDFS系统就只有1个NameNode,当然这样是存在单点故障隐患的. NN管理两个核心的表:文件到块序列的映射.块到机器序列的映射. 第一个表存储在磁盘中,第二表在NN每次启动后重建. 2.2 NameNodeSe