1、某日SAAS環境磁盤水位太高,一共500G,已經被佔用了450G以上,故查看hdfs各目錄分別佔用多少空間,html
一、hadoop fs -help (若熟悉命令,可忽略)mysql
二、hadoop fs -du -h /linux
發現是/hive下數據量突出sql
三、hadoop fs -du -h /hiveoop
繼續找到是哪一個schema和table的數據量最大,通常是hive/user/warehouse下測試
2、hive不區分大小寫,schema和table統一使用小寫,mysql是能夠配置的,pg中也建議小寫,如有大寫字母,必須用雙引號lua
3、線程池隊列的使用spa
分爲三種,直接提交的SynchronousQueue、無界隊列LinkedBlockingQueue,有界隊列ArrayBlockingQueue,使用SynchronousQueue會直接提交,等於沒有隊列緩衝,使用LinkedBlockingQueue超過corePoolSize會往隊列裏面一直插入,不會使用到MaximunPoolSize,可是隊列無限增長可能會致使內存溢出,使用ArrayBlockingQueue會較有效控制線程數量與緩衝隊列的容量,可是執行任務的最大數量等於max+隊列,故應該明確所需的線程數.net
可參考:https://blog.csdn.net/a837199685/article/details/50619311線程
linux cpu爆炸
http://www.javashuo.com/article/p-stkwjsbx-by.html
The DiskSpace quota of/data/test_quota2 is exceeded: quota = 209715200 B = 200 MB but diskspaceconsumed = 402653184 B = 384 MB
步驟四:上傳文件測試
[root@testbig1 ~]# hdfs dfs -put file /data/test_quota2/
put: The DiskSpace quota of/data/test_quota2 is exceeded: quota = 209715200 B = 200 MB but diskspaceconsumed = 402653184 B = 384 MB
這裏估計朋友又好奇了,這是什麼鬼,明明設置爲200MB大小的配額,爲啥100MB的文件都放不下。這裏我再解釋一下:
其實這個跟HDFS的塊大小有關係。咱們環境的HDFS的blocksize(dfs.block.size, dfs.blocksize)大小設置爲128MB,副本因子爲3。
NameNode 寫文件時會分配block倍數的大小,而後檢查對應目錄的空間配額。當「目錄已經寫入的容量+ 當前blocksize*3」與 「目錄空間配額」 進行比較,若是前者大於後者,就會報錯。對於咱們上面的測試,即0+384MB > 200MB,大於空間配額的設置,因此會失敗。
https://blog.csdn.net/jiangshouzhuang/article/details/70677449