环境: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.txt
2.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 -refreshNodes
2.4 解除节点的过程会在HDFS的webUI显示。解除过程可以使用脚本进行监控。在解除节点的过程完成前,
不要关闭节点
>bin/hadoop dfsadmin -report 在一个解除一个节点的过程中,HDFS会将原来存在节点上的blocks移动到集群中其它的节点。解除节点的过程可能会很慢,
因为HDFS会小心的进行避免集群的崩溃。在解除节点的过程结束前,关闭节点会导致数据的丢失。在解除过程结束后,在
exclude文件中的节点不会再与namenode节点通信。 3、Using multiple disks/volumes and limiting HDFS disk usage
Hadoop支持为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 list
of directories corresponding to the data storage locations in each volume under the
dfs.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 the
number 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 leave
this 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 size
when 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/foo
5.3 setrep命令可以用来改变在hdfs中已经存在的文件或文件路径的副本因子。
The setrep command can be used to change the replication factor of files or file
paths 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.
txt
The setrep 命令的语法如下:
hadoop fs -setrep [-R] <path>
The <path> parameter of the setrep command specifies the HDFS path where the
replication factor has to be changed. The –R option recursively sets the replication
factor 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 -ls
Found 1 item
-rw-r--r--foo supergroup ... /user/foo/non-critical-file.txt--2就是表示副本因子是2

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

  1. Hadoop笔记HDFS(2)

    高级Hadoop MapReduce管理 1 调试部署好的Hadoop的配置 2 运行基准测试检验Hadoop的安装 3 重新利用JVM提升性能 4 容错性 5 调试脚本-分析失败任务原因 6 设置失 ...

  2. hadoop笔记-hdfs文件读写

    概念 文件系统 磁盘进行读写的最小单位:数据块,文件系统构建于磁盘之上,文件系统的块大小是磁盘块的整数倍. 文件系统块一般为几千字节,磁盘块一般512字节. hdfs的block.pocket.chu ...

  3. Hadoop学习笔记—HDFS

    目录 搭建安装 三个核心组件 安装 配置环境变量 配置各上述三组件守护进程的相关属性 启停 监控和性能 Hadoop Rack Awareness yarn的NodeManagers监控 命令 hdf ...

  4. Hadoop学习笔记-HDFS命令

    进入 $HADOOP/bin 一.文件操作 文件操作 类似于正常的linux操作前面加上“hdfs dfs -” 前缀也可以写成hadoop而不用hdfs,但终端中显示 Use of this scr ...

  5. hadoop笔记之hdfs shell操作

    HDFS命令行操作 HDFS命令行操作 (以下是hadoop 1.x 版本的命令使用) 装好hadoop之前首先要进行一个格式化 hadoop namenode -format 运行之后,可以将文件夹 ...

  6. hadoop之HDFS学习笔记(一)

    主要内容:hdfs的整体运行机制,DATANODE存储文件块的观察,hdfs集群的搭建与配置,hdfs命令行客户端常见命令:业务系统中日志生成机制,HDFS的java客户端api基本使用. 1.什么是 ...

  7. Hadoop基础-HDFS集群中大数据开发常用的命令总结

    Hadoop基础-HDFS集群中大数据开发常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本盘博客仅仅列出了我们在实际生成环境中常用的hdfs命令,如果想要了解更多, ...

  8. Hadoop基础-HDFS的API常见操作

    Hadoop基础-HDFS的API常见操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习HDFS时的一些琐碎的学习笔记, 方便自己以后查看.在调用API ...

  9. Hadoop基础-Hdfs各个组件的运行原理介绍

    Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...

随机推荐

  1. MySQL Server-id踩到的坑

    最近踩到一个说大不大,说小不小的坑,在此分享出来给各位同学.事情是这样的,线上有2台服务器,1主1从.A -> B,B服务器从A服务器同步数据.每天使用xtrabackup在B服务器上面进行全备 ...

  2. 让Session失效的三种方法

    我们设置SESSION失效的时间,是为了确保在用户长时间不与服务器交互的情况下,可以自动退出登录.本文介绍了三种设置SESSION失效的方法,希望对你有帮助. Session对象是HttpSessio ...

  3. C++_static与非static成员(函数)

    static与非static成员(函数)  <C++ Primer>第4版399页: 对于特定类类型的全体对象而言,访问一个全局变量有时是必要的.然而,全局变量会破坏封装:对象需要支持特定 ...

  4. generator自动生成mybatis配置和类信息

    generator自动生成mybatis的xml配置.model.map等信息: 1.下载mybatis-generator-core-1.3.2.jar包.        网址:http://cod ...

  5. requirejs解决异步模块加载方案

    他首先会遍历enableRegistry取出其中定义的模块,并且将没有加载成功的模块标识注入noLoads数组,如果过期了这里就会报错 如果上述没问题还会做循环依赖的判断,主要逻辑在breakCycl ...

  6. Python脚本模拟登录网页之GitHub篇

    1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现authenticity_token这个字段每次登录时都不一样. POSTDATA=commit= ...

  7. ionic 运用pouchdb/sqlite 数据库做本地存储

    配置数据库环境需要3步: 1.安装slqite插件 在ionic 工程目录对应终端执行一下命令: npm install cordova-plugin-sqlite 2.安装pouchdb 在ioni ...

  8. Linux搭建QT环境笔记

    *** [../../../../lib/libQtWebKit.so.4.7.4] Error 1make[1]: Leaving directory `/home/cloverbox/qt-eve ...

  9. linux查看是否被入侵

    一.检查系统日志 lastb命令检查系统错误登陆日志,统计IP重试次数 二.检查系统用户 1.cat /etc/passwd查看是否有异常的系统用户 2.grep “0” /etc/passwd查看是 ...

  10. http-2.4.18 安装

    编译最新的httpd 2.4.18     编译提示apr版本低于1.4 rpm repo源是1.39的 因此编译apr 下载 apr apr-util  apr-iconv [root@ansibl ...