您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Hadoop的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
namenode(hdfs)+jobtracker(mapreduce)可以放在一臺機器上,datanode+tasktracker可以在一臺機器上,輔助namenode要單獨放一臺機器,jobtracker通常情況下分區跟datanode一樣(目錄最好分布在不同的磁盤上,一個目錄對應一個磁盤),namenode存儲目錄需要格式化,datanode存儲目錄不需要格式化,啟動時自動創建
同一個datanode上的每個磁盤上的塊不會重復,不同datanode之間的塊才可能重復
一些文件的說明:
1、dfs.hosts 記錄即將作為datanode加入集群的機器列表
2、mapred.hosts 記錄即將作為tasktracker加入集群的機器列表
3、dfs.hosts.exclude mapred.hosts.exclude 分別包含待移除的機器列表
4、master 記錄運行輔助namenode的機器列表
5、slave 記錄運行datanode和tasktracker的機器列表
6、hadoop-env.sh 記錄腳本要用的環境變量,以運行hadoop
7、core-site.xml hadoop core的配置項,例如hdfs和mapreduce常用的i/o設置等
8、hdfs-site.xml hadoop守護進程的配置項,包括namenode、輔助namenode和datanode等
9、mapred-site.xml mapreduce守護進程的配置項,包括jobtracker和tasktracker
10、hadoop-metrics.properties 控制metrics在hadoop上如何發布的屬性
11、log4j.properties 系統日志文件、namenode審計日志、tasktracker子進程的任務日志的屬性
一、hdfs守護進程的關鍵屬性
1、fs.default.name 類型:uri 默認值:file:/// 說明:默認文件系統,uri定義主機名稱和namenode的rpc服務器工作的端口號,默認是8020,在core-site.xml中配置
2、dfs.name.dir 類型:以逗號分隔的目錄名稱 默認值:${hadoop.tmp.dir}/dfs/name 說明:namenode存儲永久性的元數據的目錄列表,namenode在列表上的各個目錄中均存放相同的元數據文件
3、dfs.data.dir 類型:以逗號分隔的目錄名稱 默認值:${hadoop.tmp.dir}/dfs/data 說明:datanode存放數據塊的目錄列表,各個數據塊分別存于某個目錄中
4、fs.checkpoint.dir 類型:以逗號分隔的目錄名稱 默認值:${hadoop.tmp.dir}/dfs/namesecondary 說明:輔助namenode存放檢查點的目錄列表,在所列的各個目錄中分別存放一份檢查點文件副本
二、mapreduce守護進程關鍵屬性
1、mapred.job.tracker 類型:主機名和端口 默認值:local 說明:jobtracker的rpc服務器所在的主機名稱和端口號,如果設為默認值local,則運行一個mapreduce作業時,jobtracker即時以處理時模式運行(換言之,用戶無需啟動jobtracker;實際上試圖在該模式下啟動jobtracker會引發錯誤)
2、mapred.local.dir 類型:逗號分割的目錄名稱 默認值:${hadoop.tmp.dir}/mapred/local 說明:存儲作業中間數據的一個目錄列表,作業終止時,數據被清除
3、mapred.system.dir 類型:uri 默認值:${hadoop.tmp.dir}/mapred/system 說明:在作業運行期間存儲共享文件的目錄,相對于fs.default.name
4、mapred.tasktracker.map.tasks.maximum 類型:int 默認值:2 說明:在任一時刻,運行在tasktracker之上的map任務的最大數
5、mapred.tasktracker.reduce.tasks.maximum 類型:int 默認值:2 說明:在任一時刻,運行在tasktracker之上的reduce任務的最大數
6、mapred.child.java.opts 類型:string 默認值:-xmx200m 說明:jvm選項,用于啟動運行map和reduce任務的tasktracker子進程,該屬性可以針對每個作業進行設置,例如,可以設置jvm的屬性,以支持調試
7、mapred.child.ulimit 限制由tasktracker發起的子進程的最大虛擬內存(單位千字節),該值設置一定要大于6設置項的值
三、rpc服務器屬性
1、dfs.datanode.ipc.address 默認值:0.0.0.0:50020 說明:datanode的rpc服務器的地址和端口
2、mapred.job.tracker 默認值:local 說明:被設為主機名稱和端口號時,該屬性指定jobtracker的rpc服務器地址和端口,常用的端口號時8021
3、mapred.task.tracker.report.address 默認值:127.0.0.1:0 說明:tasktracker的rpc服務器地址和端口號,tasktracker的子jvm利用它和tasktracker通信,在本例中,可以使用任一空閑端口,因為服務器僅對會送地址隱藏,如果本機器沒有會送地址,則需變更默認設置
datanode也運行tcp/ip服務器以支持塊傳輸,默認由dfs.datanode.address設定,默認值是0.0.0.0:50010
三、http服務器屬性
1、mapred.job.tracker.http.address 默認值:0.0.0.0:50030 說明:jobtracker的http服務器地址和端口
2、mapred.task.tracker.http.address 默認值:0.0.0.0:50060 說明:tasktracker的http服務器地址和端口
3、dfs.http.address 默認值:0.0.0.0:50070 說明:namenode的http服務器地址和端口
4、dfs.datanode.http.address 默認值:0.0.0.0:50075 說明:datanode的http服務器地址和端口
5、dfs.secondary.http.address默認值:0.0.0.0:50090 說明:輔助namenode的http服務器地址和端口
可以選擇某一個網絡接口作為各個datanode和tasktracker的ip地址(針對http和rpc服務器)。相關屬性項包括dfs.datanode.dns.interface和mapred.tasktracker.dns.interface,默認值都是default
四、安全模式屬性說明
1、dfs.replication.min 類型:int 默認值:1 說明:設置最小副本級別,成功執行寫操作所需要創建的最少副本數目(也就是最小復本級別)
2、dfs.safemode.threshold.pct 類型:float 默認值:0.999 說明:在namenode退出安全模式之前,系統中滿足最小復本級別(由上一個選項定義)的塊的比例,將這項值設為0或更小的比例會令namenode無法啟動安全模式,設為高于1則永遠不會退出安全模式
3、dfs.safemode.extension 類型:int 默認值:30000 說明:在最小復本條件(由上一個選項定義)滿足之后,namenode還需要處于安全模式的時間(以毫秒為單位),對于小型集群(十幾個節點),這項值可以設為0
core-site.xml個別設置說明:
1、io.file.buffer.size 設置緩沖區大小,默認4kb(64kb 128kb)
2、fs.trash.interval 設置回收站中的文件保留多久后刪除,以分鐘為單位,默認值是0,表示回收特性無效。該回收功能是用戶級特性,啟用后,每個用戶都有自己獨立的回收站目錄,即home目錄下的.trash目錄,恢復時只要從該目錄找到被刪除的文件,將其移除就可以了。hdfs會自動刪除回收站中的文件,其它文件系統不具備這個功能,需要使用下列命令自行刪除 hadoop fs -expunge
hdfs-site.xml個別設置說明:
1、dfs.block.size 設置hdfs塊大小,默認64mb (128mb 256mb)
2、dfs.balance.bandwidthPerSec 設置均衡器在不同節點之間復制數據的帶寬
dfs.datanode.du.reserved 設置保留空間的大小,以供其它程序使用,以字節為單位
fs.checkpoint.period 設置輔助namenode每隔多久創建檢查點,以秒為單位
fs.checkpoint.size 設置當編輯日志(edits)大大小達到多少mb時,創建檢查點,系統每5分鐘檢查一次編輯日志大小
dfs.datanode.numblocks 設置datanode一個目錄存放多少個塊時,就重新創建一個子目錄
dfs.datanode.scan.period.hours 設置datanode塊掃描的周期,默認三周(504小時)掃描一次
hadoop命令:
1、hadoop fs -mkdir /user/username 創建用戶
2、hadoop fs -chown user:user /user/username 設置權限
3、hadoop dfsadmin -setSpaceQuota 1t /user/username 限制空間容量
4、hadoop dfsadmin -saveNamespace 創建檢查點,將內存中的文件熊映射保存為一個新的fsimage文件,重置edits文件,該操作僅在安全模式下執行
5、hadoop dfsadmin -safemode get 查看namenode是否處于安全模式
6、hadoop dfsadmin -safemode wait 在腳本中執行某條命令前namenode先退出安全模式
7、hadoop dfsadmin -safemode enter 進入安全模式
8、hadoop dfsadmin -safemode leave 離開安全模式
9、hadoop dfsadmin -report 顯示文件系統的統計信息,以及所連接的各個datanode的信息
10、hadoop dfsadmin -metasave 將某些信息存儲到hadoop日志目錄中的一個文件中,包括正在被復制或刪除的塊信息,以及已連接的datanode列表
11、hadoop dfsadmin -refreshNodes 更新允許連接到namenode的datanode列表
12、hadoop dfsadmin -upgradeProgress 獲取有關hdfs升級的進度信息或強制升級
13、hadoop dfsadmin -finalizeUpgrade 移除datanode和namenode的存儲目錄上的舊版數據
14、hadoop dfsadmin -setQuota 設置目錄中包含的文件和子目錄的個數的配額
15、hadoop dfsadmin -clrQuota 清理指定目錄的文件和子目錄個數的配額
16、hadoop dfsadmin -clrSpaceQuota 清理指定的空間大小配額
17、hadoop dfsadmin -refreshServiceAcl 刷新namenode的服務級授權策略文件
18、hadoop fsck / 檢查hdfs中文件的健康狀況,該工具會查找那些所有datanode中均缺失的塊以及過少或過多復本的塊
19、hadoop fsck /user/tom/part-007 -files -blocks -racks files選項顯示文件名稱,大小,塊數量,健康狀況;block選項描述文件中各個塊的信息,每個塊一行;racks選項顯示各個塊的機架位置和datanode的地址
使Datanode節點datanodename退役 | bin/hadoop dfsadmin -decommission datanodename |
解決主nemenode重啟較慢的方法:(使用 -importCheckpoint選項啟動輔助namenode,可將輔助namenode用作新的主namenode)
1、輔助namenode請求主namenode停止使用edits(記錄操作日志的文件)文件。暫時將新記錄寫操作記錄到一個新文件中
2、輔助namenode從主namenode獲取fsimage(元數據永久檢查點文件)和edits文件(采用http get)
3、輔助namenode將fsimage文件載入內存,逐一執行edits文件中的操作,創建新的fsimage文件
4、輔助namenode將新的fsimage文件發送回主namenode(使用http post)
5、主namenode用從輔助namenode接收的fsimage文件替換舊的fsimage文件,用步驟一所產生的edits文件替換舊的edits文件,同時,還更新fstime文件來記錄檢查點執行的時間
均衡器程序:
start-balancer.sh -threshold 參數指定閥值(百分比格式),默認值是10%,任何時刻,集群中都只能運行一個均衡器,均衡器在不同節點之間復制數據是有帶寬限制的,默認值是1mb/s
關于“Hadoop的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。