高级Hadoop MapReduce管理

1 调试部署好的Hadoop的配置
2 运行基准测试检验Hadoop的安装
3 重新利用JVM提升性能
4 容错性
5 调试脚本-分析失败任务原因
6 设置失败比例以及忽略无效的记录
7 共享型用户Hadoop集群
8 Hadoop的安全性
9 使用Hadoop工具interface

内容目录

一调整参数

1、首先需要关掉正在运行的Hadoop集群(stop-dfs.sh以及stop-yarn.sh)

存放Hadoop参数的主要是下面4个文件:

core-site.xml:存放对整个集群的公共配置

hdfs-site.xml:存放对HDFS的配置

mapred-site.xml:存放对MapReduce的配置

yarn-site.xml:yarn的配置

上面的文件都是XML格式:name-value的内容格式。<configuration>是最顶层的tag,<property>定义每个属性

例如:<configuration>
<property>
<name>mapred.reduce.parallel.copies</name>
<value>2</value>
</property>
...
</configuration>

下面介绍修改存放hadoop日志的路径以及配置每个task的map和reduce个数的方法

1.  创建一个存放日志的文件,例如/home/hadoop_logs .
2. 在hadoop-env.sh中HADOOP_LOG_DIR这一行取消注释,并且赋值为新的路径。
3. 在mapred-site.xml中添加下面两个属性
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>2 </value>
</property>
<property>

<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>2 </value>
</property>
4. 重启HDFS(start-dfs.sh)和MapReduce(start-yarn.sh)
5. ps –ef|grep hadoop 检验hadoop进程个数

HADOOP_LOG_DIR 重新定义了Hadoop输出日志的路径

mapred.tasktracker.map.tasks.maximum 和 mapred.tasktracker.reduce.tasks.maximum

连个属性定义了每个TaskTracker 在特定时刻能够运行的map和reduce任务的最大个数
所有在*-site.xml做的修改,都需要在重新启动Hadoop后系统重新加载生效。

二运行基准测试

Hadoop自带多个基准测试程序。我们可以使用他们验证Hadoop的安装并测试Hadoop的性能。

2.     Run the randomwriter Hadoop job using the following command:
>bin/hadoop jar hadoop-examples-1.0.0.jarrandomwriter
-Dtest.randomwrite.bytes_per_map=100
-Dtest.randomwriter.maps_per_host=10 /data/unsorted-data
Here the two parameters, test.randomwrite.bytes_per_map and test.
randomwriter.maps_per_host 这两个参数指定由map产生的数据大小和map的数量
3.  执行排序程序:
>bin/hadoop jar hadoop-examples-1.0.0.jar sort /data/unsorted-data
/data/sorted-data
4.    检验前面运行的最终结果
>bin/hadoop jar hadoop-test-1.0.0.jar testmapredsort -sortInput /
data/unsorted-data -sortOutput /data/sorted-data

其它的基准测试

Hadoop includes several other benchmarks.
TestDFSIO: 测试HDFS的IO性能
 nnbench:检验NameNode的硬件
 mrbench: 运行多个小的job
 TeraSort: 对1T的数据进行排序

三 对JVM重复使用提升性能

默认情况下,Hadoop会为每个map或reduce任务启动一个JVM,然而对多个task运行相同的jvm,

有时会显著的加快执行速度。

1.     运行WordCount的例子,并传递如下参数
>bin/hadoop jar hadoop-examples-1.0.0.jar wordcount –D mapred.job.
reuse.jvm.num.tasks=-1 /data/input1 /data/output1
2.  这时 (执行 ps –ef|grep hadoop)Hadoop会为每个task使用同样的JVM
However, passing arguments through the –D option only works if the job implements
the org.apache.hadoop.util.Tools interface. Otherwise, you should set the
option through the JobConf.setNumTasksToExecutePerJvm(-1) method.

我们可以在mapred-site.xml中设置属性mapred.job.reuse.jvm.num.tasks ,
这样就可以控制在hadopp中运行的JVM数,当设置为0或-1的时候Hadoop为每个task运行同样的JVM

四、容错性和投机性运行

选择Hadoop的主要优势是系统对容错性的支持。当运行一个job,特别是很大的job的时候,部分job

可能会由于各种原因失败(网络、硬盘、节点故障等等)。

在hadoop启动后JobTracker会监控TaskTrackers的执行情况,当TaskTrackers没有相应的时候,

hadoop会重新将task提交给其它的TaskTracker(Hadoop V2中ResourceNode负责资源的分配,而DataNode负责监控

自己节点的job运行情况)

由于集群中每个节点的性能不一样可能出现其它节点完成job,但是还有其它node没有完成job,这个时候hadoop会启动一个

空闲节点运行同样的job,然后tasktracker会使用最先运行完的节点的结果,并且结束掉另外一个还没运行完的节点。

bin/hadoop jar hadoop-examples-1.0.0.jar wordcount–Dmapred.map.tasks.
speculative.execution=false –D mapred.reduce.tasks.speculative.
execution=true /data/input1 /data/output1

待续...

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

  1. Hadoop笔记HDFS(1)

    环境:Hadoop2.7.3 1.Benchmarking HDFS 1.1测试集群的写入 运行基准测试是检测HDFS集群是否正确安装以及表现是否符合预期的好方法.DFSIO是Hadoop自带的一个基 ...

  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. 输出单向链表中倒数第k个结点

    描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* ...

  2. IP地址的分类与寻址

    IP地址:有一种标识符,被TCP/IP协议簇的IP层用来标识 连接到因特网的设备.IP协议的第4版IPv4地址是32位地址,是连接地址,定义了每一个连接到因特网上的设备(可以认为是主机的别名),而不是 ...

  3. Devexpress TreeList控件绑定显示父子节点对像

    今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...

  4. 如何查看JSP和Servlet版本

    我们在java web开发的过程中,有时在资料上可能会提到环境所要支持的JSP,Servlet版本.如果版本低就可能出现测试错误. 方法:打开tomcat的common/lib 目录下,有两个JAR文 ...

  5. Wcf 双工通信的应用

    概述 双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工ME ...

  6. junit测试框架

    import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Tes ...

  7. 安装Arch Linux(桌面环境)

    安装xorg-server # pacman -S xorg-server xorg-server-utils xorg-xinit 安装显卡驱动 如果不知道是什么显卡,就使用以下命令查看 # lsp ...

  8. ArcGIS Server GP服务发布与测试(基础版)

    版本:ArcGIS Server 10.4    环境:win10 测试目标:创建一个GP服务,功能为根据要素属性信息(如FID)选择出输入内容的对应匹配要素. 注:这个测试非常基础,仅供新手发布GP ...

  9. JQuery-筛选

    /* 六丶筛选 */ // console.log( $("div:first") ); // div#id_1 所有div中的第一个 // console.log( $(&quo ...

  10. Sublime Text3 常用快捷键

    1. 更改变量名的几种方法 a.选中变量,ctrl+d 一个个选择 b.选中变量,alt+F3   2.查找打开过的文件:Ctrl+P,然后输入最近的文件名就可以即时预览到文件内容. 3.ctrl+r ...