12配置Hadoop集群-集群配置

(一)Hadoop的組成
? ? ? ? 對普通用戶來說, Hadoop就是一個東西,一個整體,它能給我們提供無限的磁盤用來保存文件,可以使用提供強大的計算能力。
? ? ? ? 在Hadoop3.X中,hadoop一共有三個組成部分:MapReduce,Yarn,HDFS。它們的作用如下:
1. MapReduce: 用來提供計算。
2. HDFS: 用來提供文件存儲功能。
3. Yarn: 用來協調調度。
(二)HDFS
? ? ? ? Hadoop Distributed File System, 簡稱HDFS,是一個分布式文件系統。在hadoop體系中,它用來存儲文件。
? 例如,當我們把一個文件(例如500M),保存到hadoop中時,它的背后要實現兩個效果:
1. 如果文件較大(>128M)把大文件拆小,并分別傳輸。
2. 存儲3份在不同的主機上。
? ? ? ? 在它的內部,有三個角色,分別如下:
? ? ? ? (1)NameNode(nn):存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間,副本數,文件權限),以及每個文件的塊列表和塊所在的DataNode等。
? ? ? ? (2)DataNode(dn):在本地文件系統存儲文件塊數據,以及塊數據的校驗和。
? ? ? ? (3)Secondary NameNode(2nn): 每隔一段時間對NameNode元數據備份。

HDFS集群:一主加三從,額外再配一個小秘書

(三)YARN
Yet Another Resource Negotiator,簡稱YARN,另一種資源協調者,是Hadoop的資源管理器。

(1)ResourceManager(RM):整個集群資源(內存,CPU等)的管理者

(2)NodeManager(NM): 單個節點服務器資源的管理者

Yarn和HDFS的關系說明:邏輯上分離,物理上在一起。

邏輯上分離:不是說非要啟動HDFS集群才能啟動YARN集群,不是先有哪個再有哪個?每個框都是一個進程,可能都運行在一臺主機上,但是,屬于不同的集群。

物理上在一起:每一臺機器上都有NN, NM。

(四)MapReduce
MapReduce用來提供計算的能力。它將計算過程分為兩個階段:Map和Reduce。

(1)Map階段并行處理輸入數據

(2)Reduce階段對Map結果進行匯總

第二課時

(五)集群配置規劃

集群部署規劃建議:

1.NameNode和SecondaryNameNode不要安裝在同一臺服務器

2.ResourceManager也很消耗內存,不要和NameNode、SecondaryNameNode配置在同一臺機器上。

根據我們的實際情況,我們配置如下

hadoop100

hadoop101

hadoop102

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

(六)修改配置文件
這里一共有5個文件要配置:分別是core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,workers。 五個配置文件都存放在$HADOOP_HOME/etc/hadoop這個路徑下。

(1)core-site.xml核心配置文件

當前要操作的文件是:/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml我們使用編輯器,將它的文件內容修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
? ? <!-- 指定NameNode的地址 -->
? ? <property>
? ? ? ? <name>fs.defaultFS</name>
? ? ? ? <value>hdfs://hadoop100:8020</value>
? ? </property>
? ? <!-- 指定hadoop數據的存儲目錄 -->
? ? <property>
? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? <value>/opt/module/hadoop-3.1.3/data</value>
? ? </property>
? ? <!-- 配置HDFS網頁登錄使用的靜態用戶為root-->
? ? <property>
? ? ? ? <name>hadoop.http.staticuser.user</name>
? ? ? ? <value>root</value>
? ? </property>
</configuration>

(2)HDFS配置文件

接下來配置第二個文件,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml

將它的文件內容修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
?
<configuration>
?? ?<!-- nn web端訪問地址-->
?? ?<property>
? ? ? ? <name>dfs.namenode.http-address</name>
? ? ? ? <value>hadoop100:9870</value>
? ? </property>
?? ?<!-- 2nn web端訪問地址-->
? ? <property>
? ? ? ? <name>dfs.namenode.secondary.http-address</name>
? ? ? ? <value>hadoop102:9868</value>
? ? </property>
</configuration>
(3)YARN配置文件

配置/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml,文件內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
? ? <!-- 指定MR走shuffle -->
? ? <property>
? ? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? ? <value>mapreduce_shuffle</value>
? ? </property>
? ? <!-- 指定ResourceManager的地址-->
? ? <property>
? ? ? ? <name>yarn.resourcemanager.hostname</name>
? ? ? ? <value>hadoop101</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>

(4)MapReduce配置文件

配置/opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml,文件內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
?
<configuration>
?? ?<!-- 指定MapReduce程序運行在Yarn上 -->
? ? <property>
? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? <value>yarn</value>
? ? </property>
</configuration>
(5)配置workers

要修改的文件是:/opt/module/hadoop-3.1.3/etc/hadoop/workers,在該文件中增加如下內容:

hadoop100
hadoop101
hadoop102
注意:該文件中添加的內容結尾不允許有空格,文件中不允許有空行。

(七)同步分發配置文件

