Hadoop学习笔记五
一、uber(u:ber)模式
MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效。
uber模式配置,在mapred-site.xml中进行配置,如下
mapreduce.job.ubertask.enable配置为true,默认为false。
mapreduce.job.ubertask.maxmaps默认为9。mapreduce.job.ubertask.maxreduces默认为1。
mapreduce.job.ubertask.maxbytes默认为一个块的大小即128M。
二、集群的时钟同步
集群中各节点的时间不一致时,运行mapreduce时可能会报错,token is expired,current time is xxxx found yyyyy。
配置集群的时钟同步的过程如下:
1.检查是否安装了ntp,rpm -qa|grep ntp,如果没安装则先安装。
2.开启ntpd服务,chkonfig ntpd on。重启服务service ntpd restart。
3.在时间服务器节点上编辑/etc/ntp.conf。
增加restrict 10.0.0.12 mask 255.0.0.0 nomodify notrap
注释掉server0.xxx,server1.xxx 和server2.xxx
去掉注释server 127.127.1.0和fudge 127.127.1.0 stratum 10
4.配置BIOS与系统时间同步,编辑/etc/sysconfig/ntpd
在OPTIONS的前一行添加SYNC_HWCLOCK=yes
5.配置集群中的其他机器
每10分钟与服务器同步一次,必须用root用户创建,用sudo命令时会出错。
#crontab -e
增加0-59/10 * * * * /usr/sbin/ntpdate xxxx(服务器的hostname)
6.检查是否成功ntpdate xxxx(服务器的hostname),查看2个服务器上时间的间隔值。
三、Web Application Proxy
用于防止Yarn遭受Web攻击,本身是ResourceManager的一部分,可通过配置独立进程。ResourceManager Web的访问基于守信用户,当Application Master运行于一个非受信用户,其提供给ResourceManager的可能是非受信连接,Web Application Proxy可以阻止这种连接提供给RM。
配置yarn-site.xml中添加yarn.web-proxy.address,值例如hostname:8089。
启动在上面hostname所对应的主机上执行sbin/yarn-deamon.sh start proxyserver后查看是否有webappproxyserver进程。
sbin/start-yarn.sh最下面的start proxyserver是注释掉的,需要放开注释。
四、mr应用程序日志配置在yarn上
默认的container的日志是在本地文件系统上,通过historyserver查看日志时会报错。可以进行日志的聚集功能配置,上传日志到hdfs的tmp目录。
在yarn-site.xml中进行配置:
yarn.log-aggregation-enable设置为true
yarn.log-aggregation.retain-seconds设置为604800,即7天。
五、MiniCluster
用户仅使用1个命令就可以启动1个单节点的Hadoop集群,不需要设置任何环境变量或者配置文件。
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0.jar minicluster
六、hadoop2.6.0作业恢复问题
mapred-site.xml中配置mapreduce.jobtracker.restart.recover配置为true。
第一次kill -9 appmaster,Hadoop会重启这个appmaster,但是在你第二次kill时候,就会发出异常。
在kill的时候假设你map task执行到99%重启appMaster也是0%开始,但是map Task执行完毕之后,在reduce Task kill,那么重启的时候就只执行reduce 的task。
七、启用日志聚合需要注意的
启用日志聚合后,一定要等hdfs启动完全后再启动yarn,否则会报错。日志聚合会将container的日志上传至hdfs。
八、日志查看
框架的日志默认在安装目录的logs目录,应用程序日志查看container的日志。
九、集群卸载节点
hdfs卸载datanode节点:
在namenode节点的hdfs-site.xml中增加配置:dfs.host.exclude值为一个文件的路径,在这个文件中增加需要卸载的datanode节点的全路径主机名。
刷新datanode状态,在namenode节点上只执行bin/hdfs dfsadmin -refreshNodes
关掉卸载节点的datanode进程。
yarn卸载nodemanager节点:
在resourcemanager节点的yarn-site.xml中增加配置:yarn.resourcemanager.nodes.exclude-path值为一个文件的路径,在这个文件中增加需要卸载的datanode节点的全路径主机名。
刷新yarn状态,在resourcemanager节点上只执行bin/yarn rmadmin -refreshNodes
关掉卸载节点的nodemanager进程。
Hadoop学习笔记五的更多相关文章
- hadoop学习笔记-目录
以下是hadoop学习笔记的顺序: hadoop学习笔记(一):概念和组成 hadoop学习笔记(二):centos7三节点安装hadoop2.7.0 hadoop学习笔记(三):hdfs体系结构和读 ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- Hadoop学习笔记(6) ——重新认识Hadoop
Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功 ...
- Hadoop学习笔记(2)
Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello ...
- Hadoop学习笔记(5) ——编写HelloWorld(2)
Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- Hadoop学习笔记(2) ——解读Hello World
Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello ...
随机推荐
- [51nod1206]Picture
给你一坨矩形,问这些矩形组成的所有多边形的周长之和. 分别求竖着的边和横着的边. 离散化后线段树,维护当前行(或者列)有多少没在多边形里的,添加矩形就变成添加.删除线段. 每次加线段或删线段时累加一下 ...
- c语言基础学习02_windows系统下的cmd命令
=============================================================================注意:cmd的命令很多,需要用的时候可以查询即 ...
- 刨根问底:什么是yum源,yum的工作原理又是什么
1.刨根问底---什么是yum源?yum的工作原理? 说到yum源就必须说到linux系统中特有的依赖关系问题,yum就是为了解决依赖关系而存在的.yum源就相当是一个目录项,当我们使用yum机制安装 ...
- 图解vue生命周期
学习vue时搞清楚生命周期可以帮助你知道什么时候在什么地方执行该执行的方法,话不多说上图: 复制下面代码可以在控制台更详细展示各个钩子的状态 <!DOCTYPE html> <htm ...
- [国嵌攻略][065][DM9000驱动程序设计]
移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...
- [国嵌笔记][020][ARM家族大检阅]
ARM芯片:2440(arm9) 6410(arm11) 210(cortex-A8) ARM核:arm9(arm-v4) arm11(arm-v6) cortex-A8(arm-v7) 指令架构:a ...
- Spark算子--take、top、takeOrdered
转载请标明出处http://www.cnblogs.com/haozhengfei/p/552e8a32eee9d50fe394dfdcb14c78f3.html take.top.takeOrder ...
- NGINX 配置404错误页面转向
什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...
- Spring学习之路三——第一个Spring程序(体会IoC)
体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...
- python环境搭建--pycharm的安装及使用
学习网址: --菜鸟教程(2.0和3.0) http://www.runoob.com/python/python-tutorial.html http://www.runoob.com/python ...