HDFS:
1.啟動(dòng)順序(面試題)
start-all.sh
nn dn snn
rm nm
2.hdfs dfsadmin
配置hadoop的目錄
~]$ vi .bash_profile
export HADOOP_HOME=/opt/software/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
~]$ . .bash_profile
當(dāng)前磁盤的多少:
~]$ hdfs dfsadmin -report
進(jìn)入安全模式:
~]$ hdfs dfsadmin -safemode enter
安全模式是否可以上傳:
~]$ echo "345">jepson.log
~]$ hdfs dfs -put jepson.log /
put: Cannot create file/jepson.log._COPYING_. Name node is in safe mode.
退出安全模式:
~]$ hdfs dfsadmin -safemode leave
退出安全模式之后上傳:
~]$ hdfs dfs -put jepson.log /
~]$ hdfs dfs -ls /
1、多態(tài)機(jī)器的磁盤存儲(chǔ)分布不均勻?
解決方案:
1.1 不加新機(jī)器,原機(jī)器的磁盤分布不均勻:
一般設(shè)置50M
~]$ hdfs dfsadmin -setBalancerBandwidth 52428800
Balancer bandwidth is set to 52428800
sbin]$ ./start-balancer.sh
等價(jià)
sbin]$ hdfs balancer
Apache Hadoop集群環(huán)境: shell腳本每晚業(yè)務(wù)低谷時(shí)調(diào)度
CDH集群環(huán)境: 忽略
1.2 加新機(jī)器,原機(jī)器的磁盤比如450G,現(xiàn)在的新機(jī)器磁盤規(guī)格是5T
在業(yè)務(wù)低谷時(shí),先將多臺(tái)新機(jī)器加入到HDFS,做DN;
然后選一臺(tái)的DN下架,等待HDFS自我修復(fù)塊3份(網(wǎng)絡(luò)和io最高的,也是最有風(fēng)險(xiǎn)性的)
2、一臺(tái)機(jī)器的多個(gè)磁盤分布不均勻?
2.1無論加不加磁盤,且多塊磁盤的分布不均勻
https://hadoop.apache.org/docs/r3.0.0-alpha2/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html
hdfs diskbalancer -plan node1.mycluster.com
hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.json
Apache Hadoop3.x版本才有
CDH5.12+之后才有
sbin]$ hdfs fsck /
Corrupt blocks: 100
Missing replicas: 20 (1.0 %) ==:>發(fā)郵件給管理員
刪除塊:
sbin]$ hdfs fsck / -delete
如果塊需要,先復(fù)制到本地:
sbin]$ hdfs dfs -get /xxx/xxx ./
sbin]$ hdfs haadmin
打印出hadoop的環(huán)境變量
[hadoop@rzdatahadoop002 sbin]$ hadoop classpath
例如:
A盤450G
B盤400G
新來的data01,會(huì)選擇B盤,讓B盤追上A盤
MapReduce:
Hadoop1.x MR1(計(jì)算 + 資源作業(yè)調(diào)度)
Hadoop2.x MR2(計(jì)算)
MR1進(jìn)程:(過時(shí)了,但是面試官最喜歡問的)
JobTracker
TaskTracker:map task、reduce task
MR2進(jìn)程:
寫代碼打成jar包提交給yarn運(yùn)行即可
好處:
1.不需要部署
2.架構(gòu)設(shè)計(jì)(面試題***** + 背) ---> MR Job提交到Y(jié)arn的工作流程 ---> Yarn架構(gòu)設(shè)計(jì)、Yarn的工作流程
MapReduce2架構(gòu)設(shè)計(jì)(Yarn工作流程(mr提交應(yīng)用程序))(*****)
1.用戶向Yarn中提交應(yīng)用程序,其中包括ApplicationMaster程序、啟動(dòng)ApplicationMaster的命令、用戶程序等。
2.ResourceManager為該應(yīng)用程序分配第一個(gè)Container,并與對(duì)應(yīng)的Node-Manager通信,要求它在這個(gè)Container中啟動(dòng)應(yīng)用程序的ApplicationMaster。
3.ApplicationMaster首先向ResourceManager注冊,這樣用戶可以直接通過ResourceManager查看應(yīng)用程序的運(yùn)行狀態(tài),然后它將各個(gè)任務(wù)申請(qǐng)資源,并監(jiān)控它的運(yùn)行狀態(tài),直到運(yùn)行結(jié)束,即重復(fù)步驟4-7。
4.ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請(qǐng)和領(lǐng)取資源。
5.一旦ApplicationMaster申請(qǐng)到資源后,便與對(duì)應(yīng)的NodeManager通信,要求它啟動(dòng)任務(wù)。
6.NodeManager為任務(wù)設(shè)置好運(yùn)行環(huán)境(包括環(huán)境變量、JAR包、二進(jìn)制程序等)后,將任務(wù)啟動(dòng)命令寫到一個(gè)腳本中,并通過運(yùn)行該腳本啟動(dòng)任務(wù)。
7.各個(gè)任務(wù)通過某個(gè)RPC協(xié)議向ApplicationMaster匯報(bào)自己的狀態(tài)和進(jìn)度,以讓ApplicationMaster隨時(shí)掌握各個(gè)任務(wù)的運(yùn)行狀態(tài),從而可以在任務(wù)失敗時(shí)重新啟動(dòng)任務(wù)。在應(yīng)用程序運(yùn)行過程中,用戶可隨時(shí)通過RPC向ApplicationMaster查詢應(yīng)用程序的當(dāng)前運(yùn)行狀態(tài)。
8.應(yīng)用程序運(yùn)行完成后,ApplicationMaster向ResourceManager注銷并關(guān)閉自己。
當(dāng)用戶向Yarn提交一個(gè)應(yīng)用程序后,Yarn將分為兩個(gè)階段運(yùn)行該應(yīng)用程序:
a.第一個(gè)階段是啟動(dòng)ApplicationMaster
b.第二個(gè)階段是由ApplicationMaster創(chuàng)建應(yīng)用程序,為它申請(qǐng)資源,并監(jiān)控它的整個(gè)運(yùn)行過程,直到運(yùn)行完成。
Yarn:
ResourceManager:
Application Manager:應(yīng)用程序管理
Scheduler:調(diào)度器
NodeManager:
Container:容器(*****) Yarn的資源抽象的概念,封裝了某個(gè)NM的多維度資源:memory + cpu
容器里運(yùn)行map task、reduce task
MR Application Master:
每個(gè)MR的作業(yè)只有一個(gè),且是運(yùn)行在NM的container中
詞頻統(tǒng)計(jì):wordcount
hadoop]$ vi 1.log
bbb 123 1 2 2
aaa bbb ccc
bbb 123 1 2 2
aaa
123
bbb
ccc
xxxxx
www.ruozedata.com
hadoop]$ hdfs dfs -mkdir -p /wordcount/input
hadoop]$ hdfs dfs -put 1.log /wordcount/input
hadoop]$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar \
> wordcount /wordcount/input /wordcount/output1
hadoop]$ hdfs dfs -ls /wordcount/output1
hadoop]$ hdfs dfs -cat /wordcount/output1/part-r-00000
1 1
123 2
2 2
aaa 2
bbb 3
ccc 2
www.ruozedata.com 1
xxxxx 1
http://blog.itpub.net/30089851/viewspace-2015610/
shuffle 洗牌(工作:*****)調(diào)優(yōu)點(diǎn) hive+spark
在Map和Reduce中間進(jìn)行的。
花2個(gè)小時(shí)看:
http://blog.itpub.net/30089851/viewspace-2095837/
Map:映射
Reduce:歸約(合并)
http://blog.itpub.net/30089851/viewspace-2095837/
http://hadoop.apache.org/docs/r2.8.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
作業(yè):
1.hadoop高級(jí)命令
2.MR提交流程(面試*****)
3.WordCount案例+理解圖+shuffle(******)
【來自@若澤大數(shù)據(jù)】