Video: How to Install Hadoop on Windows 2024
Tipik bir Hadoop uygulamasında gerçek olan büyük veri hacimleri sıkıştırmayı bir zorunluluk haline getirir. Veri sıkıştırma kesinlikle büyük miktarda depolama alanı tasarrufu sağlar ve bu verilerin kümeniz genelinde hızlandırılmasına emindir. Şaşırtıcı olmayan bir şekilde, sizin için dikkate almanız gereken codec denilen mevcut sıkıştırma düzenleri vardır.
Bir Hadoop dağıtımında, her biri çok sayıda büyük disk sürücüsü olan çok sayıda bireysel bağımlı düğümle (potansiyel olarak) uğraşıyorsunuzdur. Tek bir bağımlı düğümün HDFS için 45 TB'lık ham depolama alanına sahip olması nadir değildir.
Hadoop köle düğümleri ucuz olacak şekilde tasarlanmış olsalar bile, özgür değildirler ve artan oranlarda büyüme eğiliminde olan büyük miktarda veriyle sıkıştırma, aşırılık kontrolünde belirgin bir araçtır veri hacimleri.
Birincisi, bazı temel terimler: co mpressor / dec mikrofoncunun kısaltılmış biçimi olan bir codec bileşeni, teknoloji (yazılım veya donanım veya hem) sıkıştırma ve veri sıkıştırma için; bir sıkıştırma / açma algoritmasının uygulanmasıdır.
Bazı kod çözücülerin bölünebilir sıkıştırma denilen şeyleri desteklediğini ve kodeklerin veriyi sıkıştırıp açabileceği hız ve sıkıştırma derecesinde farklı olduğunu bilmeniz gerekir.
Bölünebilir sıkıştırma , Hadoop bağlamında önemli bir konsepttir. Hadoop'un çalışması, dosyaların blok boyutu ayarından daha büyük olması durumunda dosyaların bölünmesidir ve tek tek dosya bölmeleri farklı haritacılar tarafından paralel olarak işlenebilir.
Çoğu kod çözücüsü ile, metin dosyası bölmeleri aynı dosyadaki diğer bölmelere bağlı olarak sıkıştınlamaz, bu yüzden bu kod çözücülerin bölünemez olduğu söylenir; dolayısıyla MapReduce işlemi tek bir haritalayıcıyla sınırlıdır.
Dosya yalnızca bir bütün olarak sıkıştırılmış olabilir ve bölmelere dayalı ayrı parçalar olarak değil, böyle bir dosyanın paralel bir şekilde işlenmesi mümkün değildir ve bir işin tek bir eşleştiriciyi beklemesinden dolayı performans büyük bir darbe alabilir bağımsız olarak sıkıştırılamaz olan birden fazla veri bloğu işleyebilir.
Bölünebilir sıkıştırma, yalnızca metin dosyaları için bir faktördür. İkili dosyalar için Hadoop sıkıştırma codec bileşenleri, verileri dosya türüne (örneğin, bir SequenceFile, Avro veya ProtocolBuffer) bağlı olarak ikili olarak kodlanmış bir konteynerde sıkıştırır.
Performansa bakıldığında, Hadoop kümenize yazılmakta olan verilerin sıkıştırılmasıyla ilişkili bir maliyet (işleme kaynakları ve zaman açısından) var.
Bilgisayarlarla hayatta olduğu gibi hiçbir şey özgür değildir. Verileri sıkıştırdığınızda, disk alanı için işlem döngüleri alışverişinde bulunulur. Ve bu veriler okunduğunda, verilerin sıkıştırılmasında da bir maliyet var. Depolama tasarrufunun avantajlarını ilave performans yüküne karşı tartın.
Bir MapReduce işine giriş dosyası sıkıştırılmış veriler içeriyorsa, bu verileri HDFS'den okumak için gereken süre azaltılır ve iş performansı geliştirilir. Giriş verileri MapReduce tarafından okunurken otomatik olarak sıkıştırılamaz.
Girilen dosya adı uzantısı, veriyi otomatik olarak sıkıştırmak için hangi desteklenen codec bileşeninin kullanıldığını belirler. Örneğin, a. gz uzantısı, dosyayı bir gzip sıkıştırılmış dosya olarak tanımlar.
Harita fazının ara çıktısını MapReduce işlem akışında sıkıştırmak da yararlı olabilir. Harita işlevi çıktısı diske yazılır ve azaltma görevleri için ağ üzerinden gönderildiğinden, çıktıyı sıkıştırmak önemli performans gelişmeleriyle sonuçlanabilir.
Ve MapReduce çıktısını ileride kullanmak üzere geçmiş dosyaları olarak depolamak istiyorsanız, bu verileri sıkıştırmak HDFS'de gereken alan miktarını önemli ölçüde azaltabilir.
Pek çok farklı sıkıştırma algoritması ve aracı vardır ve bunların özellikleri ve güçleri değişir. Sık kullanılan sıkıĢtırma sıkıştırma oranları (bir dosyanın sıkıĢtırma derecesi) ile sıkıştırma / açma hızı arasında bulunur. Hadoop çerçevesi birçok codec bileşenini desteklemektedir. Çerçeve, çoğu girdi ve çıktı dosya biçimini şeffaf bir şekilde sıkıştırır ve açar.
Aşağıdaki liste, Hadoop çerçevesinde desteklenen bazı genel kod çözücüleri tanımlamaktadır. Belirli kullanım durumunuzun taleplerine en çok uyan codec'i seçtiğinizden emin olun (örneğin, işlem hızının önemli olduğu iş yükleri ile yüksek dekompresyon hızlarına sahip bir kod çözücü seçtiğinizde):
-
Gzip: Sıkıştırma GNU projesi tarafından benimsenen bir yardımcı program olan Gzip (GNU zip'in kısaltması). gz uzantısı. Gzip de dahil olmak üzere bir dizi sıkıştırma yardımcı programı tarafından oluşturulan dosyaları sıkıştırmak için gunzip komutunu kullanabilirsiniz.
-
Bzip2: Kullanılabilirlik bakımından Bzip2 ve Gzip benzer. Bzip2, Gzip'den daha iyi bir sıkıştırma oranı üretir, ancak çok daha yavaştır. Aslında, Hadoop'daki tüm sıkıştırma codec bileşenleri arasında Bzip2 çok daha yavaştır.
Sorgulamaya ihtiyaç duymayacağınız bir alan arşivi kuruyorsanız ve alan yüksek primde ise, Bzip2'nin dikkate alınması gereken bir şey olabilir.
-
Snappy: Google'ın Snappy codec bileşeni, mütevazi sıkıştırma oranları, ancak hızlı sıkıştırma ve açma hızı sunar.
Snappy codec bileşeni, diğer Hadoop alt projelerini destekleyen ortak araçlar dizisi olan Hadoop Common'a entegredir (Aslında en hızlı dekompresyon hızlarına sahiptir ve sıklıkla sorgulanması muhtemel veri kümeleri için caziptir). Snappy'yi henüz Snappy codec desteği sağlamayan Hadoop'un daha yeni sürümleri için bir eklenti olarak kullanabilirsiniz.
-
LZO: Snappy'ye benzer şekilde, LZO (algoritmayı ortaya atan bilgisayar bilimcilerinin üçlüsü olan Lempel-Ziv-Oberhumer'in kısaltması) mütevazı sıkıştırma oranları, ancak hızlı sıkıştırma ve açma hızı sağlar. LZO, GNU Genel Lisansı (GPL) kapsamında lisanslanmıştır.
LZO, MapReduce görevleriniz tarafından sıkıştırılmış metin dosyalarının bölünmesinin paralel işlenmesini sağlayan bölünebilir sıkıştırmayı destekler. LZO, bir dosyayı sıkıştırdığında LZO'nun bir dizin oluşturması gerekir, çünkü değişken uzunluklu sıkıştırma bloklarıyla eşlemciye sıkıştırılmış dosyayı nerede güvenli bir şekilde bölebileceğini söylemek için bir dizin gereklidir. LZO, metin dosyalarını sıkıştırmanız gerektiğinde gerçekten çok faydalıdır.
Codec | Dosya Uzantısı | Bölünebilir? | Sıkıştırma Derecesi | Sıkıştırma Hızı |
---|---|---|---|---|
Gzip | . gz | Hayır | Orta | Orta |
Bzip2 | . bz2 | Evet | Yüksek | Yavaş |
Snappy | . sallanma | Hayır | Orta | Hızlı |
LZO | . lzo | Hayır, endekslenmedikçe | Orta | Hızlı |
Tüm sıkıştırma algoritmaları, sıkıştırma derecesi ile elde edebilecekleri sıkıştırma hızı arasında dengelenmelidir. Listelenen codec bileşenleri, sıkıştırma zamanında sıkıştırma oranı ile hız arasındaki dengeyi kontrol etmenizi sağlar.
Örneğin, Gzip, negatif bir tam sayı (veya anahtar kelime) belirterek sıkıştırma hızını ayarlamanıza izin verir; burada -1, en hızlı sıkıştırma seviyesini, ve -9 en yavaş sıkıştırma seviyesini belirtir. Varsayılan sıkıştırma düzeyi -6'dır.