日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

大数据 — Hadoop

發(fā)布時(shí)間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据 — Hadoop 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HDFS


Hadoop 1.0:

  • 3個(gè)組件:
    • Namenode
    • SecondNamenode
    • Datanode

namenode(主節(jié)點(diǎn),master,只有一個(gè),單點(diǎn)故障的風(fēng)險(xiǎn))中間存儲(chǔ)信息(元數(shù)據(jù))
2種映射關(guān)系

  • path -> blockid list 列表
  • blockid 數(shù)據(jù)塊 -> datanode 節(jié)點(diǎn)地址
    元數(shù)據(jù)存在內(nèi)存中
    元數(shù)據(jù)進(jìn)行持久化 — 磁盤(pán)fsimage — 目的:避免數(shù)據(jù)丟失
    fsimage : 元數(shù)據(jù)鏡像文件
    只有機(jī)器重啟的時(shí)候加載fsimage

    元數(shù)據(jù)持久化的過(guò)程 — SNN — secondnamenode
    內(nèi)存 -> edit log(磁盤(pán))-> fsimage

    SNN 存在意義 : 備份 / 數(shù)據(jù)恢復(fù)

    namenode和 edit log關(guān)系:
    namenode需要把每一次改動(dòng)都存在 edit log ,整個(gè)過(guò)程誰(shuí)來(lái)推動(dòng)?(Datanode和namenode之間心跳機(jī)制)

    namenode除了單點(diǎn)問(wèn)題之外,還有不適合存儲(chǔ)太多小文件的問(wèn)題,因?yàn)閮?nèi)存有限
  • datanode (slave,從節(jié)點(diǎn),多個(gè)機(jī)器)

  • block 數(shù)據(jù)塊 -> 真實(shí)輸據(jù)
    多副本機(jī)制 — 默認(rèn)3副本 (作用:數(shù)據(jù)冗余,高可用)
    本地化原則 (就近原則):mapreduce:主(jobtracker - namenode),從(tasktracker - datanode)
  • 可靠性保證 :

  • 數(shù)據(jù)校驗(yàn)
    目的 : 保證數(shù)據(jù)完整性 (通過(guò)crc32校驗(yàn)算法)
    整個(gè)數(shù)據(jù)傳輸過(guò)程,輸據(jù)需要校驗(yàn)幾次?
  • client給datanode寫(xiě)數(shù)據(jù):要針對(duì)寫(xiě)的數(shù)據(jù),每個(gè)檢查單元(512字節(jié))
    • 每一個(gè)單元?jiǎng)?chuàng)建一個(gè)單獨(dú)的校驗(yàn)碼(crc32) , 數(shù)據(jù)和校驗(yàn)碼統(tǒng)一發(fā)送給Datanode
  • Datanode 接受輸據(jù)的時(shí)候 : 用同樣的加密算法,生成校驗(yàn)碼,并校驗(yàn)
    • 在后臺(tái)還會(huì)運(yùn)行一個(gè)掃描進(jìn)程:DataBlockScanner(定期校驗(yàn))
    • 一旦檢測(cè)出現(xiàn)問(wèn)題,通過(guò)心跳,通知NN,讓NN發(fā)起DN修復(fù) (拷貝沒(méi)有問(wèn)題的備份)
  • 2.可靠性保證 :

    • 心跳
    • 多副本機(jī)制
    • crc32
    • SNN (secondnamenode)
    • 回收站 ( .Trash 目錄)

    Hadoop 2.0:

    ?

  • HA 高可用 : 解決了單點(diǎn)故障問(wèn)題
    1.0里有一個(gè)SNN,但是不可靠
    如何便可靠:需要兩個(gè)NN,一個(gè)active,一個(gè)standby(備用)
    為了保證兩個(gè)NN的數(shù)據(jù)一致性,Datanode要對(duì)兩個(gè)NN同時(shí)發(fā)送心跳

  • 雖然Datanode同時(shí)發(fā)送心跳,但是為什么還需要JN?
    2種映射關(guān)系
    path -> blockid list 列表 :JN
    blockid 數(shù)據(jù)塊 -> datanode 節(jié)點(diǎn)地址 : Datanode心跳
    分工不同:::

  • HDFS2.0 需要引入zookeeper , (zookeeper目的:協(xié)調(diào)分布式集群中各個(gè)節(jié)點(diǎn)工作有序進(jìn)行,完成故障轉(zhuǎn)移)

  • 在2.0,引入zkfc(ZookeeperFailoverController)進(jìn)程,和NN部署到同一個(gè)機(jī)器上,目的:負(fù)責(zé)自己管轄之內(nèi)的NN進(jìn)行健康檢查
    zkfc 進(jìn)程會(huì)在zookeeper上注冊(cè)一個(gè)臨時(shí)節(jié)點(diǎn)
    目的:監(jiān)控NN,一旦NN掛掉,相對(duì)應(yīng)的臨時(shí)節(jié)點(diǎn)消失,接下來(lái)開(kāi)始選主(申請(qǐng)鎖)流程

  • JN目的:讓activeNN和standbyNN保持輸據(jù)同步(文件 -> block)
    同步問(wèn)題:需要以來(lái)JN(JournalNodes)守護(hù)進(jìn)程,完成元數(shù)據(jù)的一致性

  • JN 角色有兩種選擇:
    1) NFS — 網(wǎng)絡(luò)系統(tǒng) (network file system)
    需要額外的磁盤(pán)空間
    2)QJM — 最低法人管理機(jī)制 (投票)
    不需要額外的磁盤(pán)空間
    需要用2n+1臺(tái)機(jī)器存儲(chǔ)edit log (奇數(shù)是為了投票)
    QJM本質(zhì)是小集群
    好處
    * 不需要空間
    * 無(wú)但點(diǎn)問(wèn)題
    * 不會(huì)因?yàn)閭€(gè)別機(jī)器延遲,影響整體性能
    * 只需要通過(guò)簡(jiǎn)單的系統(tǒng)配置可以實(shí)現(xiàn)

  • NN 和 JN 通常不再一個(gè)機(jī)器上
    FC 和 NN 在同一個(gè)機(jī)器上
    RM(Yarn主) 和 NN(HDFS主) 通常在同一臺(tái)機(jī)器上
    zookeeper 需要單獨(dú)維護(hù)一套獨(dú)立集群

  • ?

    HDFS Federation(聯(lián)邦) : 水平擴(kuò)展

    集群中提供多個(gè)Name Node,每個(gè)NameNode負(fù)責(zé)管理一部分DataNode
    每一個(gè)NN只管理自己管轄之內(nèi)的DN
    目的:減輕單一NN壓力,將一部分文件轉(zhuǎn)移到其他NN上管理

    如果集群中一個(gè)目錄比較大,那么可以用單獨(dú)的NN維護(hù)起來(lái)
    橫向虧站,突破了NN的限制

    不同的NN,會(huì)可以訪問(wèn)所有的DN嗎? 會(huì)的?
    聯(lián)邦的本質(zhì):將元數(shù)據(jù)管理NN和存儲(chǔ)DN進(jìn)行解耦

    可以把聯(lián)邦和高可用同時(shí)體現(xiàn)出來(lái)

    快照:真實(shí)數(shù)據(jù)(不是元數(shù)據(jù)) ::: 數(shù)據(jù)備份/災(zāi)備/快速恢復(fù)

    本質(zhì):僅僅記錄block列表和大小而已,并不涉及數(shù)據(jù)本身的復(fù)制
    某個(gè)目錄的某一時(shí)刻的鏡像
    創(chuàng)建和恢復(fù),都非常快 — 瞬間完成,高效

    HDFS快照是一個(gè)只讀的基于時(shí)間點(diǎn)文件系統(tǒng)拷貝
    HDFS快照是對(duì)目錄進(jìn)行設(shè)定,是某個(gè)目錄的某一個(gè)時(shí)刻的鏡像

    • 快照可以是整個(gè)文件系統(tǒng)的也可以是一部分
    • 常用來(lái)作為數(shù)據(jù)備份,防止用戶(hù)錯(cuò)誤操作和容災(zāi)恢復(fù)
    • Snapshot并不會(huì)影響HDFS的正常操作:修改會(huì)按照時(shí)間的反序記錄,這樣可以直接讀取到最新的數(shù)據(jù)
    • 快照數(shù)據(jù)是當(dāng)前數(shù)據(jù)減去修改部分計(jì)算出來(lái)的
    • 快照會(huì)存儲(chǔ)在snapeshottable的目錄下

    ?

    快照的各種命令
    hdfs dfsadmin -allowSnapshot /user/spark hdfs dfs -createSnapshot /user/spark s0 hdfs dfs -renameSnapshot /user/spark s0 s_init hdfs dfs -deleteSnapshot /user/spark s_init hdfs dfsadmin -disallowSnapshot /user/spark

    ?

    ?

    緩存(集中式緩存 — 不局限具體的機(jī)器的cpu和操作系統(tǒng)層面上的優(yōu)化)

    對(duì)于重復(fù)訪問(wèn)的文件很有用
    優(yōu)點(diǎn):速度快

    • 允許用戶(hù)指定要緩存的HDFS路徑
    • 明確的鎖定可以阻止頻繁使用的數(shù)據(jù)被從內(nèi)存中清除
    • 集中化緩存管理對(duì)于重復(fù)訪問(wèn)的文件很有用
    • 可以換成目錄或文件,但目錄是非遞歸

    ?

    權(quán)限控制 ACL

    類(lèi)似于linux系統(tǒng)acl

    例:rwx - rwx - rwx
    自己 - 組 - 其他

    設(shè)置權(quán)限: setacl命令
    需要開(kāi)啟功能:

    dfs.permissions.enableddfs.namenode.acls.enabledhadoop fs -getfacl /input/aclhdfs dfs -setfacl -m user:mapred:r-- /input/aclhdfs dfs -setfacl -x user:mapred /input/acl





















    轉(zhuǎn)載于:https://www.cnblogs.com/pipemm/articles/11331639.html

    總結(jié)

    以上是生活随笔為你收集整理的大数据 — Hadoop的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。