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 ...
随机推荐
- 剑指offer系列30-----删除链表中重复的节点
[题目]在一个排序的链表中,存在重复的结点, * 请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. * 例如,链表1->2->3->3->4->4->5 ...
- php的函数iconv在转"utf-8"到"gb2312"时会自动截断
最近在写网站后台时候,需要用到iconv函数把前端jquery Post来过的utf-8编码内容转成gb2312, 发现只有用iconv函数把内容的数据一转码数据就会无缘无故的少了一部分. 问了我 ...
- 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)
使用mysql做数据库还原的时候,由于有些数据很大,会出现这样的错误:The MySQL Server returned this Error:MySQL Error Nr. MySQL server ...
- Maven工程JAR包关联源码
注意看上面的图,勾选了"Download Artifact Sources"和“Download Artifact JavaDoc”以后,Maven便会自动将Manven工程中的所 ...
- spark MapOutputTrackerMaster
最近用了一个RowNumber() over()函数 进行三张4000万数据的关联筛选,建表语句如下: create table CiCustomerPortrait2 as SELECT ROW_N ...
- TNT平台
1, TNT平台 本词条缺少信息栏.名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! TNT平台中的开发平台是基于微软Jupiter平台的快速开发工具,开发者可以通过界面属性设定的方法来 ...
- Software Engineer
1, 软件工程师 软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.软件工程师是从事软件开发相关工作的人员的统称. 它是一个广 ...
- JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值
实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System. ...
- javascript代码注意事项
1 代码行末要加分好.原因<<javascript高级程序设计第三版21页第三行>> 2 初始化变量应该加上默认值因为使用typeof时 未声明和声明为初始化的值都返回unde ...
- ThinkPHP CURD返回结果参考
ThinkPHP CURD返回结果参考: 1)查询$table->find() ##返回一条记录,是一个关联数组,是一维数组.$table->select() ##返回第一维是索引数组,第 ...