Hive’da geçici job çöplüğü (scratchdir)

Hive scratchdir

Hive’da varsayılan /tmp altındaki MR joblarda arasında kullanılan geçici dosyalar bazen yığılma ve yığılma ile dolaylı olarak diskte gereksiz kullanıma sebep olabiliyor. Örneğin partition yapmadığınız tablolarda queryler veya partition’lara sahip bir/birkaç tablonuzda datanın büyük bir kısmına vuran queryler çalıştırdığınızı düşünelim. Bu durumda Map Reduce taskları arasında (query’nin yapısına da bağlı olarak) muhtemelen büyük bir disk kullanımına sebep olacaksınız. Multi-tenant bir yapınız varsa diğer kullanıcıları tehlikeye atacak bir duruma sebep olmanız muhtemel bir durum.

Bu dosyaları manuel bir şekilde temizlemek bazen daha rahat bir çözüm olabiliyor hatta cron olarak tanımlamak sistemde herhangi bir çökme veya aksamayı engelleyebiliyor.

clean-hadoop-tmp

Schedule tasklardan gelen, in-house kullanıcılardan gelen queryler bazı zamanlar gereksiz disk I/O yarattığı durumlar oluyordu. Kısa süre önce bulduğum bir script bu duruma güzel bir çözüm oldu.

Scripti buradan indirebilirsiniz. Scriptin 19.satırındaki threshold değerini kendinize göre değiştirebilirsiniz. 3 saat yetersiz bir süre olabiliyor.

$ ruby ./clean-hadoop-tmp

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir