探索Hadoop的三種運行模式:單機模式、偽分布式模式和完全分布式模式

目錄

  • 前言
  • 一、 單機模式
  • 二、 偽分布式模式
  • 三、 完全分布式模式(重點)
    • 3.1 準備工作
    • 3.2 配置集群
      • 3.2.1 配置core-site.xml 文件
      • 3.2.2 配置hdfs-site.xml 文件
      • 3.2.3 配置yarn-site.xml 文件
      • 3.2.4 配置mapred-site.xml 文件
    • 3.3 啟動集群
      • 3.3.1 配置workers
      • 3.3.2 啟動集群
      • 3.3.3 集群測試
  • 總結

前言

Hadoop作為一種強大的大數據處理框架,有多種運行模式,每種模式都適用于不同的使用場景。本文將介紹Hadoop的三種常見運行模式:單機模式、偽分布式模式和完全分布式模式。

一、 單機模式

單機模式是Hadoop最簡單的運行模式。在單機模式下,所有Hadoop組件都運行在單個機器上,包括HDFS、MapReduce等。由于只有一個節點參與計算,單機模式適用于開發和測試階段,不適用于處理大規模數據。在單機模式下,Hadoop的所有組件運行在同一進程中,能夠快速展示整個處理流程,方便開發人員進行調試和驗證。

我們這里就拿官方的WordCount做一個簡單的演示:

  1. 在hadoop-3.2.4文件下面創建一個input文件夾
    [amo@hadoop102 hadoop-3.2.4]$ mkdir input
  2. 在input文件下創建一個word.txt文件
    [amo@hadoop102 hadoop-3.2.4]$ cd input
  3. 編輯word.txt文件
    [amo@hadoop102 hadoop-3.2.4]$ vim word.txt
  • 在文件中輸入如下內容
hadoop hello
hdfs mapreduce yarn
amoxilin amoxilin
  • 保存退出::wq
  1. 回到Hadoop目錄/opt/module/hadoop-3.2.4
  2. 執行程序
[amo@hadoop102 hadoop-3.2.4]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar wordcount input output
  1. 查看結果
[amo@hadoop102 hadoop-3.2.4]$ cat output/part-r-00000
看到如下結果:
amoxilin 2
hadoop  1
hello 1
hdfs 1
mapreduce 1
yarn  1

二、 偽分布式模式

偽分布式模式是Hadoop的中級運行模式。在偽分布式模式下,Hadoop的各個組件運行在單臺計算機上,但每個組件都是獨立運行的。這意味著可以模擬一個小規模的分布式環境,包括一個主節點Namenode和多個工作節點Datanode。偽分布式模式適用于在本地環境中進行開發和測試,并且能夠模擬數據分片和分布式計算的過程,從而更真實地了解Hadoop的工作原理。

以下是配置 Hadoop 偽分布式模式的一般步驟:

  1. 安裝 Hadoop:按照 Hadoop 的官方文檔,下載并安裝合適版本的 Hadoop。

  2. 配置 HDFS:編輯 Hadoop 配置文件 core-site.xml 和 hdfs-site.xml ,設置適當的配置參數。例如,指定本地文件系統作為 HDFS 的存儲路徑,并設置副本數。

  3. 配置 YARN:編輯 YARN 配置文件 yarn-site.xml ,設置適當的參數,如指定本地資源管理器地址和可用的計算資源。

  4. 設置環境變量:將 Hadoop 的 bin 目錄路徑添加到系統的 PATH 環境變量中。

  5. 配置 SSH:啟用 SSH,并配置免密登錄以設置 Hadoop 的分布式通信。

  6. 啟動 Hadoop:運行啟動腳本,啟動 HDFS 和 YARN。可以通過瀏覽器訪問相應的管理控制臺,如 NameNode 頁面、ResourceManager 頁面等。

  7. 執行任務和作業:提交 MapReduce 任務或其他計算任務到 Hadoop 集群,并通過 Hadoop 提供的 API 或命令行工具進行操作。

需要注意的是,偽分布式模式僅適用于開發和測試目的,因為只有一個物理/虛擬機器負責運行所有的組件,所以它并不能提供真正的分布式性能和容錯能力。

總之,Hadoop 偽分布式模式是用于在單臺計算機上模擬分布式環境的配置方式,可用于本地開發、調試和驗證大數據應用程序。這里只做簡單的介紹,感興趣的可以自己搭一下玩玩,重點是下面的完全分布式模式。


三、 完全分布式模式(重點)

完全分布式模式是Hadoop的最常用運行模式。在完全分布式模式下,Hadoop集群由多臺計算機組成,每個節點扮演著不同的角色。集群中包含一個主節點Namenode和多個工作節點Datanode,每個節點負責存儲和處理數據。完全分布式模式可以處理大規模的數據集,并且具有高可靠性和容錯性。Hadoop集群通過分布式存儲和計算的方式,實現了大規模數據的快速處理和分析。

3.1 準備工作

1) 準備三臺服務器,安裝并配置jdk和hadoop

2)集群部署規劃

hadoop102hadoop103hadoop104
HDFSNameNode / DateNodeDataNodeSecondaryNameNode / DataNode
YARNNodeManagerResourceManager / NodeManagerNodeManager

注意:NameNode和SecondaryNameNode不要安裝在同一臺服務器,ResourceManager也很消耗內存,不要和NameNode、SecondaryNameNode配置在同一臺機器上

3)配置文件說明
Hadoop配置文件分為兩類:默認配置文件和自定義配置文件,只有用戶想修改某一默認配置值時,才需要修改自定義配置文件,更改相應屬性值。

  • 配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四個配置文件存放在$HADOOP_HOME/etc/hadoop 這個路徑下面,用戶可以根據項目需求重新進行修改配置。

    • core-site.xml:這個文件包含了Hadoop核心配置的相關屬性,比如文件系統的默認URI (fs.defaultFS)、臨時文件目錄 (hadoop.tmp.dir)等。

    • hdfs-site.xml:這個文件包含了HDFS(Hadoop分布式文件系統)的相關配置屬性,比如副本數 (dfs.replication)、數據塊大小 (dfs.blocksize)等。

    • mapred-site.xml:這個文件包含了MapReduce框架的相關配置屬性,比如MapReduce作業歷史服務器地址 (mapreduce.jobhistory.address)、任務并行度 (mapreduce.job.running.map.limit)等。在較新的Hadoop版本中,這個文件被廢棄,相關配置已經移動到yarn-site.xml中。

    • yarn-site.xml:這個文件包含了YARN(Yet Another Resource Negotiator)的相關配置屬性,比如NodeManager的內存限制 (yarn.nodemanager.resource.memory-mb)、ApplicationMaster的內存限制 (yarn.app.mapreduce.am.resource.mb)等。

3.2 配置集群

3.2.1 配置core-site.xml 文件

<configuration><!-- 指定NameNode的地址--><property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value></property><!-- 指定Hadoop數據的存儲目錄--><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.2.4/data</value></property><!-- 配置HDFS網頁登錄使用的靜態用戶為amo--><property><name>hadoop.http.staticuser.user</name><value>amo</value></property>
</configuration>

3.2.2 配置hdfs-site.xml 文件

<configuration><!-- nn web端訪問地址 --><property><name>dfs.namenode.http-address</name><value>hadoop102:9870</value></property><!-- 2nn web端訪問地址 --><property><name>dfs.namenode.secondary.http-address</name><value>hadoop104:9868</value></property>
</configuration>

3.2.3 配置yarn-site.xml 文件

<configuration><!-- 指定MR走shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop103</value></property><!-- 環境變量的繼承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property>
</configuration>

3.2.4 配置mapred-site.xml 文件

<configuration><!-- 指定MapReduce程序運行在Yarn上--><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

配置完成之后,在集群上分發配置好的Hadoop配置文件,然后去hadoop103和hadoop104查看配置文件分發情況

3.3 啟動集群

3.3.1 配置workers

vim /opt/module/hadoop-3.2.4/etc/hadoop/workers

hadoop102
hadoop103
hadoop104

注意:該文件添加的內容結尾不允許有空格,文件中不允許有空行
同步所有節點xsync /opt/module/hadoop-3.2.4/etc/hadoop/workers

前提是你已經為每個節點進行了hostname的命名。而且每個節點的hosts文件你修改了本地dns的指向,讓這些主機指向約定好的IP。然后每個節點的hosts文件保持同步。

3.3.2 啟動集群

# 格式化NameNode  如果集群是第一次啟動,需要在hadoop102節點格式化NameNode
[amo@hadoop102 hadoop-3.2.4]$ hdfs namenode -format
# 啟動hdfs
[amo@hadoop102 hadoop-3.2.4]$ sbin/start-dfs.sh
# 啟動yarn 在配置了resourceManager的節點(hadoop103)啟動yarn
[amo@hadoop102 hadoop-3.2.4]$ sbin/start-yarn.sh

(注意:格式化 NameNode,會產生新的集群id,導致 NameNode 和 DataNode 的集群id不一致,集群找不到以往數據。如果集群在運行過程中報錯,需要重新格式化 NameNode 的話,一定要先停止 NameNode 和 DataNode 進程,并且刪除所有機器的data和logs目錄,然后再進行格式化)

jps可以查看各個節點的配置是否和我們的集群規劃避暑一致
在這里插入圖片描述

Web端查看hdfs的NameNode

  • 瀏覽器中輸入hadoop102:9870
  • 查看hdfs上的存儲信息
    在這里插入圖片描述

Web查看yarn的ResourceManager

  • 瀏覽器輸入:hadoop103:8088
  • 查看yarn上運行的Job信息
    在這里插入圖片描述

3.3.3 集群測試

  1. 上傳文件到集群
[amo@hadoop102 hadoop-3.2.4]$ hadoop fs -mkdir /wcinput                # 創建文件夾 
[amo@hadoop102 hadoop-3.2.4]$ hadoop fs -put wcinput/word.txt /wcinput # 將word.txt文件上傳到集群

上傳成功之后,查看hdfs上的存儲信息就可以看到文件上傳到集群了,如下圖所示:
在這里插入圖片描述
想查看文件的具體內容,點擊文件名稱,再點 Tail the file (last 32K) 就可查看啦,當然左邊的 Download 也是支持下載的。
在這里插入圖片描述

那么,文件上傳到集群了,這里只是做一個展示而已,并不是文件存儲的位置,文件具體存儲的位置是在hdfs里面
$HADOOP_HOME/data/dfs/data/current/BP-1831339301-192.168.1.4-1709219313284/current/finalized/subdir0/subdir0

在這里插入圖片描述
這里的 $HADOOP_HOME 其實就是你hadoop在服務器安裝的位置,然后可以通過cat 文件名查看文件內容和上面做一個對比,確認文件上傳以及存儲的位置是沒問題就好了。

=== 到這里完全分布式模式就初步搭好了===


總結

總結起來,Hadoop的三種運行模式:單機模式、偽分布式模式和完全分布式模式,分別適用于不同的場景和需求。單機模式適用于開發和測試,偽分布式模式適用于模擬小規模分布式環境,而完全分布式模式則是處理大規模數據的最佳選擇。根據具體的需求,選擇合適的運行模式,可以充分發揮Hadoop的強大功能和性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718457.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【百度】商業AIGC組_AIGC Java研發工程師(J70353)

北京市技術4人2024-02-28 工作職責&#xff1a; 負責商業AIGC平臺方向的工程架構設計及研發&#xff0c;致力于為廣告業務提供內容生成、內容知識化、內容多模態等中臺化服務&#xff0c;并將內容能力打通廣告檢索系統&#xff0c;于廣告的觸發、創意、模型和機制等聯動&#…

RK3568 android11 調試陀螺儀模塊 MPU6500

一&#xff0c;MPU6500功能介紹 1.簡介 MPU6500是一款由TDK生產的運動/慣性傳感器&#xff0c;屬于慣性測量設備&#xff08;IMU&#xff09;的一種。MPU6500集成了3軸加速度計、3軸陀螺儀和一個板載數字運動處理器&#xff08;DMP&#xff09;&#xff0c;能夠提供6軸的運動…

Matlab|基于Logistic函數負荷需求響應

目錄 1 基于Logistic函數的負荷轉移率模型 2 程序示例 3 效果圖 4 下載鏈接 負荷需求響應模型種類較多&#xff0c;有電價型和激勵型等類型&#xff0c;本次和大家分享一個基于Logistic函數的負荷轉移率模型&#xff0c;該模型屬于電價型&#xff0c;由于該方法使用的較少&a…

mysql 性能調優參數配置文件

########################################################################### ## my.cnf for MySQL 8.0.x # ## 本配置參考 https://imysql.com/my-cnf-wizard.html # ## 注意&#xff1a; …

python爬蟲之app爬取-charles的使用

專欄系列:http://t.csdnimg.cn/WfCSx 前言 前面介紹的都是爬取 Web 網頁的內容。隨著移動互聯網的發展,越來越多的企業并沒有提供 Web 網頁端的服務,而是直接開發了 App,更多更全的信息都是通過 App 來展示的。那么針對 App 我們可以爬取嗎?當然可以。 App 的爬取相比 …

FM AM WM DAB是啥

技術描述頻率范圍優點缺點調頻調制&#xff08;FM&#xff09;在FM廣播中&#xff0c;音頻信號的頻率被調制以匹配載波信號的變化&#xff0c;而載波信號的振幅保持不變。FM廣播通常具有較高的音質&#xff0c;并且在一定范圍內提供清晰的音頻。88 MHz 至 108 MHz- 高音質 - 清…

[linux] matplotlib plt畫training dynamics指標曲線時,標記每個點的值

plt畫折線圖時&#xff0c;plt.annotate標記折線圖的點的數值。 def plot_ret(*ret_dicts):plt.figure(figsize(10, 5))for ret_dict in ret_dicts:print(ret_dict["iters"])plt.plot([iter*4/1000 for iter in ret_dict["iters"]], ret_dict["ret&q…

億道信息發布兩款升級款全加固筆記本電腦

2022年5月19日&#xff0c;加固手持終端。加固平板電腦、加固筆記本電腦專業設計商和制造商&#xff0c;以及加固型移動計算機軟硬件整體定制解決方案提供商億道信息&#xff0c;宣布對其兩款廣受歡迎的加固筆記本電腦產品EM-X14U和EM-X15U進行重大升級。新發布的兩款升級款全加…

下載element-ui 資源,圖標 element-icons.woff,element-icons.ttf 無法解碼文件字體

css下載地址&#xff1a;https://unpkg.com/element-ui2.15.14/lib/theme-chalk/index.css js下載地址&#xff1a;https://unpkg.com/element-ui2.15.14/lib/index.js 圖標及文字文件下載地址&#xff1a; element-icons.woff:&#xff1a; ? https://unpkg.com/element-…

《TCP/IP詳解 卷一》第10章 UDP 和 IP 分片

目錄 10.1 引言 10.2 UDP 頭部 10.3 UDP校驗和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子&#xff1a;IPV4 UDP分片 10.7.2 重組超時 10.8 采用UDP的路徑MTU發現 10.9 IP分片和ARP/ND之間的交互 10.10 最大UDP數據報長度 10.11 UDP服務器…

【java、微服務、nacos】nacos學習筆記

