Hadoop集群中,需要配置的文件主要包括四個
-
配置核心Hadoop參數:
- 編輯
core-site.xml
文件,設置Hadoop集群的基本參數,如文件系統、Hadoop臨時目錄等。
- 編輯
-
配置HDFS參數:
- 編輯
hdfs-site.xml
文件,設置HDFS的相關參數,如數據塊大小、副本數等。
- 編輯
-
配置MapReduce參數(如果使用):
- 編輯
mapred-site.xml
文件,設置MapReduce的相關參數。
- 編輯
-
配置YARN參數(如果使用):
- 編輯
yarn-site.xml
文件,設置YARN的相關參數。
- 編輯
核心Hadoop參數 core-site.xml
參考官網
Hadoop的core-site.xml
文件包含了許多重要的配置參數,這些參數用于定義Hadoop集群的全局設置。以下是一些常見的core-site.xml
配置參數:
配置項 | 默認值 | 說明 |
---|---|---|
fs.defaultFS | 無 | Hadoop集群的NameNode的URI。這是HDFS的入口點。 |
io.file.buffer.size | 4096 | SequenceFiles在讀寫過程中可以使用的緩存大小(以字節為單位)。 |
hadoop.tmp.dir | /tmp/hadoop-${user.name} | Hadoop的臨時目錄,用于存儲臨時文件和目錄。 |
fs.trash.interval | 0 | 垃圾箱中文件的保留時間(以分鐘為單位)。設置為大于0的值將啟用垃圾箱功能。 |
hadoop.proxyuser.${username}.hosts | 無 | 允許代理用戶從哪些主機連接到Hadoop集群。 |
hadoop.proxyuser.${username}.groups | 無 | 允許代理用戶屬于哪些用戶組連接到Hadoop集群。 |
fs.trash.checkpoint.interval | 0 | 檢查垃圾箱并刪除過期文件的間隔時間(以分鐘為單位)。 |
fs.automatic.close | true | 是否在讀取文件后自動關閉文件系統。 |
fs.dummy.impl | org.apache.hadoop.fs.DummyFileSystem | 一個假的文件系統實現,用于測試。 |
請注意,上述表格中的默認值可能會因Hadoop版本和特定環境而有所不同。此外,還有許多其他可用的配置參數,具體取決于您的Hadoop集群的需求和配置。
在實際配置中,您應該根據您的Hadoop集群的具體要求和網絡環境來設置這些參數。一些關鍵參數(如fs.defaultFS
)在集群設置中是必需的,而其他參數則可以根據需要進行調整。在修改core-site.xml文件之前,請確保您已經充分了解每個參數的含義和潛在影響。
HDFS參數 hdfs-site.xml
參考官網
hdfs-site.xml
是 Hadoop 分布式文件系統(HDFS)的配置文件,它包含了許多參數,用于定義 HDFS 的行為和特性。以下是一些常見的 hdfs-site.xml
配置參數:
配置項 | 默認值 | 說明 |
---|---|---|
dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name | NameNode 存儲其持久化元數據的本地文件系統路徑。 |
dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data | DataNode 存儲其塊的本地文件系統路徑。 |
dfs.replication | 3 | 數據的默認副本數。 |
dfs.permissions.enabled | true | 是否啟用 HDFS 權限檢查。 |
dfs.block.size | 134217728 (128 MB) | HDFS 塊的大小。 |
dfs.namenode.handler.count | 10 | NameNode 服務器可以同時處理的客戶端請求數。 |
dfs.datanode.handler.count | 10 | DataNode 服務器可以同時處理的客戶端請求數。 |
dfs.client.read.shortcircuit | false | 允許 DFS 客戶端繞過 DataNode 直接讀取本地文件。 |
dfs.client.read.shortcircuit.skip.checksum | false | 在短路讀取時跳過校驗和檢查。 |
dfs.https.address | 0.0.0.0:50470 | NameNode HTTPS 服務的地址和端口。 |
dfs.http.address | 0.0.0.0:50070 | NameNode HTTP 服務的地址和端口。 |
dfs.datanode.http.address | 0.0.0.0:50075 | DataNode HTTP 服務的地址和端口。 |
dfs.datanode.ipc.address | 0.0.0.0:50020 | DataNode IPC 服務的地址和端口。 |
dfs.namenode.http-address | 0.0.0.0:50070 | NameNode HTTP 服務的地址和端口(用于 Web UI)。 |
dfs.namenode.secondary.http-address | 0.0.0.0:50090 | Secondary NameNode HTTP 服務的地址和端口。 |
請注意,這些默認值可能會因 Hadoop 的版本和特定環境而有所不同。此外,還有許多其他可用的配置參數,具體取決于您的 HDFS 集群的需求和配置。
在實際配置中,您應該根據您的 HDFS 集群的具體要求和網絡環境來設置這些參數。一些關鍵參數(如 dfs.namenode.name.dir
和 dfs.datanode.data.dir
)在集群設置中是必需的,而其他參數則可以根據需要進行調整。在修改 hdfs-site.xml
文件之前,請確保您已經充分了解每個參數的含義和潛在影響。
此外,請注意 hdfs-site.xml
文件通常還包含一些高級參數,用于調優 HDFS 的性能和可靠性,例如設置 NameNode 和 DataNode 的堆大小、調整各種超時設置等。這些參數的具體設置應該基于您的集群規模和工作負載進行調整。
MapReduce參數 mapred-site.xml
參考官網
mapred-site.xml
是 Hadoop MapReduce 的配置文件,它包含了許多參數,用于定義 MapReduce 作業的行為和特性。以下是一些常見的 mapred-site.xml
配置參:
配置項 | 默認值 | 說明 |
---|---|---|
mapreduce.framework.name | local | 執行框架設置為本地模式(單機模式),在集群上應設置為 yarn 。 |
mapreduce.jobhistory.address | 0.0.0.0:10020 | MapReduce JobHistory Server 的地址和端口。 |
mapreduce.jobhistory.webapp.address | 0.0.0.0:19888 | MapReduce JobHistory Server 的 Web UI 地址和端口。 |
mapreduce.jobtracker.address | local | MapReduce JobTracker 的地址和端口(舊版 API,YARN 中不再使用)。 |
mapreduce.tasktracker.address | 0.0.0.0:50060 | MapReduce TaskTracker 的地址和端口(舊版 API,YARN 中不再使用)。 |
mapreduce.map.output.compress | false | 是否壓縮 Map 任務的輸出。 |
mapreduce.map.output.compress.codec | org.apache.hadoop.io.compress.DefaultCodec | Map 任務輸出壓縮使用的編解碼器。 |
mapreduce.task.io.sort.mb | 100 | 排序時使用的內存緩沖區大小(以 MB 為單位)。 |
mapreduce.task.io.sort.factor | 10 | 合并小文件時一次合并的流的數量。 |
mapreduce.reduce.shuffle.parallelcopies | 5 | 從 Map 到 Reduce 拷貝數據的并行度。 |
mapreduce.reduce.shuffle.fetch.retry.enabled | true | 是否啟用 shuffle 階段獲取數據的重試機制。 |
mapreduce.reduce.shuffle.retry-delay.ms | 1000 | shuffle 階段重試之間的延遲時間(以毫秒為單位)。 |
mapreduce.reduce.shuffle.input.buffer.percent | 0.7 | shuffle 階段用于存儲數據的內存比例。 |
mapreduce.job.reduces | 1 | 每個作業的默認 Reduce 任務數。 |
mapreduce.job.maps | 無默認值 | 每個作業的 Map 任務數(通常由 AM 根據數據自動計算)。 |
mapreduce.map.speculative | true | 是否啟用 Map 任務的推測執行。 |
mapreduce.reduce.speculative | true | 是否啟用 Reduce 任務的推測執行。 |
請注意,這些默認值可能會因 Hadoop 的版本和特定環境而有所不同。此外,還有許多其他可用的配置參數,具體取決于您的 MapReduce 作業的需求和配置。
在實際配置中,您應該根據您的 MapReduce 作業的具體要求和網絡環境來設置這些參數。一些關鍵參數(如 mapreduce.framework.name
)在集群設置中是必需的,以指定執行框架,而其他參數則可以根據需要進行調整。在修改 mapred-site.xml
文件之前,請確保您已經充分了解每個參數的含義和潛在影響。
另外,值得注意的是,隨著 Hadoop 的發展,MapReduce 已經被 YARN 和其他框架(如 Spark、Flink)所取代,因此在新版本的 Hadoop 中,mapred-site.xml
文件可能不再存在,或者其重要性已經降低。在使用新版本的 Hadoop 時,請確保查看相關文檔以了解最新的配置方法和最佳實踐。
YARN參數 yarn-site.xml
參考官網
yarn-site.xml
是 Apache Hadoop YARN 的配置文件,它包含了許多參數,用于定義 YARN 集群的行為和特性。以下是一些常見的 yarn-site.xml
配置參數:
配置項 | 默認值 | 說明 |
---|---|---|
yarn.resourcemanager.hostname | 無 | ResourceManager 的主機名。 |
yarn.resourcemanager.scheduler.address | ${yarn.resourcemanager.hostname}:8030 | ResourceManager 調度器服務的地址和端口。 |
yarn.resourcemanager.resource-tracker.address | ${yarn.resourcemanager.hostname}:8031 | ResourceManager 資源追蹤服務的地址和端口。 |
yarn.resourcemanager.address | ${yarn.resourcemanager.hostname}:8032 | ResourceManager RPC 服務的地址和端口。 |
yarn.resourcemanager.webapp.address | ${yarn.resourcemanager.hostname}:8088 | ResourceManager Web UI 的地址和端口。 |
yarn.resourcemanager.admin.address | ${yarn.resourcemanager.hostname}:8033 | ResourceManager 管理服務的地址和端口。 |
yarn.scheduler.minimum-allocation-mb | 1024 | 單個容器可申請的最小內存(以 MB 為單位)。 |
yarn.scheduler.maximum-allocation-mb | 8192 | 單個容器可申請的最大內存(以 MB 為單位)。 |
yarn.nodemanager.resource.memory-mb | 8192 | NodeManager 可用的總物理內存(以 MB 為單位)。 |
yarn.scheduler.minimum-allocation-vcores | 1 | 單個容器可申請的最小虛擬 CPU 個數。 |
yarn.scheduler.maximum-allocation-vcores | 32 | 單個容器可申請的最大虛擬 CPU 個數。 |
yarn.nodemanager.vmem-pmem-ratio | 2.1 | 虛擬內存與物理內存的比例。 |
yarn.nodemanager.local-dirs | ${hadoop.tmp.dir}/nm-local-dir | NodeManager 存儲本地化資源的目錄列表。 |
yarn.nodemanager.log-dirs | ${yarn.log.dir}/userlogs | NodeManager 存儲容器日志的目錄列表。 |
yarn.nodemanager.aux-services | mapreduce_shuffle | NodeManager 提供的輔助服務列表。 |
yarn.nodemanager.remote-app-log-dir | /tmp/logs | 存儲應用程序日志的遠程目錄(通常用于日志聚合)。 |
yarn.nodemanager.recovery.enabled | false | 是否啟用 NodeManager 恢復功能。 |
yarn.nodemanager.recovery.dir | 無 | 用于存儲 NodeManager 恢復數據的目錄。 |
請注意,這些默認值可能會因 Hadoop 的版本和特定環境而有所不同。此外,還有許多其他可用的配置參數,具體取決于您的 YARN 集群的需求和配置。在實際配置中,您應該根據您的 YARN 集群的具體要求和網絡環境來設置這些參數。在修改 yarn-site.xml
文件之前,請確保您已經充分了解每個參數的含義和潛在影響。
參考
- https://hadoop.apache.org/docs/r3.3.6/index.html