一、Hadoop主要配置文件的作用
ps:有興趣可以了解一下 HDFS 的配置文件及目錄結構(這也是一開始接觸一個新東西的一個重要重要的環節)
1,core-site.xml (Hadoop 核心配置,例如HDFS、MapReduce和YARN常用的I/O設置等)
屬性 | 含義 |
fs.defaultFS | 描述集群中NameNode節點的URI(包括協議、主機名稱/ip地址、端口號) |
● 文件系統的名字,通常是NameNode的hostname與port。
主機是NameNode的主機名稱或IP地址,端口是NameNode監聽RPC的端口,如果沒有指定,默認是8020。
● 集群里面的每一台機器都需要知道NameNode的地址,DataNode會先在NameNode上注冊,這樣它們的數據才可以被使用。 ● 獨立的客戶端程序通過這個URI跟DataNode交互,以取得文件的塊列表。
例子:hdfs://master:9000
core-site.xml主要配置
|
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration>
<!-- 默認的文件系統,一般將其改為hdfs,描述集群中NameNode節點的URI(包括協議、主機名稱/ip地址、端口號),也指定了namenode要放在哪台機器上 --> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.238.100:8020</value> </property> <!-- 臨時數據存放的位置 --> <property> <name>hadoop.tmp.dir</name> <value>/export/servers/hadoop-3.1.3/hadoopDatas/tempDatas</value> </property> <!-- 緩沖區大小,實際工作中根據服務器性能動態調整 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 開啟hdfs的垃圾桶機制,刪除掉的數據可以從垃圾桶中回收,單位分鍾 10080 相當與7天 60*24*7--> <property> <name>fs.trash.interval</name> <value>10080</value> </property> </configuration>
2,hdfs-site.xml (Hadoop守護(守護是后台的意思)進程的配置項,包括namenode、輔助namenode(即SecondNameNode)和datanode等)
✿ hadoop 守護進程一般同時運行RPC 和HTTP兩個服務器,RPC服務器支持守護進程間的通信,HTTP服務器則提供與用戶交互的Web頁面。
需要分別為各個服務器配置網絡地址和端口號。
hdfs-site.xml 主要配置
|
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- secondaryNameNode的訪問地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
<!-- NameNode的訪問地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>node01:50070</value>
</property>
<!-- df -lh 查看LINUX下磁盤的掛載路徑 -->
<!-- 定義nameNode數據存儲的節點位置,實際工作中,一般先確定磁盤的掛載目錄,然后有多個目錄用,進行分割 如 file:///one,file:///two
fsimage的存放位置
-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value>
<description> namenode 存放name table(fsimage)本地目錄 </description>
</property>
<!-- 定義dataNode數據存儲的節點位置,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value>
<description> datanode 存放文件塊的本地目錄 </description>
</property>
<!-- 定義我們的元數據的操作日志的存放位置
edits的存放位置
-->
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value>
<description> namenode 存放 transaction file(edits)本地目錄</description>
</property>
<!-- 元數據檢查點保存的位置 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value>
</property>
<!--
edits文件的檢查點保存位置
-->
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value>
</property>
<!-- 文件的副本數,一份文件保存多少份 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- hdfs的權限控制 -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 文件存儲的block塊大小 -->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
3,mapred-site.xml ( MapReduce守護進程的配置項,包括作業歷史服務器 )
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定我們mapreduce運行在yarn集群上面 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 開啟mapreduce的小任務模式,用於調優 --> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <!-- 配置mapreduce 的jobhistory 可以查看我們所有運行完成的任務的一些情況 --> <property> <name>mapreduce.jobhistory.address</name> <value>node01:10020</value> </property> <!-- 配置mapreduce 的jobhistory的訪問地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node01:19888</value> </property> </configuration>
4,yarn-site.xml ( YARN守護進程的配置項,包括資源管理器、web應用代理服務器和節點管理器 )
<?xml version="1.0"?> <configuration> <!--指定我們的resourceManager運行在哪台機器上面 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node01</value> </property> <!-- NodeManager的通信方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 日志的聚合功能,方便我們查看任務執行完成之后的日志記錄 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 聚合日志的保存時長 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>
參考文章:《Hadoop配置文件詳解》https://blog.csdn.net/andyguan01_2/article/details/88615438
《詳解Hadoop六個配置文件的作用》https://blog.csdn.net/qq_31151125/article/details/101785843
《hdfs-site.xml 詳解》https://blog.csdn.net/muyingmiao/article/details/99890149