Nacos服務分級存儲模型 ① 一級是服務&#xff0c;例如userservice ②二級是集群&#xff0c;例如杭州或上海 ③ 三級是實例&#xff0c;例如杭州機房的某臺部署了userservice的服務器 配置實例集群屬性 改變服務的yml文件 spring:cloud:nacos:discovery:cluster-name: H…

Docker將本地的鏡像上傳到私有倉庫

使用register鏡像創建私有倉庫 [rootopenEuler-node1 ~]# docker run --restartalways -d -p 5000:5000 -v /opt/data/regostry:/var/lib/registry registry:2[rootopenEuler-node1 ~]# docker images REPOSITORY TAG IMAGE…

Day 60 | 動態規劃 647. 回文子串 、 516.最長回文子序列 、動態規劃總結篇

647. 回文子串 題目 文章講解 視頻講解 class Solution {public int countSubstrings(String s) {char[] chars s.toCharArray();int len chars.length;boolean[][] dp new boolean[len][len];int result 0;for (int i len - 1; i > 0; i--) {for (int j i; j < l…

基于React低代碼平臺開發:構建高效、靈活的應用新范式

文章目錄 一、React與低代碼平臺的結合優勢二、基于React的低代碼平臺開發挑戰三、基于React的低代碼平臺開發實踐四、未來展望《低代碼平臺開發實踐&#xff1a;基于React》編輯推薦內容簡介作者簡介目錄前言為什么要寫這本書 讀者對象如何閱讀本書 隨著數字化轉型的深入&…

library cache lock/pin

【故障現象】 某些session執行操作被堵塞&#xff0c;檢查event發現’library cache lock/pin’等待&#xff1b; 【可能故障原因】 library cache lock/pin發生在多個session對相同library cache對象進行爭用發生&#xff0c;一般來說在存儲過程編譯過程中發生并堵塞編譯。 …

SOA與微服務的區別

SOA&#xff08;面向服務的架構&#xff09;和微服務是兩種不同的架構風格&#xff0c;它們有一些相似之處&#xff0c;但也存在一些區別。 1. 規模和粒度&#xff1a;SOA是一種面向企業級應用的架構風格&#xff0c;它關注的是將整個企業的功能劃分為一組自治的服務。這些服務…

內核中的Kconfig文件

Kconfig解析 編譯內核時用于配置的Kconfig文件 以內核中的ttyprintk.c為例&#xff0c;其位于/kernel-sources/dirver/char/ttyprintk.c 如何將其編譯進內核&#xff1f; 在char目錄下有Kconfig文件&#xff0c;其中有如下內容 tristate 表示該模塊可以選擇 Y N M(以.ko形…

華為od機試C卷-最長表達式求值

1 題目描述 提取字符串中的最長合法簡單數學表達式子串&#xff0c;字符串長度最長的&#xff0c;并計算表達式的值&#xff0c;如果沒有返回0。簡單數學表達式只能包含以下內容0-9 數字&#xff0c;符號* 說明: 1.所有數字&#xff0c;計算結果都不超過 long 2.如果有多個長…

遞歸實現n的k次方(C語言)

編寫一個函數實現n的k次方&#xff0c;使用遞歸實現。 下面來說一下思路 5的3次方&#xff1a;就是5*(5的3-1次方) 7的4次方&#xff1a;就是7*&#xff08;7的4-1次方&#xff09; 以此類推 n的k次方就是&#xff1a;n* n的&#xff08;k-1&#xff09;次方 int Func(int n,…

HOOPS Communicator對3D大模型輕量化加載與渲染的4種解決方案

今天給大家介紹一些關于3D Web輕量化引擎HOOPS Commuicator的關鍵概念&#xff0c;這些概念可以幫您在HOOPS Communicator流緩存服務器之上更好地構建您自己的模型流服務器。如果您是有大型數據集&#xff0c;那么&#xff0c;使用流緩存服務器可以極大地幫助您最大限度地減少內…