概覽
1.?Hadoop?Trouble?Shooting
查看logs,?存儲(chǔ)位置等
2.?Hadoop?Administration
常見(jiàn)Hadoop管理員面對(duì)的問(wèn)題
3.?Hadoop?Optimization
如何根據(jù)環(huán)境配置,優(yōu)化hadoop
學(xué)習(xí)如何使用Hadoop自帶的工具來(lái)產(chǎn)生大數(shù)據(jù)用于性能測(cè)試
1.?Trouble?Shooting
logs的存儲(chǔ)位置,?根目錄的logs文件夾
logs按照machine,?user,?daemon來(lái)命名
hadoop-username-daemon-manchine.log
?
?
Hadoop的存儲(chǔ)位置:根目錄的tmp目錄
從上圖,右下角可以看出tmp目錄就是Dfs和mapred的根目錄,從而也就是Hadoop的根目錄
常見(jiàn)錯(cuò)誤:執(zhí)行格式化hadoop?namenode-format后,重啟start-all.sh
這時(shí)候,在HNData?那邊,就會(huì)發(fā)現(xiàn)jps命令里面沒(méi)有DataNode了
這時(shí)候,可以查看log文件,看看錯(cuò)誤在哪里
這里這個(gè)問(wèn)題是格式化namenode的時(shí)候,其存儲(chǔ)的DataNode的namespaceID變化了,但是在DataNode里面沒(méi)有變化,在logs里面可以查到。只需要去修改相應(yīng)的namespaceID即可。或者直接把DataNode的tmp目錄刪掉。一般來(lái)說(shuō),DataNode啟動(dòng)起來(lái)以后,就可以去Web?UI查看log而不需要在命令行里面看了。
2.?Hadoop?Administration
下面是一些Hadoop管理員常常面臨的問(wèn)題,這里只列出了問(wèn)題,但是沒(méi)有給出完整的答案,請(qǐng)自行查找答案
Commission/Decommission,what’s?the?process,?what?file?you?want?to?add?
Commissioning就是添加一個(gè)節(jié)點(diǎn)到slaves文件,然后配置mapred-site.xml即可。
Decommission就是添加一個(gè)exclude文件,可以把它從Slaves文件中刪除
??
Check?for?corruption
使用fsck?-delete可以刪除不正常的Blocks
?
Default?&?Override?Configs
在Source目錄下有default的配置
?
Copy?data?in,?out,?across?clusters
使用MapReduce來(lái)完成
?
Tunning?&?Optimization
?
Trouble?shooting?jobs?&?Nodes
使用Log文件
Safe?mode
只讀模式
?
3.?Hadoop?Optimization
?
dfs.block.size
這個(gè)是每一個(gè)Mapper會(huì)分配到的數(shù)據(jù)大小;如果你的數(shù)據(jù)很大,而這個(gè)數(shù)值分配的很小,就會(huì)導(dǎo)致分成很多mapper,每一個(gè)mapper完成的很快,但是把這些mapper整合起來(lái)就會(huì)很花費(fèi)時(shí)間。小的64mb,?大的256mb
?
Io.sort.mb的數(shù)量是io.sort.factor的10倍,io.sort.factor是決定了緩存文件的數(shù)量
??
Mapred.map.tasks不是很重要,因?yàn)?/span>Mapper的數(shù)量主要dfs.block.size決定;
?
Mapred.reduce.tasks很重要,因?yàn)槟J(rèn)它只設(shè)了一個(gè),合理的數(shù)量是:
(0.95?~?1.75)?*?nodes?*?r.max
其中r.max就是mapred.tasktracker.reduce.tasks.maximum
?
Mapred.tasktracker.map/reduce.tasks.maximum的數(shù)量是cpu核心數(shù)-1
?
Jvm內(nèi)存大小?=?(m.max?+?r.max)?*?java.pots
?
注意:要使用Commpression/decompression來(lái)節(jié)省網(wǎng)絡(luò)帶寬
?
?
檢測(cè)MapReduce性能:
hadoop?jar?$HADOOP_PREFIX/hadoop-*examples*.jar?teragen?5343800?/data/input
來(lái)生成一個(gè)大數(shù)據(jù)用于處理
?
來(lái)執(zhí)行
hadoop?jar?$HADOOP_PREFIX/hadoop-*examples*.jar?terasort5343800?/data/out
??
然后在Web?UI里面查看運(yùn)行時(shí)間,通過(guò)調(diào)整上面不同的配置來(lái)配置好時(shí)間。
?
(注意:如果使用虛擬機(jī),優(yōu)化過(guò)的配置可能并不會(huì)真的帶來(lái)性能優(yōu)化,因?yàn)樘摂M機(jī)的緣故,返回運(yùn)行會(huì)更慢)
附錄:上面圖片里的配置文件:
core
[html] view plaincopy
<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
[html] view plaincopy
<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
[html] view plaincopy
<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>?
總結(jié)
以上是生活随笔為你收集整理的Hadoop自学笔记(七)Hadoop环境配置和优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。