【總結】Hadoop配置文件hdfs-site.xml

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

<description>配置是否啓動故障恢復,配置此項爲true的時候,core-site.xml需要配置ha.zookeeper.quorum</description>

</property>

<property>

<name>dfs.nameservices</name>

<value>ns1</value>

<description>提供服務的NS邏輯名稱,與core-site.xml裏的對應;Comma-separated list of nameservices</description>

</property>

<property>

<name>dfs.ha.namenodes.ns1</name>

<value>nn1,nn2</value>

<description>列出該邏輯名稱下的NameNode邏輯名稱, dfs.ha.namenodes.EXAMPLENAMESERVICE配置項EXAMPLENAMESERVICE位dfs.nameservices的值</description>

</property>

<property>

<name>dfs.namenode.rpc-address.ns1.nn1</name>

<value>nn1.ol:9000</value>

<description>指定NameNode的RPC位置;處理所有客戶端請求的RPC地址,</description>

</property>

<property>

<name>dfs.namenode.http-address.ns1.nn2</name>

<value>nn2.ol:50070</value>

<description>namenode web ui端口 ,例如: http://nn1.ol:50070/  </description>

</property>

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://nn1.ol:8485;nn2.ol:8485;s1.ol:8485/ns1</value>

<description>指定用於HA存放edits的共享存儲,通常是NFS掛載點;active namenode向配置的文件夾中寫,standby namenode從這個文件夾下讀,從而保證namespaces同步;在非HA集羣中此項配置爲空</description> 

</property>

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/hadoop/1/jn/</value>

<description>作用暫時不知道</description>

</property>

<property>

<name>dfs.ha.fencing.methods</name>

<value>sshfence</value>

<description> core-site.xml中配置項;指定HA做隔離的方法,缺省是ssh,可設爲shell,稍後詳述; 

sshfence 通過 ssh 登錄到前一個 ActiveNameNosde 並將其殺死。爲了讓該機制成功執行,

需配置免密碼 ssh 登陸,通過參數 dfs.ha.fencing.ssh.private-key-files 指定一個私鑰文件</description>

</property>

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hadoop/.ssh/id_rsa</value>

<description>The SSH private key files to use with the builtin sshfence fencer.</description>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///hadoop/1/dfs/nn</value>

<description>本地文件系統DFSnamenode存放name table(fsimage文件)的目錄,參數值如果是逗號分隔的多個目錄,the name table複製到多個目錄,冗餘</description>

其中fsimage鏡像文件包含了整個HDFS文件系統的所有目錄和文件的indoe信息。對於文件來說包括了數據塊描述信息、修改時間、訪問時間等;對於目錄來說包括修改時間、訪問權限控制信息(目錄所屬用戶,所在組等)等。

另外,edit文件主要是在NameNode已經啓動情況下對HDFS進行的各種更新操作進行記錄,HDFS客戶端執行所有的寫操作都會被記錄到edit文件中。


</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///hadoop/1/dfs/dn,file:///hadoop/2/dfs/dn</value>

<description>DFS data node存放塊文件的本地文件系統目錄,一個文件按塊大小切分後,按順序存放在配置多個目錄下(目錄不存在則忽略);

這麼做的目的是,可以將數據寫多塊硬盤,把這些位置分散在每個節點上的所有磁盤上可以實現磁盤 I/O 平衡,因此會顯著改進磁盤 I/O 性能。

</description>

測試環境配置:

wKiom1fJEGzgNGAFAAANTTbi9Oc508.png

測試環境datanode的磁盤:

wKioL1fJEHniWfL0AAAp5gNOiqo131.png


</property>

<property>

<name>dfs.blocksize</name>

<value>268435456</value>

<description>HDFS文件系統塊大小;可以配置以m,g等後綴結尾的值  256m</description>

</property>

<property>

<name>dfs.support.append</name>

<value>true</value>

<description>HDFS允許向文件追加內容;如果這個參數設置爲false,例如Flume這樣的工具持續向HDFS中的一個文件寫數據就會出問題(我猜的。沒驗證)</description>

</property>

<property>

<name>fs.trash.interval</name>

<value>10080</value>單位:minute

<description>.Trash目錄下文件多久後被刪除,10080/1440=7,參數設置爲0,文件直接刪除不移動到.Trash中</description>

</property>

