hadoop linux inode 相關
起因:
近期spark叢集執行任務時有stage丟擲異常:
java.io.IOException: Failed to create local dir in /mnt/yarn/local/usercache/spark/appcache/application_1472468166282_1672/blockmgr-8e4ecd91-0dca-497a-8b6e-16bcdb89a4b2/31.
at org.apache.spark.storage.DiskBlockManager.getFile(DiskBlockManager.scala:73)
at org.apache.spark.storage.DiskBlockManager.getFile(DiskBlockManager.scala:83)
at org.apache.spark.shuffle.IndexShuffleBlockResolver.getDataFile(IndexShuffleBlockResolver.scala:53)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:69)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
at org.apache.spark.scheduler.Task.run(Task.scala:89)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
過程:
叢集節點硬碟並未佔滿,但是發現系統inode IUse%達到了100。
刪掉一些資料檔案後問題得到解決
總結:
建立叢集系統時要考慮叢集儲存的檔案型別,hdfs每個塊對應系統一個檔案。
如果hdfs儲存大檔案則應該考慮設大系統block大小,使用較大的塊會得到更好的效能。
如果hdfs儲存小檔案則應該考慮設小系統block大小,使用較大的塊會造成大量空間浪費,可能還會出現磁碟利用率很低但無法建立檔案的現象
補充:
一、block相關:
1、磁碟讀取按照block為單位。
2、一個檔案可能佔用多個block,每讀取一個block就會消耗一次磁碟I/O。
3、設大block大小會使大檔案block數量減少從而減少磁碟I/O。
4、block並非越大越好,如果檔案內容小於block,那剩餘空間就會浪費掉
二、inode相關:
1、inode一般預設大小為123位元組或256位元組
2、假定block大小設為1M,硬碟空間為2T,inodes總量指定方案:
2 * 1024 * 1024 = 2097152M
2097152M / 1M = 2097152(理論磁碟最多儲存該資料個檔案)
2097152 * 128 / 1024 /1024 = 256(如果inode大小為128位元組,則inodes會佔用256M磁碟空間)
3、inodes總量受block大小影響
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-2125149/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【hadoop/Spark】相關命令HadoopSpark
- 詳解Linux InodeLinux
- Linux相關Linux
- hadoop一些相關知識Hadoop
- Linux 相關2Linux
- Hadoop/Spark相關面試問題總結HadoopSpark面試
- 從零自學Hadoop(25):Impala相關操作下Hadoop
- 從零自學Hadoop(24):Impala相關操作上Hadoop
- 大資料以及Hadoop相關概念介紹大資料Hadoop
- linux inode已滿解決方法Linux
- Linux中inode值是什麼?Linux
- linux aix 查詢inode的命令LinuxAI
- 在Linux中,什麼是 inode ?Linux
- linux相關記錄Linux
- [Linux]——程式管理相關Linux
- Linux 相關scsi命令Linux
- linux 安全相關命令Linux
- Linux 核心相關命令Linux
- Arch Linux ARM相關Linux
- 【LINUX】linux相關資源限制Linux
- hadoop YARN配置引數剖析—MapReduce相關引數HadoopYarn
- linux中inode包含什麼內容?Linux
- 理解Linux檔案系統之 inodeLinux
- Linux 、docker 、nginx 相關命令LinuxDockerNginx
- 【linux】命令-網路相關Linux
- Linux相關的操作指令Linux
- Linux口令相關知識Linux
- [Linux] PV,VG,LV相關Linux
- Linux網路相關命令Linux
- 理解inode
- inode and vnode
- Linux檔案系統iNode及stat命令Linux
- 檢視linux中檔案的inode資訊Linux
- Linux檔案管理相關命令Linux
- [Linux]字元處理相關命令Linux字元
- linux檢視cpu相關資訊Linux
- linux cpu相關效能指標Linux指標
- 從零自學Hadoop(20):HBase資料模型相關操作上Hadoop模型