Hive Bölüm 24: Archiving

Apache Hive

Çok şaşırmış olabilirsiniz, arşivlemek burada neden kullanılsın ki? Hani büyük veri tutuyorduk? 😊 Çok haklısınız veriler gerçekten büyük ve büyüdükçe problemler de büyümeye devam ediyor. En büyük problemlerimizin başında şüphesiz name node’da her bir dosya için meta data saklanması.

Ayrıca bir problemimiz daha var, replication factor. Default olarak 3’tür, yani her bir dosya 3 kopya şeklinde saklanıyor ve doğal olarak her bir dosya için name node’da 3 tane kayıt bulunduruyor. Meta data ram’de tutulduğu için aşırı bellek tüketimi söz konusu olur ve bunu pek istemeyiz.

Dosya sayıları arttıkça birkaç yöntem uygulayabiliriz:

  1. HDFS block size değerimizi yükseltebiliriz. Default 128 MiB’tir, ben genelde 256’da tutuyorum; ama verilerimiz devasa büyüyorsa yerden tasarruf etmesek bile name node’un yükünü azaltmak için etkili bir yol. Tabii block size’ı artırsanız bile dosyalar büyümeyeceği için size bir Insert Overwrite işi çıkacağını söyleyebilirim.
  2. Eski veya sık kullanılmayan dosyaların arşivlenmesi. Temelde yaptığımız şey dosyaları paketlemektir. Bu durumda boyutuna göre birkaç .HAR uzantılı arşiv paketi oluşturmuş oluyoruz. Yani aslında yerden tasarrufumuz yine yok, sadece name node’un yükünü azaltmış oluyoruz. Tabii bu .HAR dosyalarını başka bir yerde saklamayı planlamıyorsanız.

Hive, var olan partition’lardaki dosyaları HAR arşiv dosyasına dönüştürme işlemleri için built-in destek sağlamaktadır. Bunun için öncelikle 3 tane ayar yapmamız gerekiyor:

Bundan sonra artık arşiv komutumuzu çalıştırabiliriz:

Arşiv dosyamızı açmak istiyorsak:

 

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.