Hadoop基礎概念知識(干貨)

      網友投稿 656 2025-03-31

      話不多說我直接上干貨


      概念知識

      安全模式是HDFS所處的一種特殊狀態,在處于這種狀態時,文件系統只接受讀數據請求,不能對文件進行寫,刪除等操作。

      在NameNode主節點啟動時,HDFS首先進入安全模式,DataNode會向NameNode上傳它們數據塊的列表,讓NameNode得到數據塊的位置信息,并對每個文件對應的數據塊副本進行統計。當最小副本條件滿足時,即數據塊都達到最小副本數,HDFS自動離開安全模式。這樣就達到了資源的最大化利用,CPU的整合利用。

      HDFS為每一個用戶都創建了類似操作系統的回收站(Trash),位置在/user/用戶名/.Trash/。當用戶刪除文件時,文件并不是馬上被永久性刪除,會被保留在回收站一段時間,這個保留的時間是可以設置的。

      Hdfs的快照(snapshot)是在某一時間點對指定文件系統拷貝,快照采用只讀模式,可以對重要數據進行恢復、防止用戶錯誤性的操作。快照又分為兩種:(1)建立文件系統的索引,每次更新文件不會真正的改變文件,而是新開辟一個空間來保存已經更改的文件。例如hdfs也是屬于這樣的,而且它的特性如下:新建快照的時候,Datanode中的block不會被復制,快照中只是記錄了文件塊的列表和大小信息,其次每個快照最高限額為65536個文件或者文件夾,在快照的子文件夾中不允許在創建新的快照,最后mv命令和del命令是不允許的,因為快照是只讀的。(2)拷貝所有文件系統。至于如何開啟快照和禁用快照,外援資料顯示,因為一般是禁用的。

      YARN的架構是主從架構,主機為ResourceManager,從機為NodeManager,其中ResourceManager負責接收客戶端的作業請求以及為作業分配相應的NodeManager資源,在NodeManager啟動Container資源容器,在資源容器中運行相關作業。

      YARN架構中的Container容器,YARN管理的資源包括內存、CPU、磁盤、IO等等。Container是YARN中資源的抽象,它封裝了某個節點上的多維度資源。

      ResourceManger負責整個系統的資源分配和管理,是一個全局的資源管理器。主要由兩個組件構成,分別是:調度器和應用程序管理器:調度器會根據資源情況為應用程序分配封裝在Container中的資源,應用程序管理器負責管理整個系統中所有應用程序。

      NodeManager是每個節點上的資源和任務管理器。NodeManager負責的工作有如下兩點:定時向ResourceManager匯報本節點上的資源使用情況和各個Container的運行狀態。接收并處理來自ApplicationManager的Container啟動/停止等請求。

      YARN中的應用是如何運行的:應用從客戶端節點提交到YARN應用到資源管理器,然后資源管理查看集群里資源情況,在資源空閑的NodeManager節點啟動ApplicationMaster作為管理該應用,ApplicationMaster分析計算是否有足夠的資源運行任務,如果夠,則自己處理;如果不夠,則向資源管理器申請新的資源,當拿到新資源后,在新的資源所在的NodeManager啟動資源容器,然后執行具體的作業任務。

      Hadoop基礎概念知識(干貨)

      YARN調度器分為三種:FIFO Scheduler先進先出調度器,Capacity Scheduler 容器調度器,Fair Scheduler 公平調度器

      MapReduce框架把復雜的、運行于大規模集群上的計算過程高度抽象到兩個函數Map和Reduce函數,我們只需要編寫好Map和Reduce函數就能完成分布式計算。這樣就是我們的分布式編程極大的簡化了,幫我們隱藏了很多并行編程的細節。MapReduce最終要的策略就是分而治之的思想,比如說我們有個文件里面存的全是數字,MapReduce就會按照一定的規則把這個文件劃分成一小塊一小塊的,然后把這些一小塊的數據首先交給Map函數進行處理,然后Map函數的輸出,然后作為Reduce函數的輸入,Reduce處理后,然后進行輸出

      對于MapReduce,目前較為受歡迎的是Python為編程語言的設計語言,我們可以通過引流的方式對不同的數據進行處理。

      Hbase的定義是一個分布式的,面向列的數據庫。

      Hbase與hdfs的本質區別就是HBASE可以結構化數據,而hdfs只能存儲文件,對于HBASE存儲數據的時候與我們的基本表有一個不同的就是,它有一個列族,而這個列族管理的列可以提高我們數據索引的效率。

      一個表會包含很多行數據,每行數據都有行鍵,行鍵必須唯一,用于區分其他行,一個行中可以有很多列,這些列通過列族來分類。列族是多個列的集合。 其實列式數據庫只需要列就可以了, 為什么還需要有列族呢? 因為HBase會盡量把同一個列族的列放到同一個服務器上, 這樣可以提高存取性能, 并且可以批量管理有關聯的一堆列。

      hbase操作

      安全模式,查看當前的狀態:hdfs dfsadmin -safemode get

      進入安全模式:hdfs dfsadmin -safemode enter

      強制離開安全模式:hdfs dfsadmin -safemode leave

      一直等待直到安全模式結束:hdfs dfsadmin -safemode wait

      在hdfs里面輸入命令,與Linux里面類似。只是需要在命令行開頭加-

      查看該目錄下的子文件,遞歸查詢:hdfs dfs -ls -R /home

      移動文件夾或者文件:hdfs dfs -mv 源文件的位置 目標位置(如果是目錄文件夾需要在后面加入/ 如果是文件則不需要)

      遞歸刪除home目錄下的子文件或者子目錄:hdfs dfs -rm -r /home/文件

      刪除目錄需要把參數改為d即可

      創建多級文件夾需要加-P參數,如果父目錄不存在,則創建父目錄

      新建文件:hdfs dfs -touchz /whw/whw.txt 然后我們可以利用:hdfs dfs ls -R /whw 查看

      上傳文件:首先要在本地上面創建一個文件,注意這個時候不需要再touch后加z,我們創建好之后,利用:hdfs dfs -put 本地文件位置 hdfs目標位置,也可以利用:hdfs dfs -copyFromLocal 本地文件位置 hdfs目標位置

      移動文件:hdfs dfs -moveFromLocal 本地文件位置 hdfs目標位置

      將hdfs上的文件下載到本地位置:hdfs dfs -get hdfs的位置 本地目標位置/重命名,也可以用hdfs dfs -copyToLocal hdfs的位置 本地目標位置

      查看文件:hdfs dfs -cat 文件位置

      追寫文件:hdfs dfs -appendToFile 本地文件 hdfs文件(兩者都是相同的文件類型)

      Hdfs里面的文件復制:hdfs dfs -cp 源文件 復制文件 參數:-f 如果目標文件存在則強制覆蓋。-p保留文件的屬性,移動文件(改名文件):hdfs dfs -mv 源文件 目標文件

      Hdfs中的目錄下的文件(不包含子目錄)合并后在下載到本地:hdfs dfs -getmerge 本地文件(位置默認,不需要添加)

      HBASE命令集合

      啟動HBASE,進入HBASE:start-hbase.sh habse shell

      查詢HBASE里面含有哪些表:list(注意和hive要有所區別,不能在后面加分號)。

      創建表:create ‘表名’,’列族1’,’列族2’,’列族3’

      添加一個列族:alter ‘表名稱’,‘列族’

      刪除列族:alter ‘表名稱’, {NAME => ‘列族名稱’, METHOD => 'delete’}

      禁止使用或者屏蔽這個表:disable ‘表名稱’

      刪除表之前必須要禁止使用這個表,所以必須先要執行上面的操作,然后:drop ‘表名稱’

      啟用表:enable ‘表名稱’

      查看這個表的結構:describe ‘表名稱’

      檢查表是否存在:exists ‘表名稱’

      添加數據:put ‘表名稱’,’行鍵’,’列族:列名1,列名2……’,‘數據1,數據2……’在這里我們就可以理解為是一個二維表,也就是Excel類似的,一行一列確定一個單元格

      查詢數據:get ‘表名稱’,‘行鍵’

      刪除數據:delete ‘表名稱’,‘行鍵’,‘列名稱’這樣就確定了一個數據集

      刪除一行數據:delete ‘表名稱’,‘行鍵’

      查看表中的記錄數:count ‘表名稱’

      查看整張表:scan ‘表名稱’(類似于MySQL里面的select)

      掃描整個列族:scan ‘表名稱’, {COLUMN=>‘列族’}

      掃描一張表里面某個列的所有數據:scan ‘表名稱’,{COLUMNS=>‘列族名:列名稱’}

      限制查詢結果行數:scan ‘表名稱’, { STARTROW => ‘rowkey1’, LIMIT=>行數, VERSIONS=>版本數}

      等值過濾:scan ‘表名稱’, FILTER=>"ValueFilter(=,‘binary:某值’)"過濾改值

      HBASE實驗操作

      首先將本地數據文件上傳到hdfs:hdfs dfs -put(copyFromLocal) /home/hadoop/ matchinfo.csv /lol

      在執行次命令前,必須要在hdfs上創建一個lol文件夾;hdfs dfs -mkdir /lol

      啟動hbase 進入hbase:start-hbase.sh hbase shell

      創建表和列族:create ‘lol_match’,’info’

      導入數據到hbase中:

      hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns=“info:League,info:Year,info:Season,info:Type,info:blueTeamTag,info:bResult,info:rResult,info:redTeamTag,info:gamelength,info:blueTop,info:blueTopChamp,info:blueJungle,info:blueJungleChamp,info:blueMiddle,info:blueMiddleChamp,info:blueADC,info:blueADCChamp,info:blueSupport,info:blueSupportChamp,info:redTop,info:redTopChamp,info:redJungle,info:redJungleChamp,info:redMiddle,info:redMiddleChamp,info:redADC,info:redADCChamp,info:redSupport,info:redSupportChamp,HBASE_ROW_KEY” lol_match /lol/matchinfo.csv

      每文一語

      懂得越多才發現,不多的太多了

      Hadoop HBase

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在Excel刪除兩個重復的行?
      下一篇:文檔里的文件怎樣才能發送到桌面?(云文檔如何以文件發送到電腦)
      相關文章
      亚洲中文字幕久在线| 亚洲欧洲国产成人精品| 亚洲av成人综合网| 亚洲丝袜美腿视频| 国产亚洲一区二区三区在线观看 | 国产精品亚洲综合一区在线观看 | 99亚偷拍自图区亚洲| 亚洲av无码不卡久久| 亚洲人成在线播放| 亚洲一级大黄大色毛片| 亚洲18在线天美| 亚洲av产在线精品亚洲第一站| 亚洲一区二区三区无码国产| 亚洲a级片在线观看| 亚洲制服丝袜第一页| 国产精品亚洲片在线va| 在线精品亚洲一区二区| 亚洲精品无码成人| 国产成人亚洲综合a∨| 亚洲国产电影av在线网址| 亚洲麻豆精品国偷自产在线91| 亚洲精品无码99在线观看 | 日韩亚洲精品福利| 亚洲欧洲精品成人久久曰影片| 亚洲欧洲日产国码高潮αv| 国产亚洲av片在线观看18女人| 在线精品亚洲一区二区小说| 亚洲成AV人片一区二区| 久久亚洲精品成人777大小说| 久久丫精品国产亚洲av不卡| 亚洲最大在线观看| 久久综合久久综合亚洲| 亚洲AV无码一区二区一二区| 亚洲另类少妇17p| 亚洲成a人片77777kkkk| 亚洲黄色网址大全| 亚洲色精品三区二区一区| 相泽南亚洲一区二区在线播放| 亚洲精品在线视频| 久久亚洲精品无码| 亚洲一区在线视频|