1、hdfs-site.xml 參數配置
– dfs.name.dir
– NameNode 元數據存放位置
– 默認值:使用core-site.xml中的hadoop.tmp.dir/dfs/name
– dfs.block.size
– 對於新文件切分的大小,單位byte。默認是64M,建議是128M。每一個節點都要指定,包括客戶端。
– 默認值:67108864
– dfs.data.dir
– DataNode在本地磁盤存放block的位置,可以是以逗號分隔的目錄列表,DataNode循環向磁盤中寫入數據,每個DataNode可單獨指定與其它DataNode不一樣
– 默認值:${hadoop.tmp.dir}/dfs/data
– dfs.namenode.handler.count
– NameNode用來處理來自DataNode的RPC請求的線程數量
– 建議設置為DataNode數量的10%,一般在10~200個之間
– 如設置太小,DataNode在傳輸數據的時候日志中會報告“connecton refused"信息
– 在NameNode上設定
– 默認值:10
– dfs.datanode.handler.count
– DataNode用來連接NameNode的RPC請求的線程數量
– 取決於系統的繁忙程度
– 設置太小會導致性能下降甚至報錯
– 在DataNode上設定
– 默認值:3
– dfs.datanode.max.xcievers
– DataNode可以同時處理的數據傳輸連接數
– 默認值:256
– 建議值:4096
– dfs.permissions
– 如果是true則檢查權限,否則不檢查(每一個人都可以存取文件)
– 於NameNode上設定
– 默認值:true
– dfs.datanode.du.reserved
– 在每個卷上面HDFS不能使用的空間大小
– 在每個DataNode上面設定
– 默認值:0
– 建議為10737418240,即10G。需要結合MapReduce場景設置。
– dfs.datanode.failed.volumes.tolerated
– DataNode可以容忍損塊的磁盤數量,超過這個數量DataNode將會離線,所有在這個節點上面的block將會被重新復制
– 默認是0,但是在有多塊磁盤的時候一般會增大這個值
– dfs.replication
– 在文件被寫入的時候,每一塊將要被復制多少份
– 默認是3份。建議3份
– 在客戶端上設定
通常也需要在DataNode上設定
2、HDFS core-site.xml 參數配置
– fs.default.name
– 文件系統的名字。通常是NameNode的hostname與port
– 需要在每一個需要訪問集群的機器上指定,包括集群中的節點
– 例如:hdfs://<your_namenode>:9000/
– fs.checkpoint.dir
– 以逗號分隔的文件夾列表,SecondNameNode用來存儲checkpoint image文件
– 如果多於一個文件夾,那么都會被寫入數據
– 需要在SecondNameNode上設定
– 默認值:${hadoop.tmp.dir}/dfs/namesecondary
– hadoop.tmp.dir
– HDFS與本地磁盤的臨時文件
默認是/tmp/hadoop-${user.name}.需要在所有的節點中設定
– fs.trash.interval
– 當一個文件被刪掉后,它會被放到用戶目錄的.Trash目錄下,而不是立即刪掉
– 經過此參數設置的分鍾數之后,再刪掉數據
– 默認是0,禁用此功能,建議1440(一天)
– io.file.buffer.size
– 設定在讀寫數據時的緩存大小,應該為硬件分頁大小的2倍
– 默認是4096,建議為65536 ( 64K)
3、設置log文件的大小和數量
– 修改core-site.xml中的參數
– hadoop.logfile.size
– hadoop.logfile.count
4、設置組件的日志級別
• 查看不同組件的日志級別
– hadoop daemonlog -getlevel host:port packageName
• 設置組件的日志級別
– hadoop daemonlog –setlevle host:port packageName level
– hadoop daemonlog -setlevel db74:50070 org.apache.hadoop ERROR
• DEBUG, INFO, ERROR, FATAL
– 端口為前台頁面的端口,缺省為50070
• 組件名稱(packageName)
– org.apache.hadoop.hdfs.server.namenode.NameNode
– org.apache.hadoop.hdfs.server.datanode.DataNode
– org.apache.hadoop.hdfs
– org.apache.hadoop
– org.apache.hadoop.mapred.JobTracker
重要程度由低到高依次為DEBUG < INFO < WARN < ERROR < FATAL。日志輸出規則為:只輸出級別不低於設定級別的日志信息。比如,級別設定為INFO,則INFO、WARN、ERROR和FATAL 級別的日志信息都會被輸出,但級別比INFO 低的DEBUG 則不會被輸出。DEBUG為測試,INFO為默認,一般生產用,ERROR錯誤,
5、hdfs的進程節點
1.namenode
記錄源數據的命名空間
數據分配到那些datanode保存
協調客戶端對文件訪問
2.datanode
負責所在物理節點的儲存管理
一次寫入,多次讀取(不能修改)
文件由數據塊組成,典型的塊大小是64M
數據塊盡量散步到各個節點
3.secondarynamenode (輔助)
當NameNode重啟的時候,會合並硬盤上的fsimage文件和edits文件,得到完整的Metadata信息。這個fsimage文件可以看做是一個過時的Metadata信息文件(最新的Metadata修改信息在edits文件中)。
如果edits文件非常大,那么這個合並過程就非常慢,導致HDFS長時間無法啟動,如果定時將edits文件合並到fsimage,那么重啟NameNode就可以非常快。
SecondaryNameNode就做這個合並的工作。
6、hdfs的回收站功能
刪除文件時,其實是放入回收站/trash ,回收站里的文件可以快速恢復
可以設置一個時間閾值,當回收站里文件的存放時間超過這個閾值,就被徹底刪除, 並且釋放占用的數據塊
(開啟回收站功能)
[hadoop@h1 ~]$ cd /usr/local/hadoop-1.2.1/conf [hadoop@h1 conf]$ vi core-site.xml (添加下面一段,10080為保留時間,單位分鍾) <property> <name>fs.trash.interval</name> <value>10080</value> <description> Number of minutes between trashcheckpoints. If zero, the trash feature is disabted </description> </property>
[hadoop@h1 hadoop-1.2.1]$ bin/start-all.sh (重啟 回收站功能生效)
hdfs 常用端口和 hdfs-default配置文件參數的意義
剛配置完Hadoop1.0.4發現對配置文件還是不太了解,就baidu了下,跟大家分享下 。常用的端口配置1 HDFS端口
參數 | 描述 | 默認 | 配置文件 | 例子值 |
fs.default.name namenode | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
dfs.http.address | NameNode web管理端口 | 50070 | hdfs- site.xml | 0.0.0.0:50070 |
dfs.datanode.address | datanode 控制端口 | 50010 | hdfs -site.xml | 0.0.0.0:50010 |
dfs.datanode.ipc.address | datanode的RPC服務器地址和端口 | 50020 | hdfs-site.xml | 0.0.0.0:50020 |
dfs.datanode.http.address | datanode的HTTP服務器和端口 | 50075 | hdfs-site.xml | 0.0.0.0:50075 |
2 MR端口
參數 | 描述 | 默認 | 配置文件 | 例子值 |
mapred.job.tracker | job-tracker交互端口 | 8021 | mapred-site.xml | hdfs://master:8021/ |
job | tracker的web管理端口 | 50030 | mapred-site.xml | 0.0.0.0:50030 |
mapred.task.tracker.http.address | task-tracker的HTTP端口 | 50060 | mapred-site.xml | 0.0.0.0:50060 |
3 其它端口
參數 | 描述 | 默認 | 配置文件 | 例子值 |
dfs.secondary.http.address | secondary NameNode web管理端口 | 50090 | hdfs-site.xml | 0.0.0.0:50090 |
4 hdfs-default.html
序號 | 參數名 | 參數值 | 參數說明 |
1 | dfs.namenode.logging.level | info | 輸出日志類型 |
2 | dfs.secondary.http.address | 0.0.0.0:50090 | 備份名稱節點的http協議訪問地址與端口 |
3 | dfs.datanode.address | 0.0.0.0:50010 | 數據節點的TCP管理服務地址和端口 |
4 | dfs.datanode.http.address | 0.0.0.0:50075 | 數據節點的HTTP協議訪問地址和端口 |
5 | dfs.datanode.ipc.address | 0.0.0.0:50020 | 數據節點的IPC服務訪問地址和端口 |
6 | dfs.datanode.handler.count | 3 | 數據節點的服務連接處理線程數 |
7 | dfs.http.address | 0.0.0.0:50070 | 名稱節點的http協議訪問地址與端口 |
8 | dfs.https.enable | false | 支持https訪問方式標識 |
9 | dfs.https.need.client.auth | false | 客戶端指定https訪問標識 |
10 | dfs.https.server.keystore.resource | ssl-server.xml | Ssl密鑰服務端的配置文件 |
11 | dfs.https.client.keystore.resource | ssl-client.xml | Ssl密鑰客戶端的配置文件 |
12 | dfs.datanode.https.address | 0.0.0.0:50475 | 數據節點的HTTPS協議訪問地址和端口 |
13 | dfs.https.address | 0.0.0.0:50470 | 名稱節點的HTTPS協議訪問地址和端口 |
14 | dfs.datanode.dns.interface | default | 數據節點采用IP地址標識 |
15 | dfs.datanode.dns.nameserver | default | 指定DNS的IP地址 |
16 | dfs.replication.considerLoad | true | 加載目標或不加載的標識 |
17 | dfs.default.chunk.view.size | 32768 | 瀏覽時的文件塊大小設置為32K |
18 | dfs.datanode.du.reserved | 0 | 每個卷預留的空閑空間數量 |
19 | dfs.name.dir | ${hadoop.tmp.dir}/dfs/name | 存貯在本地的名字節點數據鏡象的目錄,作為名字節點的冗余備份 |
20 | dfs.name.edits.dir | ${dfs.name.dir} | 存貯文件操作過程信息的存貯目錄 |
21 | dfs.web.ugi | webuser,webgroup | Web接口訪問的用戶名和組的帳戶設定 |
22 | dfs.permissions | true | 文件操作時的權限檢查標識。 |
23 | dfs.permissions.supergroup | supergroup | 超級用戶的組名定義 |
24 | dfs.block.access.token.enable | false | 數據節點訪問令牌標識 |
25 | dfs.block.access.key.update.interval | 600 | 升級訪問鑰時的間隔時間 |
26 | dfs.block.access.token.lifetime | 600 | 訪問令牌的有效時間 |
27 | dfs.data.dir | ${hadoop.tmp.dir}/dfs/data | 數據節點的塊本地存放目錄 |
28 | dfs.datanode.data.dir.perm | 755 | 數據節點的存貯塊的目錄訪問權限設置 |
29 | dfs.replication | 3 | 缺省的塊復制數量 |
30 | dfs.replication.max | 512 | 塊復制的最大數量 |
31 | dfs.replication.min | 1 | 塊復制的最小數量 |
32 | dfs.block.size | 67108864 | 缺省的文件塊大小為64M |
33 | dfs.df.interval | 60000 | 磁盤空間統計間隔為6秒 |
34 | dfs.client.block.write.retries | 3 | 塊寫入出錯時的重試次數 |
35 | dfs.blockreport.intervalMsec | 3600000 | 塊的報告間隔時為1小時 |
36 | dfs.blockreport.initialDelay | 0 | 塊順序報告的間隔時間 |
37 | dfs.heartbeat.interval | 3 | 數據節點的心跳檢測間隔時間 |
38 | dfs.namenode.handler.count | 10 | 名稱節點的連接處理的線程數量 |
39 | dfs.safemode.threshold.pct | 0.999f | 啟動安全模式的閥值設定 |
40 | dfs.safemode.extension | 30000 | 當閥值達到量值后擴展的時限 |
41 | dfs.balance.bandwidthPerSec | 1048576 | 啟動負載均衡的數據節點可利用帶寬最大值為1M |
42 | dfs.hosts | 可與名稱節點連接的主機地址文件指定。 | |
43 | dfs.hosts.exclude | 不充計與名稱節點連接的主機地址文件設定 | |
44 | dfs.max.objects | 0 | 文件數、目錄數、塊數的最大數量 |
45 | dfs.namenode.decommission.interval | 30 | 名稱節點解除命令執行時的監測時間周期 |
46 | dfs.namenode.decommission.nodes.per.interval | 5 | 名稱節點解除命令執行是否完檢測次數 |
47 | dfs.replication.interval | 3 | 名稱節點計算數據節點的復制工作的周期數. |
48 | dfs.access.time.precision | 3600000 | 充許訪問文件的時間精確到1小時 |
49 | dfs.support.append | false | 是否充許鏈接文件指定 |
50 | dfs.namenode.delegation.key.update-interval | 86400000 | 名稱節點上的代理令牌的主key的更新間隔時間為24小時 |
51 | dfs.namenode.delegation.token.max-lifetime | 604800000 | 代理令牌的有效時間最大值為7天 |
52 | dfs.namenode.delegation.token.renew-interval | 86400000 | 代理令牌的更新時間為24小時 |
53 | dfs.datanode.failed.volumes.tolerated | 0 | 決定停止數據節點提供服務充許卷的出錯次數。0次則任何卷出錯都要停止數據節點 |