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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop源码分类概要整理

發布時間:2024/9/21 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop源码分类概要整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  最近突然覺得, 很多掌握的都還是很淺的原理,需要更深入細粒度去了解整個分布式系統的運轉機制。于是。。開始作死而又作死而又作死的源碼之旅。

  Hadoop包的功能總共有下列幾類:

  tool:提供一些命令行工具,如DistCp,archive

  mapreduce,:Hadoop的Map/Reduce實現

  filecache:提供HDFS文件的本地緩存,用于加快Map/Reduce的數據訪問速度

  fs:文件系統的抽象,可以理解為支持多種文件系統實現的統一文件訪問接口

  hdfs:HDFS,Hadoop的分布式文件系統實現

  ipc:一個簡單的IPC的實現,依賴于IO提供的編解碼功能

  io:表示層,將各種數據編碼/解碼,方便在網絡上的傳輸

  net:封裝部分網絡功能,如DNS,socket

  security:用戶和用戶組信息

  conf:系統的配置參數

  metrics:系統攻擊數據的收集,用于網管范疇

  util:工具類

  record:根據DDL自動生成他們的編碼函數,目前可以提供C++和java

  http:基于Jetty的HTTP Servlet,用戶通過瀏覽器可以觀察文件系統的一些狀態信息和日志

  log:提供HTTP訪問日志的HTTP Servlet

?

一、RPC

  它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。

  ? RPC采用客戶機/服務器模式,請求程序就是一個客戶機,而服務提供程序就是一個服務器。例如HDFS的通信就包括:

  1、Client-NameNode之間,其中NameNode是服務器。

  2、Client-DataNode之間,其中DataNode是服務器。

  3、DataNode-NameNode之間,其中NameNode是服務器。

  4、DataNode-DataNode之間,其中某一個DataNode是服務器,另一個是客戶端。

  org.apache.hadoop.rpc中包含Client類和Server類。Server類是一個抽象類,類RPC封裝了Server,利用反射,把某個對象的方法開放出來,變成RPC中的服務器。

?

二、DataNode與NameNode

  一個HDFS集群可能包含上千DataNode節點,這些DataNode定時與NameNode通信,為了減輕NameNode的負擔,NameNode上并不永久保存DataNode上那些數據塊信息,而是通過DataNode啟動時上報,來更新NameNode上的映射表。

? ? ? ? 相關包:org.apache.hadoop.hdfs.server.common、org.apache.hadoop.hdfs.server.datanode...

  所有和數據塊相關的操作,都在FSDataset相關的類中進行處理,一個DataNode上可以指定多個Storage來存儲數據塊,由于HDFS規定了一個目錄能存放Block的數目,所以一個storage上存在多個目錄。對應的,FSDataset中用FSVolume來對應一個Storage,FSDir對應一個目錄,所有的FSVolume由FSVolumeSet管理,FSDataset中通過一個FSVolumeSet對象,就可以管理它的所有存儲空間。

? ? ? ?相關包:org.apache.hadoop.hdfs.server.dataNode.fsDataSet

  NameNode作為系統文件目錄的管理者,DataNode關注的是數據塊,NameNode保存的主要信息是文件名-數據塊,數據塊-DataNode列表。 DataNode實現了InterDatanodeProtocol和ClientDatanodeProtocol,剩下的,由NameNode實現。

  相關包:org.apache.hadoop.hdfs.server.protocol、org.apache.hadoop.hdfs.protocol、org.apache.hadoop.hdfs.server.namenode ? (重點FSNamesystem.java)

?

三、MapReduce

?  ? 相關包:org.apache.hadoop.mapreduce.JobContext、org.apache.hadoop.mapreduce、org.apache.hadoop.mapreduce.lib.*(包含inputFomat等..)

  這些還是很小的一部分,但是一點一點深入好了~

  

? ? ?

總結

以上是生活随笔為你收集整理的Hadoop源码分类概要整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。