Hadoop自学笔记(七)Hadoop环境配置和优化
概览
1. Hadoop Trouble Shooting
查看logs, 存储位置等
2. Hadoop Administration
常见Hadoop管理员面对的问题
3. Hadoop Optimization
如何根据环境配置,优化hadoop
学习如何使用Hadoop自带的工具来产生大数据用于性能测试
1. Trouble Shooting
logs的存储位置, 根目录的logs文件夹
logs按照machine, user, daemon来命名
hadoop-username-daemon-manchine.log
Hadoop的存储位置:根目录的tmp目录
从上图,右下角可以看出tmp目录就是Dfs和mapred的根目录,从而也就是Hadoop的根目录
常见错误:执行格式化hadoop namenode-format后,重启start-all.sh
这时候,在HNData 那边,就会发现jps命令里面没有DataNode了
这时候,可以查看log文件,看看错误在哪里
这里这个问题是格式化namenode的时候,其存储的DataNode的namespaceID变化了,但是在DataNode里面没有变化,在logs里面可以查到。只需要去修改相应的namespaceID即可。或者直接把DataNode的tmp目录删掉。一般来说,DataNode启动起来以后,就可以去Web UI查看log而不需要在命令行里面看了。
2. Hadoop Administration
下面是一些Hadoop管理员常常面临的问题,这里只列出了问题,但是没有给出完整的答案,请自行查找答案
Commission/Decommission,what’s the process, what file you want to add?
Commissioning就是添加一个节点到slaves文件,然后配置mapred-site.xml即可。
Decommission就是添加一个exclude文件,可以把它从Slaves文件中删除
Check for corruption
使用fsck -delete可以删除不正常的Blocks
Default & Override Configs
在Source目录下有default的配置
Copy data in, out, across clusters
使用MapReduce来完成
Tunning & Optimization
Trouble shooting jobs & Nodes
使用Log文件
Safe mode
只读模式
3. Hadoop Optimization
dfs.block.size
这个是每一个Mapper会分配到的数据大小;如果你的数据很大,而这个数值分配的很小,就会导致分成很多mapper,每一个mapper完成的很快,但是把这些mapper整合起来就会很花费时间。小的64mb, 大的256mb
Io.sort.mb的数量是io.sort.factor的10倍,io.sort.factor是决定了缓存文件的数量
Mapred.map.tasks不是很重要,因为Mapper的数量主要dfs.block.size决定;
Mapred.reduce.tasks很重要,因为默认它只设了一个,合理的数量是:
(0.95 ~ 1.75) * nodes * r.max
其中r.max就是mapred.tasktracker.reduce.tasks.maximum
Mapred.tasktracker.map/reduce.tasks.maximum的数量是cpu核心数-1
Jvm内存大小 = (m.max + r.max) * java.pots
注意:要使用Commpression/decompression来节省网络带宽
检测MapReduce性能:
hadoop jar $HADOOP_PREFIX/hadoop-*examples*.jar teragen 5343800 /data/input
来生成一个大数据用于处理
来执行
hadoop jar $HADOOP_PREFIX/hadoop-*examples*.jar terasort5343800 /data/out
然后在Web UI里面查看运行时间,通过调整上面不同的配置来配置好时间。
(注意:如果使用虚拟机,优化过的配置可能并不会真的带来性能优化,因为虚拟机的缘故,返回运行会更慢)
附录:上面图片里的配置文件:
core
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://HNName:10001</value>
- <description>NameNode configuration. host/IP:port</description>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/usr/local/hadoop/tmp</value>
- <description>Base for other directories</description>
- </property>
- <property>
- <name>fs.checkpoint.dir</name>
- <value>disk1/hdfs/secondname,disk2/hdfs/secondname</value>
- <description>Secondary NameNode storage</description>
- </property>
- <property>
- <name>webinterface.private.actions</name>
- <value>true</value>
- <description>Advanced options in Web UIs</description>
- </property>
- </configuration>
hdfs
- <configuration>
- <property>
- <name>dfs.name.dir</name>
- <value>disk1/hdfs/name,disk2/hdfs/name</value>
- <description>NameNode storage (fsimage)</description>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>disk1/hdfs/data,disk2/hdfs/data</value>
- <description>DataNode block storage</description>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- <description>Replication factor</description>
- </property>
- <property>
- <name>dfs.block.size</name>
- <value>67108864</value>
- <description>Size of blocks HDFS splits new files up by</description>
- </property>
- <property>
- <name>dfs.namenode.handler.count</name>
- <value>10</value>
- <description># threads Namenode uses to serve requests</description>
- </property>
- <property>
- <name>dfs.datanode.handler.count</name>
- <value>3</value>
- <description># threads DataNodes uses to serve requests</description>
- </property>
- </configuration>
mapred
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>HNName:10002</value>
- <description>JobTracker configuration. host/IP:port</description>
- </property>
- <property>
- <name>mapred.local.dir</name>
- <value>disk1/mapred/data,disk2/mapred/data</value>
- <description>MapReduce intermediate storage</description>
- </property>
- <property>
- <name>io.sort.factor</name>
- <value>10</value>
- <description>Maximum # of streams to merge when sorting</description>
- </property>
- <property>
- <name>io.sort.mb</name>
- <value>100</value>
- <description>Size of memory buffer used when sorting map outputs</description>
- </property>
- <property>
- <name>mapred.map.tasks</name>
- <value>2</value>
- <description># of map tasks that can run simultaneously</description>
- </property>
- <property>
- <name>mapred.reduce.tasks</name>
- <value>1</value>
- <description># of reduce tasks that can run simultaneously</description>
- </property>
- <property>
- <name>mapred.tasktracker.map.tasks.maximum</name>
- <value>2</value>
- <description># of map slots on a TaskTracker</description>
- </property>
- <property>
- <name>mapred.tasktracker.reduce.tasks.maximum</name>
- <value>2</value>
- <description># of reduce slots on a TaskTracker</description>
- </property>
- <property>
- <name>mapred.child.java.opts</name>
- <value>-Xmx200m</value>
- <description>JVM options. Map/Reduce task memory.</description>
- </property>
- </configuration>
Hadoop自学笔记(七)Hadoop环境配置和优化相关推荐
- ESP32_WIFI Mesh学习笔记1---Ardino IDE 环境配置
ESP_WIFI MESH学习笔记1-Ardino IDE 环境配置 文章目录 ESP_WIFI MESH学习笔记1---Ardino IDE 环境配置 前言 一.Arduino IDE配置问题 二. ...
- Hadoop自学笔记(三)MapReduce简单介绍
1. MapReduce Architecture MapReduce是一套可编程的框架,大部分MapReduce的工作都能够用Pig或者Hive完毕.可是还是要了解MapReduce本身是怎样工作的 ...
- MIT JOS学习笔记01:环境配置、Boot Loader(2016.10.22)
未经许可谢绝以任何形式对本文内容进行转载! 一.环境配置 关于MIT课程中使用的JOS的配置教程网上已经有很多了,在这里就不做介绍,个人使用的是Ubuntu 16.04 + qemu.另注,本文章中贴 ...
- 【MindStudio训练营第一期】【昇腾AI训练营新手班学习笔记】开发环境配置
准备 购买云服务器,安装提供的镜像 华为云:https://www.huaweicloud.com 下载MindStudio(windows),安装 MindStuidio下载页: https://w ...
- hadoop 单机单间_零基础入门hadoop大数据四——Hadoop框架前奏,JDK环境配置
~~~~~~~~~一天更新两篇~~~~~~ 一.本章节完成的内容 1.使用secureCRT工具连接linux主机(配置非常方便,方便粘贴) 2.上传安装包到linux上(用filezilla) 3. ...
- Hadoop学习笔记—14.ZooKeeper环境搭建
从字面上来看,ZooKeeper表示动物园管理员,这是一个十分奇妙的名字,我们又想起了Hadoop生态系统中,许多项目的Logo都采用了动物,比如Hadoop采用了大象的形象,所以我们可以猜测ZooK ...
- Hadoop自学笔记(二)HDFS简单介绍
1. HDFS Architecture 一种Master-Slave结构.包括Name Node, Secondary Name Node,Data Node Job Tracker, Task T ...
- Hadoop学习笔记-关于Hadoop你不得不知道的12个事实
[IT168 评论]现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软件库,并以自己儿子的大象玩偶为其命名的时 ...
- vim学习笔记一(环境配置及编译文件)
今天开始在linux进行编程学习,首先是环境的配置.使用的ubuntu系统自带的vim.但是在使用前要先对vim进行配置,使其更友好. 配置方法是对vimrc进行修改,分享下我的vimrc,(下载地址 ...
最新文章
- CornerNet:实现demo、可视化heatmap、测试各类别精度
- Java必须了解的“递归”与“IO流”!!!
- 2D简单图形相关算法罗列
- 什么样的编程姿势才没有bug
- wordpressQQ登陆php代码_WordPress实现前台登录功能
- 关于WCF、WebAPI、WCFREST、WebService之间的区别总结
- java8 策略模式_Java 8中的策略模式
- 牛客网与leetcode刷题(高频题中简单or中等的)
- 小米:停止2016年发布的红米手机升级推送
- retext代码高亮_实例简介Markdown格式
- 如何避免程序员的大脑超载?
- 单片机跑马灯12种c语言程序设计,基于单片机多模式带音乐跑马灯设计附完整程序代码.doc...
- 英语二大小作文总结笔记
- 制作属于你的终端词典
- 影响因素分析论文用什么模型好?
- python爬虫语句_Python爬虫练手之爬句子迷
- 统一网关Gateway
- 特殊节日网站全体变成黑灰色
- CN-DBpedia备忘
- 聊聊程序员与英语,程序员不学英语行吗?
热门文章
- 【Android】Vitamio 4.0 公测版发布(2013-05-28)
- 某厂商APT防御思路
- 如何进行无线网络中继设置
- WPA/WPA2安全认证加密原理详解
- python 安装serial模块
- programcreek
- outlook邮箱显示一直启动中_Outlook 2016 无法正常启动,显示“正在处理” 然而处理了好几天也没有处理完...
- mysql主从复制原理 简书_mysql主从复制,从原理讲到安装配置,全干货
- html 下拉框字体,怎么把select下拉菜单里的文字设置成左右滚动效果
- vue暴露的全局方法_Vue中实现全局方法