剛才我們是在hadoop100這臺機器上進行了正確的設置,但是,其他的2臺機器也要做相同的配置。所以我們用上一節課封裝的xsync 命令來進行文件同步。

把這個配置文件同步給其他的主機,使用命令如下:

[root@hadoop100 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/

(九)啟動集群

(1)如果集群是第一次啟動,需要在hadoop100節點(指定為namenode的節點)格式化NameNode(注意:格式化NameNode,會產生新的集群id)

命令是:hd。具體如下:

[root@hadoop100 hadoop-3.1.3]$ hdfs namenode -format

(2)啟動HDFS

[root@hadoop100 hadoop-3.1.3]$ sbin/start-dfs.sh

提醒:此時會報錯不允許使用root用戶來啟動HDFS!

在環境變量中添加/etc/profile.d/my_env.sh

#添root加環境變量
#告訴 Hadoop 使用 root 用戶來啟動和管理相應的服務
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
同步給其他的機器,并使用source命令,讓環境變量生效!

再來試一次。

(3)在配置了ResourceManager的節點(hadoop101)啟動YARN

[root@hadoop101 hadoop-3.1.3]$ sbin/start-yarn.sh

(十)查看集群運行效果

(1)Web端查看HDFS的NameNode

(a)瀏覽器中輸入:http://hadoop100:9870

(b)查看HDFS上存儲的數據信息

(2)Web端查看YARN的ResourceManager

(a)瀏覽器中輸入:http://hadoop101:8088

(3)查看YARN上運行的Job信息

重置集群
如果集群出現了異常,可以嘗試如下操作(你將失去所有的數據,請謹慎)

停止hdfs. stop-dfs.sh
停止 yarn。 stop-yarn.sh
刪除 所有設備上的 /data, ?/log
重新初始化集群。hdfs namenode -format
重新啟動hdfs, yarn。 start-dfs.sh ? start-yarn.sh
三、課堂小結
通過本堂課的學習,我們學習了hadoop的基本組成,并且成功地配置了hadoop集群環境。

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

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

相關文章

Kubernetes生產實戰(四):kubelet日志快速定位指南

kubelet作為Kubernetes節點的核心管家&#xff0c;其日志是排查節點問題的金鑰匙。本文將分享生產環境中查看和分析kubelet日志的完整方案&#xff0c;助你快速定位節點級故障。 一、基礎操作&#xff1a;快速查看日志 1. systemd服務日志&#xff08;推薦首選&#xff09; …

麥科信獲評CIAS2025金翎獎【半導體制造與封測領域優質供應商】

在蘇州舉辦的2025CIAS動力能源與半導體創新發展大會上&#xff0c;深圳麥科信科技有限公司憑借在測試測量領域的技術積累&#xff0c;入選半導體制造與封測領域優質供應商榜單。本屆大會以"新能源芯時代"為主題&#xff0c;匯集了來自功率半導體、第三代材料應用等領…

Python實例題:pygame開發打飛機游戲

目錄 Python實例題 題目 pygame-aircraft-game使用 Pygame 開發的打飛機游戲腳本 代碼解釋 初始化部分&#xff1a; 游戲主循環&#xff1a; 退出部分&#xff1a; 運行思路 注意事項 Python實例題 題目 pygame開發打飛機游戲 pygame-aircraft-game使用 Pygame 開發…

Gin 框架入門

Gin 框架入門 一、響應數據 JSON 響應 在 Web 開發中&#xff0c;JSON 是一種常用的數據交換格式。Gin 提供了簡便的方法來響應 JSON 數據。 package mainimport ("github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/json", func(c *…

Flink實時數倉數據突變時,如何快速排查原因

在大數據時代,數據的價值已經被無數企業和組織深刻認識到,而實時數倉作為數據處理和分析的重要基礎設施,正在逐漸成為推動業務增長和決策優化的核心引擎。想象一下,電商平臺在雙十一大促期間需要實時監控訂單量、用戶行為,甚至庫存變化,以便及時調整營銷策略和物流調度;…

視頻人像摳圖技術選型--截止2025年4月

前言&#xff1a;我是一名算法工程師&#xff0c;經常需要對某個AI功能做技術調研和輸出技術選型報告&#xff0c;在過去多年的工作當中&#xff0c;積累了很多內容&#xff0c;我會陸陸續續將這些內容整理出來分享給大家&#xff0c;希望大家喜歡&#xff0c;感謝您的閱讀&…

docker compose ps 命令

docker compose ps 命令用于列出與 Docker Compose 項目相關的容器及其狀態。 docker compose ps 能顯示當前項目中所有服務容器的運行狀態、端口映射等信息。 語法 docker compose ps [OPTIONS] [SERVICE…] SERVICE&#xff08;可選&#xff09;&#xff1a;指定要查看狀態…

C語言 字符函數和字符串函數(1)

目錄 1.字符分類函數 2.字符轉換函數 3.strlen的使用和模擬實現 4.strcpy的使用和模擬實現 在編程的過程中&#xff0c;我們經常要處理字符和字符串&#xff0c;為了方便操作字符和字符串&#xff0c;C語言標準庫中提 供了一系列庫函數&#xff0c;接下來我們就學習一下這…

MySQL 中如何進行 SQL 調優?

在MySQL中進行SQL調優是一個系統性工程&#xff0c;需結合索引優化、查詢改寫、性能分析工具、數據庫設計及硬件配置等多方面策略。以下是具體優化方法及案例說明&#xff1a; 一、索引優化&#xff1a;精準提速的關鍵 索引類型選擇 普通索引&#xff1a;加速頻繁查詢的列&…

OpenCV圖像金字塔詳解:原理、實現與應用

一、什么是圖像金字塔&#xff1f; 圖像金字塔是圖像處理中一種重要的多尺度表示方法&#xff0c;它通過對圖像進行重復的平滑和降采樣&#xff08;或上采樣&#xff09;操作&#xff0c;生成一系列分辨率逐漸降低&#xff08;或升高&#xff09;的圖像集合。這種結構形似金字…

收集飛花令碎片——C語言分支與循環語句(上)

前言 Hello,各位碼友&#xff0c;本章將會給大家帶來C語言的分支與循環整章串講&#xff0c;這一張的內容分為基礎知識和程序練習兩個部分 希望通過這一章能夠帶大家更好地去掌握C語言的分支與循環語句 大家一起努力吧 C語言分支與循環語句&#xff08;基礎知識&#xff09; C…

嵌入式硬件篇---TOF|PID

文章目錄 前言1. 硬件準備主控芯片ToF模塊1.VL53L0X2.TFmini 執行機構&#xff1a;電機舵機其他 2. 硬件連接(1) VL53L0X&#xff08;IC接口&#xff09;(2) TFmini&#xff08;串口通信&#xff09; 3. ToF模塊初始化與數據讀取(1) VL53L0X&#xff08;基于HAL庫&#xff09;(…

PCB設計實踐(十二)PCB設計電容選型:功能、材質、規則

在PCB設計中&#xff0c;電容作為基礎元件承擔著濾波、儲能、去耦、耦合等核心功能。其分類與使用規則直接影響電路穩定性、抗干擾能力和信號完整性。本文從工程實踐角度系統梳理PCB設計中電容的五大分類、選型規范及布局布線規則&#xff0c;幫助設計者構建科學的電容應用體系…

vue2關閉eslint

在項目根目錄下找到 vue.config.js 文件。如果沒有該文件&#xff0c;可以直接在項目根目錄創建一個。 2. 添加 lintOnSave: false 配置 module.exports {lintOnSave: false };

MyBatis 一對多關聯映射在Spring Boot中的XML配置

在Spring Boot中使用MyBatis實現一對多關系時&#xff0c;可以通過XML映射文件來配置。下面我將詳細介紹幾種實現方式。 基本概念 一對多關系指的是一個實體對象包含多個子對象集合的情況&#xff0c;例如&#xff1a; 一個部門有多個員工一個訂單有多個訂單項一個博客有多個…

基于Stable Diffusion XL模型進行文本生成圖像的訓練

基于Stable Diffusion XL模型進行文本生成圖像的訓練 flyfish export MODEL_NAME"stabilityai/stable-diffusion-xl-base-1.0" export VAE_NAME"madebyollin/sdxl-vae-fp16-fix" export DATASET_NAME"lambdalabs/naruto-blip-captions"acceler…

基于React的高德地圖api教程001:初始化地圖

文章目錄 1、初始化地圖1.1 創建react項目1.2 可視化地圖1.3 設置衛星地圖1.4 添加開關開啟3D地圖1.5 代碼下載1、初始化地圖 1.1 創建react項目 創建geodeapi項目: npx create-react-app gaodeapi安裝高德地圖包: npm install @amap/amap-jsapi-loader1.2 可視化地圖 在…

uniapp使用npm下載

uniapp的項目在使用HBuilder X創建時是不會有node_modules文件夾的&#xff0c;如下圖所示&#xff1a; 但是uni-app不管基于哪個框架&#xff0c;它內部一定是有node.js的&#xff0c;否則沒有辦法去實現框架層面的一些東西&#xff0c;只是說它略微有點差異。具體差異表現在…

輕量在線工具箱系統源碼 附教程

源碼介紹 輕量在線工具箱系統源碼,直接扔服務器 修改config/config.php文件里面的數據庫 后臺賬號admin 密碼admin123 本工具是AI寫的 所以工具均是第三方接口直接寫的。 需要加工具直接自己找接口寫好扔到goju目錄 后臺自動讀取 效果預覽 源碼獲取 輕量在線工具箱系統源…

圖解gpt之Seq2Seq架構與序列到序列模型

今天深入探討如何構建更強大的序列到序列模型&#xff0c;特別是Seq2Seq架構。序列到序列模型&#xff0c;顧名思義&#xff0c;它的核心任務就是將一個序列映射到另一個序列。這個序列可以是文本&#xff0c;也可以是其他符號序列。最早&#xff0c;人們嘗試用一個單一的RNN來…