<property>

<name>dfs.datanode.failed.volumes.tolerated</name>

<value>1</value>

<description>允許磁盤損壞的數目,超過配置值,datanode shutdown</description>

</property>

<property>

<name>dfs.datanode.balance.bandwidthPerSec</name>

<value>104857600</value>

<description>balancing purpose,允許沒秒的帶寬;爲了防止balance過程搶佔網絡資源,不爲Mapreduce作業或者數據輸入預留資源</description>

</property>

<property>

<name>dfs.namenode.handler.count</name>

<value>46</value>

<!-- 設置該值的一般原則是將其設置爲集羣大小的自然對數乘以20,即20logN,N爲集羣大小;python -c 'import math ; print int(math.log(N) * 20)' -->

</property>

<property>

<name>dfs.datanode.max.xcievers</name>

<value>8192</value>

<description>相當於linux下的打開文件最大數量,文檔中無此參數,當出現DataXceiver報錯的時候,需要調大。默認256;

此項配置已過時,用dfs.datanode.max.transfer.threads代替,源代碼見DFSConfigKeys.java

</description>

</property>


<property>

<name>dfs.datanode.max.transfer.threads</name>

<value>8192</value>

<description>相當於linux下的打開文件最大數量,文檔中無此參數,當出現DataXceiver報錯的時候,需要調大。默認256

</description>

</property>

<property>

<name>dfs.datanode.socket.write.timeout</name>

<value>100000000</value>

<description> IO超時,超時上限值以毫秒爲單位。0表示無限制;java.net.SocketTimeoutException: 480000(配置參數的值) millis timeout while waiting for channel to be ready for write</description>

</property>


<property>

<name>dfs.client.socket-timeout</name>

<value>100000000</value>

<description> IO超時,超時上限值以毫秒爲單位。0表示無限制;java.net.SocketTimeoutException: 480000(配置參數的值) millis timeout while waiting for channel to be ready for write</description>

</property>

<property>

<name>dfs.datanode.du.reserved</name>

<value>21474836480</value>

<description>每個存儲卷保留用作其他用途( non dfs use)的磁盤大小,20G;單位 bytes per volume</description>

</property>

<property>

<name>dfs.datanode.fsdataset.volume.choosing.policy</name>

<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>

<description>數據副本存放磁盤選擇策略,

第一種是沿用hadoop1.0的磁盤目錄輪詢方式,實現類:RoundRobinVolumeChoosingPolicy.java(如果不配置,默認)

第二種是選擇可用空間足夠多的磁盤方式存儲,實現類:AvailableSpaceVolumeChoosingPolicy.java

</description>

</property>

<property>

<name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold</name>

<value>2147483648</value>

<description>允許的卷剩餘空間差值,2G

wKiom1fJEgbCID9EAABHhy0eW-o682.png

</description>


</property>


<property>

<name>dfs.hosts.exclude</name>

<value>/usr/local/hadoop/etc/hadoop/exclude_hosts</value>

<description>一個列表,列表中的hosts不允許連接namenode</description>


</property>

<property>

<name>dfs.client.read.shortcircuit</name>

<value>true</value>

<description>打開本地讀功能</description>

</property>

<property>

<name>dfs.domain.socket.path</name>

<value>/hadoop/1/dfs/dn_socket_PORT</value>

<description>dfs.domain.socket.path是Datanode和DFSClient之間溝通的Socket的本地路徑

套接口文件

wKiom1fJEJqwhsUZAAAOvm8o8oI271.png

</description>


</property>

<!-- 權限相關 Begin -->

<property>

<name>dfs.permissions.enabled</name>

<value>true</value>

<description>HDFS權限認證,是否打開</description>

</property>

<property>

<name>dfs.permissions.superusergroup</name>

<value>hadoop</value>

<description>超級用戶,format namenode的用戶</description>

</property>

<property>

<name>fs.permissions.umask-mode</name>

<value>022</value>

<description>core-site.xml的配置文件,注意umask對文件,文件夾影響不同</description>

wKioL1fJEL7y9bF1AAAJJ3wffMo155.png

</property>

<property>

<name>dfs.namenode.acls.enabled</name>

<value>true</value>

<description>

wKioL1fJENWBjDedAAAMA6vpvsA004.png

</description>

</property>

<!-- 權限相關 End -->

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章