HDFS詳解-03和MapReduce詳解

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ù)】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容