Hadoop的奇技淫巧
(2-6为性能优化)(7-9为函数介绍)
1.在JobHistory里面可以看到job相关的一些信息,用start-all启动Hadoop时便可以进入端口号8088查看查看信息,但是无法进入端口号19888查看history。
只需要启动jobhistory即可,命令:mapred historyserver。想停止的话ctrl+c退出即可。
2.如果有很多小文件,单个文件产生一个mapper,资源比较浪费,把小文件预处理为大文件,再将大文件作为输入,可以节省很多的时间。使用CombineFileInputFormat(是Hadoop类库中的一个抽象类)也可以将多个文件打包到一个输入单元中,使性能得到提高。
3.dfs.block.size这个是块大小的设置,也就是说文件按照多大的size来切分块。一般来说,块的大小也决定了你map的数量。dfs.replication是复制数量的设置,不能为0。设置为1,就是在集群中存一份。设置为2,即做一份备份,也就是说数据在集群中有2份。这两项在hdfs-site.xml配置文件中设置。
4.Map阶段的输出首先存储在一定大小的内存缓冲区中,如果Map输出的大小超过一定限度,Map task就会将结果写入磁盘,等Map任务结束后再将它们复制到Reduce任务的节点上,如果数据量大,中间的数据交换会占用很多时间。可以通过将mapred.compress.map.output属性设置为true来对Map的输出数据进行压缩,同时还可以设置Map输出数据的压缩格式,通过设置mapred.map.output.compression.codec属性即可进行压缩格式的设置。
5.mapred.tasktracker.map.tasks.maximum的默认值是2,属性mapred.tasktracker.reduce.tasks.maximum的默认值也为2,可以在mapred-site.xml文件中将其设置为一个较大的值,提高整体性能。
6.mapred.child.java.opts这个参数是配置每个map或reduce使用的内存数量。默认的是200M。对于这个参数,我个人认为,如 果内存是8G,CPU有8个核,那么就设置成1G就可以了。实际上,在map和reduce的过 程中对内存的消耗并不大,但是如果配置的太小,则有可能出现”无可分配内存”的错误。
7.setup函数:在task启动之后只调用一次。可以将Map或Reduce函数中的重复处理放置到setup函数中,可以将Map或Reduce函数处理过程中可能使用的全局变量进行初始化,或从作业信息中获取全局变量,还可以监控task的启动。 setup只是对应task上的全局操作,而不是整个作业的全局操作。
8.cleanup函数:和setup函数正好相反,在task销毁之前执行一次。
9.run函数:如果想更完备的控制Map或者Reduce阶段,可以覆盖此函数,并像普通的Java类中的函数一样添加自己的控制内容,比如增加自己的task启动后和销毁之前的处理。
10.不断更新中…
Hadoop的奇技淫巧的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- 初识Hadoop、Hive
2016.10.13 20:28 很久没有写随笔了,自打小宝出生后就没有写过新的文章.数次来到博客园,想开始新的学习历程,总是被各种琐事中断.一方面确实是最近的项目工作比较忙,各个集群频繁地上线加多版 ...
- hadoop 2.7.3本地环境运行官方wordcount-基于HDFS
接上篇<hadoop 2.7.3本地环境运行官方wordcount>.继续在本地模式下测试,本次使用hdfs. 2 本地模式使用fs计数wodcount 上面是直接使用的是linux的文件 ...
- hadoop 2.7.3本地环境运行官方wordcount
hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...
- 【Big Data】HADOOP集群的配置(一)
Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- 程序员必须要知道的Hadoop的一些事实
程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...
- Hadoop 2.x 生态系统及技术架构图
一.负责收集数据的工具:Sqoop(关系型数据导入Hadoop)Flume(日志数据导入Hadoop,支持数据源广泛)Kafka(支持数据源有限,但吞吐大) 二.负责存储数据的工具:HBaseMong ...
- Hadoop的安装与设置(1)
在Ubuntu下安装与设置Hadoop的主要过程. 1. 创建Hadoop用户 创建一个用户,用户名为hadoop,在home下创建该用户的主目录,就不详细介绍了. 2. 安装Java环境 下载Lin ...
随机推荐
- GTD_百度百科
GTD就是Getting Things Done的缩写,翻译过来就是"把事情做完",GTD的核心理念概括就是必须记录下来要做的事,然后整理安排并自己一一去执行.GTD的五个核心原则 ...
- hibernate 组件(Component)映射
1.类Teacher public class Teacher { private int id; private String name; private String sex; private A ...
- codeforces 55D - Beautiful numbers(数位DP+离散化)
D. Beautiful numbers time limit per test 4 seconds memory limit per test 256 megabytes input standar ...
- MYSQL 安装更新,使用,管理,备份和安全等
如何安装更新,使用,管理,备份和安全,维护优化一个MYSQL系统. 一.MYSQL发展历史,特点.对SQL语法进行介绍 二.如何安装一个MYSQL系统 三四.如何利用SQL语言以及其他的客户工具对MY ...
- REST架构实质(转)
REST(Representational State Transfer) 曾经被误解为只是CRUD(增删改查),从这个层面上,好像REST只是和RPC一个层面的东西,没有什么了不起,其实这些都是对R ...
- db2删除数据库
1.断开所有连接 db2 stop application all force 2.停止数据库 db2stop 3.删除数据库(系统管理员权限下)db2 drop 数据库name
- VI下删除所有内容
让光标在一个位置 , 如果全删就放在问价开始的位置 , 在非编辑的状态下输入dG(注意大小写) , 这样光标之后的所有行都会被删掉
- 用友UAP
1, 用友UAP 用友集团UAP中心成立于2013年1月1日,隶属于用友集团,旨在为全球大中型企业和公共组织提供计算平台,并打造完整.统一的软件产业链生态系统,以先进的平台.技术和专业的服务成为客户信 ...
- JAVA集合小结
下面是我自己画的,关系画得没上面好,但我自己看着清楚些 还有一张下载来的: 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 Hash ...
- Python补充02 Python小技巧
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...