Hadoop配置文件详解
生活随笔
收集整理的這篇文章主要介紹了
Hadoop配置文件详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hadoop配置文件詳解
概述
Hadoop默認配置文件
| core-default.xml | 默認的核心hadoop屬性文件 | 位于:Hadoop-common-2.10.1.jar |
| hdfs-default.xml | 默認的HDFS屬性配置文件 | 位于:hadoop-hdfs-2.10.1.jar |
| mapred-default.xml | 默認mapreduce屬性配置文件 | 位于:mapreduce-client-core-2.10.1.jar |
| yarn-default.xml | 默認的YARN屬性配置文件 | 位于:yarn-common-2.10.1.jar |
Hadoop自定義配置文件
存放在$HADOOP_HOME/etc/hadoop這個路徑里,用戶可以根據項目需求重新進行修改配置
| hadoop-env.sh | 配置 Hadoop 運行所需的環境變量 |
| core-site.xml | Hadoop 核心全局配置文件,可在其他配置文件中引用該文件 |
| hdfs-site.xml | HDFS 配置文件,繼承 core-site.xml 配置文件 |
| mapred-site.xml | MapReduce 配置文件,繼承 core-site.xml 配置文件 |
| yarn-site.xml | YARN 配置文件,繼承 core-site.xml 配置文件 |
當然還有slaves文件,記錄集群的主機名。
hadoop-env.sh
文件中設置的是Hadoop運行時需要的環境變量。JAVA_HOME是必須設置的,即使我們當前的系統中設置了JAVA_HOME,它也是不認識的,因為Hadoop即使是在本機上執行,它也是把當前的執行環境當成遠程服務器。
# 修改前 # The java implementation to use. export JAVA_HOME=${JAVA_HOME}# 修改后 # The java implementation to use. export JAVA_HOME=/app/java/jdk1.8.0_181core-site.xml
核心全局配置文件
<!-- Put site-specific property overrides in this file. --><configuration><!-- 用于設置Hadoop的文件系統,由URI指定默認協議file:///屬于本地路徑,由于之后要用HDFS,因此需要修改為hdfs://主機名(ip):端口(內部的一個通訊)--><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><!-- 配置Hadoop存儲數據目錄,默認/tmp/hadoop-${user.name} --><property><name>hadoop.tmp.dir</name><value>file:/app/hadoop-2.10.1/tmp</value></property><!-- 緩沖區大小,實際工作中根據服務器性能動態調整 --><property><name>io.file.buffer.size</name><value>131072</value></property><!-- 開啟hdfs的垃圾桶機制,刪除掉的數據可以從垃圾桶中回收,單位分鐘 --><property><name>fs.trash.interval</name><value>10080</value></property> </configuration>hdfs-sit.xml
Hadoop的底層存儲配置文件,主要配置HDFS相關參數
<!-- Put site-specific property overrides in this file. --><configuration><!-- namenode存儲hdfs名字的空間的元數據文件目錄 --><property><name>dfs.namenode.name.dir</name><value>file:/app/hadoop-2.10.1/dfs/name</value></property><!-- datanode上的一個數據塊的物理的存儲位置文件 --><property><name>dfs.datanode.data.dir</name><value>file:/app/hadoop-2.10.1/dfs/data</value></property><!-- 指定HDFS保存數據副本的數量 --><property><name>dfs.replication</name><value>3</value></property><!-- 設置一個block的大小:128M--><property><name>dfs.blocksize</name><value>134217728</value></property><!-- 定義namenode界面的訪問地址 --><property><name>dfs.http.address</name><value>node1:50070</value></property><!-- 定義secondarynamenode的通信地址 --><property><name>dfs.namenode.secondary.http-address</name><value>node2:50071</value></property><!-- 設置HDFS的文件權限--><property><name>dfs.permissions</name><value>false</value></property><!-- 指定DataNode的節點配置文件 --><property><name>dfs.hosts</name><value>/app/hadoop-2.10.1/etc/hadoop/slaves</value></property> </configuration>mapred-site.xml
Hadoop默認只有個模板文件mapred-site.xml.template,需要使用該文件復制出來一份mapred-site.xml文件
yarn 的 web 地址 和 history 的 web 地址以及指定我們的 mapreduce 運行在 yarn 集群上
<!-- Put site-specific property overrides in this file. --><configuration><!-- 指定 MapReduce 程序運行在 Yarn 上,表示MapReduce使用yarn框架 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 開啟MapReduce小任務模式 --><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><!-- 設置歷史任務的主機和端口 --><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value></property><!-- 設置網頁訪問歷史任務的主機和端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value></property> </configuration>yarn-site.xml
<configuration><!-- Site specific YARN configuration properties --><!-- NodeManager獲取數據的方式shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><!-- yarn的web訪問地址 --><property><description>The http address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property><property><description>The https address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value></property><!-- 開啟日志聚合功能,方便我們查看任務執行完成之后的日志記錄 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 設置聚合日志在hdfs上的保存時間 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property> </configuration>slaves
slaves文件里面記錄的是集群主機名。一般有以下兩種作用:
配合一鍵啟動腳本如start-dfs.sh、stop-yarn.sh用來進行集群啟動。這時候slaves文件里面的主機標記的就是從節點角色所在的機器。
配合hdfs-site.xml里面dfs.hosts屬性形成一種白名單機制。
dfs.hosts指定一個文件,其中包含允許連接到NameNode的主機列表。必須指定文件的完整路徑名,那么所有在slaves中的主機才可以加入的集群中。如果值為空,則允許所有主機。
cd /app/hadoop-2.10.1/etc/hadoop vi slaves # 刪除slaves中的localhost,然后添加以下內容 node1 node2 node3總結
以上是生活随笔為你收集整理的Hadoop配置文件详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Struts2初始化过程代码分析
- 下一篇: iOS代码工具箱