`

mapreduce应用开发

 
阅读更多

一:用于配置的api

hadoop中的组件是通过hadoop自己的配置api来配置的。一个Configurate类的实例代表配置属性及其取值的一个集合。Configurate从资源配置文件中对取属性值。

如果有个多个资源文件来定义一个配置,后来添加资源文件会覆盖之前定义的属性。

管理配置文件,由于在开发hadoop应用时,经常需要在本地运行和集群运行之间进行切换。使hadoop配置文件包含每个集群的连接设置,并且在运行hadoop应用或工具时指定使用哪一个连接设置,最好把这些文件放在hadoop安装目录树之外,以便于轻松在hadoop不同版本之间切换。

 

 

二:mapreduce的作业调优

1:mapper的数量:mapper需要运行多长时间,如果平均只运行几秒钟,则可以看是否能用更少mapper运行更长的时间,通常是一分钟左右。时间长度取决于使用的输入格式。

2:reducer的数量:为了达到最高性能,集群中reducer数应该略小于reducer的任务槽数。这将使reducer能够在同一个周期完成任务,并在reducer阶段充分使用集群

3:combiner:作业能否充分利用combiner来减少通过shuffle传输的数据量。

4:中间值的压缩:对map输出进行压缩几乎总能使作业执行得更快

5:自定义序列:如果使用自定义的writable对象或自定义的comparator,则必须确保已实现RawComparator

6:调整shuffle:mapreduce的shuffle过程可以对一些内存管理的参数进行调整,以弥补性能的不足。

 

三:mapreduce的工作流

1:将问题分解成mapreduce作业,mapper和reducer完全可以进一步分解。

2:jobControl:多个job时,由jobControl控制先后顺序。

3:Ooize作为服务器运行,客户端提交一个立即或稍后执行的工作流定义到服务器,在Ooize中,工作流是一个有动作节点和控制流节点组成的有向无环图

动作节点执行工作流任务,在hdfs中移动文件,运行mapreduce,pig,hive和sqoop导入等

控制流节点,控制工作流的执行情况

工作流结束后,Ooize通过发送一个http的回调向客户端通知工作流的状态。

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics