Kurs
Hadoop uzmanları içgörü elde etmek ve veri güvenliğini sağlamak için sürekli değişen veriler üzerinde uygulamalar yazar ve analiz yapar. Bu nedenle işe alım yöneticileri, pozisyona en uygun adayı bulmak için katı kriterlere sahiptir ve temel düzeyden ileri seviyeye kadar her şeyi sorabilirler.
Bu yazıda, en sık sorulan 24 Hadoop mülakat sorusu ve cevabını derledik.
Bu makale, bir sonraki büyük veri iş mülakatınıza kapsamlı şekilde hazırlanmanıza yardımcı olmak için hazırlandı. Temel kavramları ve ileri seviye senaryoları kapsar. İster yeni başlıyor olun ister deneyimli bir profesyonel olun, özgüveninizi artıracak ve başarı şansınızı yükseltecek değerli içgörüler ve pratik bilgiler bulacaksınız.
Temel Hadoop Mülakat Soruları
Görüşmeciler genellikle, Hadoop'u ve büyük veriyi yönetmedeki önemini ne kadar anladığınızı değerlendirmek için temel sorularla başlar.
Deneyimli bir mühendis olsanız bile, bu sorulara hazırlıklı olduğunuzdan emin olun.
1. Büyük veri nedir?

Zettabayt cinsinden küresel veri oluşturulması. Kaynak: Statista.
Büyük veri, yüksek hızda, birden fazla kaynaktan üretilen büyük miktarda karmaşık veriyi ifade eder. Küresel ölçekte oluşturulan toplam veri miktarı 2025'te 180 zettabayttı ve 2029'a kadar üçe katlanması öngörülüyor.
Veri üretimi hızlandıkça, geleneksel analiz yöntemleri gerçek zamanlı işlem ve veri güvenliği sağlayamaz. Bu yüzden şirketler, artan veri hacimlerini işlemek ve yönetmek için Hadoop gibi gelişmiş çerçeveler kullanır.
Büyük veri kariyerine başlamak istiyorsanız, büyük veri eğitimi rehberimize göz atın.
2. Hadoop nedir ve büyük veri sorununu nasıl çözer?
Hadoop, birden çok bilgisayara dağıtılmış büyük veri kümelerini işlemek için açık kaynaklı bir çerçevedir. Verileri, Hadoop Dağıtık Dosya Sistemi (HDFS) kullanarak küçük bloklar halinde birden fazla makineye depolar.
Hadoop ile bir kümeye daha fazla düğüm ekleyebilir ve pahalı donanım yükseltmelerine gerek kalmadan çok büyük verileri yönetebilirsiniz.
Google ve Facebook gibi büyük şirketler bile her gün terabayttan petabayta uzanan verileri yönetmek ve analiz etmek için Hadoop'a güveniyor.
3. Hadoop'un iki ana bileşeni nelerdir?
Hadoop'un iki ana bileşeni şunlardır:
- Hadoop Dağıtık Dosya Sistemi (HDFS): Büyük dosyaları varsayılan olarak her biri 128 MB olan blok boyutlu parçalara bölerek veri depolamayı yönetir ve bunları bir kümedeki çok sayıda düğüme dağıtır.
- MapReduce: Hadoop'un veri işleme için kullandığı bir programlama modelidir. Eşleme ve indirgeme işlerinden oluşan iki aşamalı bir süreçtir. Map aşaması veriyi alır ve başka bir veri kümesine dönüştürür. Reduce aşaması, map işinden çıkan değer çiftlerini girdi olarak alır ve onları daha küçük çiftler halinde birleştirir. Amaç, bunları kullanıcı tanımlı bir reduce işlevinde işlemektir.

Hadoop'un üst düzey mimarisi. Kaynak: Wikimedia Commons
4. Hadoop'da NameNode ve DataNode'un rolünü tanımlayın.
HDFS, yukarıdaki görselde görüldüğü gibi veri yönetimi için bir NameNode ve birden fazla DataNode'dan oluşur. Çalışma şekilleri şöyledir:
- HDFS'de bir ana sunucu olarak NameNode dosya açma, kapatma ve yeniden adlandırma gibi işlemleri yürütür. İzinlerin ve blokların konumunun metadatasını tutar.
- DataNode'lar ise işçi düğümler olarak bir dosyanın gerçek veri bloklarını depolar. Bir istemci veri okumak veya yazmak istediğinde, veri bloklarının konumunu NameNode'lardan alır. Ardından istemci, gerekli işlemleri gerçekleştirmek için ilgili DataNode'larla doğrudan iletişim kurar.
5. Hadoop YARN'ın rolünü açıklayın.
Hadoop 1.x'te MapReduce, JobTracker kullanarak kaynak yönetimi ve iş zamanlamasını yürütür. Ancak yavaş işleme önemli bir dezavantajdır.
Hadoop 2.0, bu sorunları gidermek için YARN'ı (Yet Another Resource Negotiator) tanıttı. YARN, kaynak yönetimi ve iş zamanlamasını ayrı bileşenlere ayırır; bu da ölçeklenebilirliği ve kaynak kullanımını iyileştirir. YARN'ın başlıca bileşenleri şunlardır:
- ResourceManager (RM): Küme genelindeki kaynakları yönetir.
- NodeManager (NM): Bireysel düğümlerin kaynaklarını ve izlenmesini yönetir.
- ApplicationMaster (AM): Uygulamaların yaşam döngüsünü, kaynak gereksinimlerini ve yürütülmesini yönetir.
YARN nasıl çalışır:
- İş gönderimi: İstemci bir uygulamayı YARN kümesine gönderir.
- Kaynak tahsisi: ResourceManager, ApplicationMaster ile koordinasyon kurarak kaynak tahsisine başlar.
- ApplicationMaster kaydı: ApplicationMaster, ResourceManager'a kendini kaydeder.
- Konteyner müzakere süreci: ApplicationMaster, ResourceManager'dan kaynakları (konteynerleri) talep eder.
- Konteyner başlatma: Kaynaklar ayrıldıktan sonra ApplicationMaster, NodeManager'lara konteynerleri başlatmaları talimatını verir.
- Uygulama yürütme: Uygulama kodu, ayrılan konteynerler içinde yürütülür.
Orta Düzey Hadoop Mülakat Soruları
Orta düzey sorular, Hadoop çerçevesinin teknik ayrıntılarına hâkimiyetinizi ölçmeye daha çok odaklanır. Görüşmeci, Hadoop kümesi, zorlukları ve farklı sürümlerin karşılaştırması hakkında sorular sorabilir.
6. Hadoop kümesi nedir ve şirketlerin tercih ettiği belirli bir küme boyutu var mıdır?
Hadoop kümesi, büyük veri kümelerini dağıtık şekilde depolamak ve işlemek için tasarlanmış, birbirine bağlı ana ve alt düğümlerden oluşan bir yapıdır. Küme mimarisi yüksek kullanılabilirlik, ölçeklenebilirlik ve hata toleransı sağlar.
Bir Hadoop Kümesinin Bileşenleri:
- Ana düğümler: Bu düğümler, kümenin kaynaklarını ve dağıtık dosya sistemini yönetir. Temel bileşenler şunlardır:
- NameNode: Hadoop Dağıtık Dosya Sistemi (HDFS) ad alanını yönetir ve istemcilerin dosyalara erişimini düzenler.
- ResourceManager: Uygulamaların çalışması için kaynak tahsisini yönetir.
- Alt düğümler: Bu düğümler veriyi depolamaktan ve hesaplamaları gerçekleştirmekten sorumludur. Temel bileşenler şunlardır:
- DataNode: HDFS'te gerçek veri bloklarını depolar.
- NodeManager: Düğüm üzerindeki konteynerlerin yürütülmesini yönetir.
Bir Hadoop kümesi kurmanın iki temel yolu vardır:
- Şirket içi küme: Kümenizi kurmak için standart donanım bileşenleri kullanın. Bu yaklaşım, belirli gereksinimlere göre özelleştirilebilir ve maliyet açısından etkili olabilir.
- Bulut tabanlı küme: Amazon EMR, Google Cloud Dataproc veya Azure HDInsight gibi bulut tabanlı hizmetleri tercih edin. Bu yöntem esneklik, ölçeklenebilirlik ve daha az yönetim yükü sunar.
Şirket İçi ve Bulut Tabanlı Kümelerin Karşılaştırması:
|
Özellik |
Şirket içi küme |
Bulut tabanlı küme |
|
Kurulum maliyeti |
Yüksek başlangıç yatırımı |
Kullandıkça öde modeli |
|
Ölçeklenebilirlik |
Fiziksel donanımla sınırlı |
Neredeyse sınırsız |
|
Bakım |
Şirket içi yönetim gerekir |
Bulut sağlayıcı tarafından yönetilir |
|
Esneklik |
Özelleştirilebilir donanım ve yazılım |
Önceden yapılandırılmış seçenekler |
|
Dağıtım süresi |
Daha uzun kurulum süresi |
Hızlı ve kolay dağıtım |
Belirli bir küme boyutu tercihi yoktur. Küme boyutu kolayca ölçeklenebilir ve tamamen depolama gereksinimlerine bağlıdır. Küçük şirketler yaklaşık 20 düğümlü kümelere güvenebilirken, Yahoo gibi işletmeler (veya eskiden) 40.000 düğüm içeren kadar büyük kümelerle çalışmaktadır.
7. Bazı Hadoop ekosistemi projeleri nelerdir?
Farklı sektörlerin özel veri analizi ve işleme ihtiyaçları vardır. Bu nedenle Hadoop, ekosisteminin bir parçası olarak bunlara yönelik çözümler sunan birçok proje yayınlamıştır. Hadoop projelerinin listesi tahmin ettiğinizden daha geniştir—ancak en temel olanlar şunlardır:
- MapReduce: Paralel, dağıtık bir algoritmayla büyük veri kümelerini işlemek için bir programlama modeli.
- Apache Hive: HiveQL kullanarak veri özetleme, sorgulama ve analiz için bir veri ambarı altyapısı.
- Apache HBase: Büyük veri kümelerine gerçek zamanlı okuma/yazma erişimi sağlayan, ölçeklenebilir bir büyük veri deposu.
- Apache Pig: Pig Latin ile MapReduce programları oluşturmak için üst düzey bir platform.
- Apache Sqoop: Hadoop ile ilişkisel veritabanları gibi yapılandırılmış veri depoları arasında toplu veri aktarımı için bir araç.
- Apache Flume: Büyük miktarda günlük verisini verimli şekilde toplamak, birleştirmek ve taşımak için bir servis.
- Apache Oozie: Hadoop işleri ve bunların bağımlılıklarını yönetmek için bir iş akışı zamanlayıcı sistemi.
- Apache Zookeeper: Yapılandırma bilgisini korumak ve dağıtık eşzamanlama sağlamak için merkezi bir hizmet.
- Apache Spark: Bellek içi işlemle hızlı, genel amaçlı bir küme hesaplama sistemi.
- Apache Storm: Büyük veri akışlarını işlemek için gerçek zamanlı hesaplama sistemi.
- Apache Kafka: Gerçek zamanlı veri akışlarını işlemek için dağıtık bir akış platformu.
8. Hadoop ile ilgili bazı yaygın zorluklar nelerdir?
Hadoop çerçevesi, muazzam miktarda değerli veriyi yönetme ve işleme konusunda mükemmel olsa da bazı kritik zorluklar barındırır.
Bunları şu şekilde anlayalım:
- Hadoop'un en büyük sorunu, NameNode'un tek hata noktası olmasıdır; bu da arıza durumunda veri kaybına yol açar.
- Hadoop güvenlik tehditlerine açıktır. Verinizi doğrudan kontrol edemezsiniz ve kötüye kullanılıp kullanılmadığını bilmenin bir yolu yoktur.
- Hadoop'un MapReduce çerçevesi verileri yığınlar halinde işler ve gerçek zamanlı veri işlemeyi desteklemez.
- Bu çerçeve yüksek kapasiteli verilerle iyi çalışır ancak küçük dosyaları işleyemez. Veri, varsayılan HDFS blok boyutundan küçük olduğunda NameNode'u aşırı yükler ve gecikme sorunlarına neden olur.
9. HBase nedir ve bileşenlerinin rolü nedir?
HBase, büyük dosyalara hızlı erişim için tasarlanmış bir veritabanıdır. Verileri sütunlarda depolayarak ve benzersiz satır anahtarlarıyla indeksleyerek büyük veri kümelerini gerçek zamanlı olarak okumanıza ve yazmanıza olanak tanır.
Bu kurulum, gerektiği kadar düğüm ekleyebildiğimiz için büyük ve seyrek tablolar için hızlı veri getirimi ve verimli taramalar sağlar.
HBase üç bileşene sahiptir:
- HMaster: Bölge sunucularını yönetir ve tabloları oluşturma ve kaldırmadan sorumludur.
- Bölge sunucusu (Region server): Okuma ve yazma isteklerini işler ve bölge bölünmelerini yönetir.
- ZooKeeper: Küme durumunu korur ve sunucu atamalarını yönetir
10. Hadoop 2.0'ı Hadoop 1.x'ten farklı kılan nedir?
Aşağıdaki tablo her iki Hadoop sürümünü yan yana karşılaştırır:
|
Kriter |
Hadoop 1.x |
Hadoop 2.0 |
|
NameNode yönetimi |
Tek bir NameNode ad alanını yönetir |
Birden çok NameNode, HDFS federasyonu aracılığıyla ad alanlarını yönetir |
|
İşletim sistemi desteği |
Microsoft Windows desteği yok |
Microsoft desteği eklendi |
|
İş ve kaynak yönetimi |
İş ve kaynak yönetimi için JobTracker ve TaskTracker kullanır |
Bu görevleri ayırmak için YARN ile değiştirilmiştir |
|
Ölçeklenebilirlik |
Küme başına 4.000 düğüme kadar ölçeklenebilir |
Küme başına 10.000 düğüme kadar ölçeklenebilir |
|
DataNode boyutu |
64 MB DataNode boyutuna sahiptir |
Boyutu 128 MB'a iki katına çıkarmıştır |
|
Görev yürütme |
Yalnızca Map veya Reduce görevlerini çalıştırabilen slot'lar kullanır |
Her türlü görevi çalıştırabilen konteynerler kullanır |
Bir veri mühendisliği rolüne başvuruyorsanız, veri mühendisliği mülakat soruları hakkındaki kapsamlı makalemize göz atın.
İleri Düzey Hadoop Mülakat Soruları
Şimdi işin ilginçleştiği yere geldik. Bu mülakat soruları sizi ileri düzeyde test etmek için sorulur. Özellikle kıdemli mühendisler için önemlidir.
11. Hadoop 2.0'da etkin NameNode ve yedek (standby) NameNode kavramı nedir?
Hadoop 2.0'da Etkin NameNode dosya sistemi ad alanını yönetir ve istemcilerin dosyalara erişimini kontrol eder. Buna karşılık, Yedek NameNode bir yedektir ve Etkin NameNode arızalanırsa devralacak kadar bilgi tutar.
Bu yaklaşım, Hadoop 1.x'te yaygın olan tek hata noktası (SPOF) sorununu giderir.
12. Hadoop'ta dağıtık önbelleğin (distributed cache) amacı nedir? HDFS neden küçük dosyaları okuyamaz?
HDFS, binlerce küçük dosyayı işlerken verimsizdir ve bu da gecikmeyi artırır. Bu nedenle dağıtık önbellek, salt okunur, arşiv ve jar dosyalarını depolamanıza ve bunları MapReduce görevleri için kullanılabilir hale getirmenize olanak tanır.
Diyelim ki MapReduce'ta 40 iş çalıştırmanız gerekiyor ve her iş HDFS'ten dosyaya erişmek zorunda. Gerçek ortamda bu sayı yüzlerce, hatta binlerce okumaya çıkabilir. Uygulama bu dosyaları HDFS'te sık aralıklarla bulacak ve bu da HDFS'i aşırı yükleyip performansını etkileyecektir.
Oysa dağıtık önbellek çok sayıda küçük dosyayı kaldırabilir ve erişim süresi ile işlem hızından ödün vermez.
13. Bozulmuş verileri tespit etmede sağlama toplamının (checksum) rolünü açıklayın. Ayrıca standart hata tespit kodunu tanımlayın.
Sağlama toplamları HDFS'te bozulmuş verileri tespit eder. Veri sisteme girdiğinde, checksum adı verilen küçük bir değer oluşturulur. Bir kullanıcı veri aktarımı istediğinde Hadoop checksum'u yeniden hesaplar. Yeni checksum orijinaliyle eşleşirse veri sağlamdır; eşleşmiyorsa bozuktur.
Hadoop için hata tespit kodu CRC-32'dir.
14. HDFS hata toleransını nasıl sağlar?
HDFS, güvenilirlik ve kullanılabilirlik sağlamak için kopyalama süreciyle (replication) hata toleransını sağlar. Kopyalama süreci şöyle işler:
- İlk blok dağıtımı: Bir dosya kaydedildiğinde HDFS onu bloklara böler ve farklı DataNode'lara atar. Örneğin, A, B ve C bloklarına bölünmüş bir dosya A1, B2 ve C3 DataNode'larında tutulabilir.
- Kopyalama: Bir bloğu elinde bulunduran her DataNode, o bloğu kümedeki diğer DataNode'lara kopyalar. Örneğin, A bloğunu tutan A1 DataNode'u, D1 ve D2 gibi diğer DataNode'larda ek kopyalar oluşturacaktır. Bu da A1 çökerse A bloğunun D1 ve D2 üzerindeki kopyalarının erişilebilir olacağı anlamına gelir.
- Arızaların ele alınması: D1 DataNode'u arızalanırsa, gerekli bloklar (B ve C) B2 ve C3 gibi diğer DataNode'lardan alınabilir.
15. MapReduce ile sıkıştırılmış bir dosyayı işleyebilir misiniz? Evetse hangi formatları destekler ve bölünebilirler mi?
Evet, MapReduce ile sıkıştırılmış dosyaları işlemek mümkündür. Hadoop birden çok sıkıştırma formatını destekler, ancak hepsi bölünebilir değildir.
MapReduce'un desteklediği formatlar şunlardır:
- DEFLATE
- gzip
- bzip2
- LZO
- LZ4
- Snappy
Bunların arasında yalnızca bzip2 bölünebilir bir formattır.
HDFS çok büyük dosyaları, her biri 128 MB olacak şekilde daha küçük parçalara böler. Örneğin, HDFS 1,28 GB'lık bir dosyayı on bloğa ayırır. Her blok daha sonra bir MapReduce işinde ayrı bir mapper tarafından işlenir. Ancak bir dosya bölünemezse tüm dosyayı tek bir mapper işler.
Hive Mülakat Soruları
Bazı pozisyonlar, Hadoop ile Hive entegrasyonu konusunda uzmanlık gerektirir. Bu kadar spesifik bir rolde işe alım yöneticisi şu sorulara odaklanacaktır:
16. Hive'ı tanımlayın.
Hive, toplu işler ve veri analizleri gerçekleştiren bir veri ambarı sistemidir. Facebook tarafından, HDFS'te depolanan muazzam veri kümeleri üzerinde Java'ya bağımlı olmadan SQL benzeri sorgular çalıştırmak için geliştirilmiştir.
Hive ile verileri tablolara organize edebilir ve şemalar gibi metadataları depolamak için bir megastore kullanabiliriz. S3, Azure Data Lake Storage (ADLs) ve Google Cloud Storage gibi bir dizi depolama sistemini destekler.
17. Bir Hive Metastore (HMS) nedir? Yönetilen Metastore ile Harici Metastore'u nasıl ayırt edersiniz?
Hive Metastore (HMS), metadata için merkezi bir veritabanıdır. HDFS nesne depolamasında tutulan tablolar, görünümler ve erişim izinleri hakkında bilgi içerir.
İki tür HIVE Metastore tablosu vardır:
- Yönetilen Metastore: HIVE bu tabloyu Hive servis JVM'inde depolar ve yönetir. Bu tabloları varsayılan olarak
/user/hive/warehousedeğeriyle bulabiliriz. - Harici Metastore: Bu tablolar harici bir JVM üzerinde çalışır. Dolayısıyla Hive'ın metadatasındaki herhangi bir değişiklik bu tablolarda depolanan verileri etkilemez.
18. Hive hangi programlama dillerini destekler?
Hive, farklı uygulamalarda çok yönlülüğünü ve kullanılabilirliğini artırarak birden çok programlama diliyle entegrasyon için sağlam destek sunar:
- Python: Veri analizi ve makine öğrenimi.
- Java: Kurumsal uygulamalar ve özel veri işleme.
- C++: Performans kritik uygulamalar ve özel SerDe'ler.
- PHP: Hive verilerine erişen web tabanlı uygulamalar.
19. Hive en fazla ne kadar veri boyutunu işleyebilir?
HDFS ile entegrasyonu ve ölçeklenebilir mimarisi sayesinde Hive petabaytlarca veriyi işleyebilir. Hive'ın yönetebileceği veri boyutu için sabit bir üst sınır yoktur; bu da onu büyük veri işleme ve analitiği için güçlü bir araç yapar.
20. Hive'da kaç veri türü vardır?
Hive, farklı veri gereksinimlerini karşılamak için zengin bir veri türü seti sunar:
- Dahili veri türleri: Temel veri depolama için Sayısal, Metin, Tarih/Saat ve çeşitli türler.
- Karmaşık veri türleri: Daha gelişmiş ve yapılandırılmış veri temsilleri için ARRAY, MAP, STRUCT ve UNIONTYPE.
Dahili veri türleri:
|
Kategori |
Veri türü |
Açıklama |
Örnek |
|
Sayısal türler |
TINYINT |
1 bayt işaretli tamsayı |
127 |
|
SMALLINT |
2 bayt işaretli tamsayı |
32767 |
|
|
INT |
4 bayt işaretli tamsayı |
2147483647 |
|
|
BIGINT |
8 bayt işaretli tamsayı |
9223372036854775807 |
|
|
FLOAT |
Tek duyarlıklı kayan nokta |
3.14 |
|
|
DOUBLE |
Çift duyarlıklı kayan nokta |
3.141592653589793 |
|
|
DECIMAL |
Keyfi duyarlıklı işaretli ondalık sayı |
1234567890.1234567890 |
|
|
Metin türleri |
STRING |
Değişken uzunluklu metin |
'Hello, World!' |
|
VARCHAR |
Belirli azami uzunluğa sahip değişken uzunluklu metin |
'Example' |
|
|
CHAR |
Sabit uzunluklu metin |
'A' |
|
|
Tarih/Saat türleri |
TIMESTAMP |
Saat dilimi dahil tarih ve saat |
'2023-01-01 12:34:56' |
|
DATE |
Saat olmadan tarih |
'2023-01-01' |
|
|
INTERVAL |
Zaman aralığı |
INTERVAL '1' DAY |
|
|
Diğer türler |
BOOLEAN |
Doğru veya yanlış değerini temsil eder |
TRUE |
|
BINARY |
Bayt dizisi |
0x1A2B3C |
Karmaşık Veri Türleri:
|
Veri Türü |
Açıklama |
Örnek |
|
ARRAY |
Sıralı öğe koleksiyonu |
ARRAY<STRING> ('apple', 'banana', 'cherry') |
|
MAP |
Anahtar-değer çiftlerinden oluşan koleksiyon |
MAP<STRING, INT> ('key1' -> 1, 'key2' -> 2) |
|
STRUCT |
Farklı veri türlerinden alan koleksiyonu |
STRUCT<name: STRING, age: INT> ('Alice', 30) |
|
UNIONTYPE |
Belirtilen türlerden herhangi birini tutabilir |
UNIONTYPE<INT, DOUBLE, STRING> (1, 2.0, 'three') |
Büyük Veri Mühendisleri için Senaryo Tabanlı Hadoop Mülakat Soruları
Bu sorular, Hadoop'u gerçek yaşam problemlerini ele almak için kullanma becerinizi test eder. Veri mimarı rolü için başvuruyorsanız özellikle alakalıdır, ancak Hadoop bilgisi gerektiren herhangi bir mülakat sürecinde de sorulabilir.
21. Hadoop'un kopyalama sistemiyle bir HDFS kümesi kuruyorsunuz. Kümede A, B ve C olmak üzere üç raf var. Hadoop'un datafile.text adlı bir dosyayı nasıl kopyalayacağını açıklayın.
Hadoop veriyi şu şekilde kopyalar:
- İlk kopya A rafında: Hadoop ilk kopyayı A rafında rastgele seçilen bir düğüme yerleştirir. Bu karar, yerel veya yakın bir düğüm seçerek yazma gecikmesini en aza indirir.
- İkinci kopya B rafında: İkinci kopya, B rafı gibi farklı bir raftaki bir düğüme yerleştirilir. Bu, A rafı arızalanırsa verinin kaybolmamasını sağlar ve hata toleransını artırır.
- Üçüncü kopya B rafında: Üçüncü kopya, B rafı içinde başka bir düğüme yerleştirilir. İkinci kopyayla aynı rafta konumlandırmak, raflar arası ağ yükünü dengelemeye ve raflar arası trafiği azaltmaya yardımcı olur.
Üç raflı (A, B ve C) bir HDFS kümesindeki Hadoop'un kopyalama stratejisi, yük dağılımını optimize etmek, hata toleransını artırmak ve ağ verimliliğini iyileştirmek üzere tasarlanmıştır. Bu sayede datafile.text performans ve güvenilirliği dengeleyecek şekilde çoğaltılır.
22. Dosyalarla LocalFileSystem kullanarak etkileşen Hadoop tabanlı bir uygulama üzerinde çalışıyorsunuz. Veri bütünlüğünü bir sağlama toplamıyla (checksum) nasıl sağlayacaksınız?
Hadoop'un LocalFileSystem içinde sağlama toplamları kullanmak veri bütünlüğünü şu şekilde sağlar:
- Sağlama toplamı üretimi: Dosya yazımları sırasında veri parçaları için otomatik olarak sağlama toplamları oluşturma.
- Sağlama toplamlarını depolama: Aynı dizinde gizli
.filename.crcdosyasında sağlama toplamlarını saklama. - Sağlama toplamlarını doğrulama: Okuma sırasında saklanan sağlama toplamlarını gerçek verilerle karşılaştırma.
- Uyumsuzlukları tespit: Tutarsızlık durumunda
ChecksumExceptionfırlatma.
Bu adımları izleyerek uygulamanızın veri bütünlüğünü koruyabilir ve olası veri bozulmalarını hızla tespit edebilirsiniz.
23. Birden çok düğüme yayılmış büyük ölçekli bir Hadoop işini hata ayıklıyorsunuz ve çıktıyı etkileyen alışılmadık durumlar var. Bununla nasıl başa çıkarsınız?
Şunları yapabiliriz:
- Olası sorunları günlüğe kaydetme: Potansiyel problemleri
stderr'e yazdırmak için hata ayıklama ifadeleri kullanın. - Görev durumunu güncelleme: Hata günlüğü konumlarını görev durumu mesajlarına ekleyin.
- Özel sayaçlar: Alışılmadık koşulları izlemek ve analiz etmek için sayaçlar uygulayın.
- Map çıktısı hata ayıklama: Hata ayıklama bilgilerini map çıktısına yazın.
- Günlük analiz programı: Ayrıntılı günlük analizi için bir MapReduce programı oluşturun.
Bu adımları izleyerek büyük ölçekli Hadoop işlerinin hata ayıklamasını sistematik biçimde yapabilir, çıktıyı etkileyen olağan dışı durumları etkin şekilde izleyip çözebilirsiniz.
24. YARN kullanarak bir Hadoop kümesi için bellek ayarlarını hesaplıyorsunuz. NodeManager ve MapReduce işleri için belleği nasıl ayarlayacağınızı açıklayın.
YARN kullanan bir Hadoop kümesi için bellek ayarlarını yaparken, performansı ve kaynak kullanımını optimize etmek için Hadoop daemonn'ları, sistem süreçleri ve NodeManager arasındaki bellek tahsisini dengelemek önemlidir.
NodeManager için bellek ayarlama:
- Düğümün toplam fiziksel belleğini hesaplayın: Kümedeki her düğümde mevcut toplam fiziksel belleği belirleyin. Örneğin, bir düğümde 64 GB RAM varsa, toplam fiziksel bellek 64.000 MB'dır.
- Hadoop daemon'ları için belleği düşürün: Düğümlerde çalışan DataNode ve NodeManager gibi Hadoop daemon'ları için bellek ayırın. Genellikle daemon başına 1000 ila 2000 MB yeterlidir. Örneğin, DataNode ve NodeManager için ayrı ayrı 1500 MB ayırırsanız 3000 MB rezerve etmeniz gerekir.
- Sistem süreçleri için bellek ayırın: İşletim sistemi ve temel servislerin sorunsuz çalışması için diğer sistem süreçleri ve arka plan servisleri için bellek ayırın. Tipik bir rezervasyon 2 GB (2000 MB) olabilir.
- Kalan belleği NodeManager'a ayırın: NodeManager'ın konteynerlere tahsis edeceği kullanılabilir belleği belirlemek için Hadoop daemon'ları ve sistem süreçleri için ayrılan belleği toplam fiziksel bellekten çıkarın.
MapReduce işleri için bellek ayarlama:
mapreduce.map.memory.mb'yi ayarlayın: Bu parametre, her bir map görevi için ayrılan bellek miktarını tanımlar. Map görevlerinizin bellek gereksinimlerine göre bu ayarı yapın.- Örneğin,
mapreduce.map.memory.mb'yi 2048 MB olarak ayarlamak, her map görevine 2 GB bellek ayrılması anlamına gelir. mapreduce.reduce.memory.mb'yi ayarlayın: Bu parametre, her bir reduce görevi için ayrılan bellek miktarını tanımlar. Reduce görevlerinizin bellek gereksinimlerine göre bu ayarı yapın.- Örneğin,
mapreduce.reduce.memory.mb'yi 4096 MB olarak ayarlamak, her reduce görevine 4 GB bellek ayrılması anlamına gelir. - Konteyner boyutunu yapılandırın:
yarn-site.xmliçindeyarn.nodemanager.resource.memory-mbgibi parametrelerle konteyner boyutunun uygun şekilde ayarlandığından emin olun; bu değer NodeManager'a ayrılan bellekle uyumlu olmalıdır. - Örneğin, NodeManager'ın 59.000 MB kullanılabilir belleği varsa
yarn.nodemanager.resource.memory-mb'yi 59.000 MB olarak ayarlayabilirsiniz.
Bellek yapılandırmasının özeti:
|
Bileşen |
Yapılandırma |
Örnek Değerler |
|
NodeManager |
Toplam fiziksel bellek |
64.000 MB |
|
Hadoop daemon'ları için bellek |
3000 MB |
|
|
Sistem süreçleri için bellek |
2000 MB |
|
|
NodeManager için kullanılabilir bellek |
59.000 MB |
|
|
MapReduce map görevi |
mapreduce.map.memory.mb |
2048 MB |
|
MapReduce reduce görevi |
mapreduce.reduce.memory.mb |
4096 MB |
|
Konteyner boyutu |
yarn.nodemanager.resource.memory-mb |
59.000 MB |
Son Düşünceler
Bu soruları anladıktan sonra temel terimleri bilmeli ve
gerçek hayattaki Hadoop uygulamalarının karmaşıklıklarına güçlü bir şekilde hâkim olmalısınız. Buna ek olarak, güncel kalmak ve mülakatlarda başarılı olmak için Hadoop üzerinde geliştirilen yeni projelere uyum sağlamalısınız.
Ayrıca, Hadoop'a kıyasla daha hızlı ve daha düşük gecikme sorunlarına sahip oldukları için Spark ve Flink gibi diğer büyük veri çerçeveleri hakkında bilginizi genişletebilirsiniz.
Ancak büyük veriyi ustalıkla öğrenmek için yapılandırılmış bir öğrenme yolu arıyorsanız, aşağıdaki kaynaklara göz atabilirsiniz:
- PySpark ile Büyük Veri Temelleri: Bu kurs, PySpark ile büyük veri işlemenin temellerini öğrenmek için mükemmel bir başlangıçtır.
- PySpark ile Büyük Veri: Bu öğrenim yolu, PySpark kullanarak veri işleme, makine öğrenimi ve daha fazlası gibi konuları kapsayan büyük veri kavramlarına kapsamlı bir giriş sunar.
SSS
Hadoop bilgimi tamamlamak için hangi ek becerileri öğrenmeliyim?
Kariyer olanaklarınızı artırmak için Apache Spark ve Apache Kafka gibi ek büyük veri çerçevelerini öğrenin. MySQL ve MongoDB gibi SQL ve NoSQL veritabanlarını anlamak faydalıdır. Python, Java ve Scala'da yetkinlik ile Apache Hive gibi veri ambarı araçları esastır. TensorFlow ve PyTorch gibi makine öğrenimi çerçeveleri de değer katabilir.
Hadoop'ta pratik deneyimi nasıl kazanabilirim?
DataCamp gibi platformlarda çevrimiçi kurslara ve sertifikalara kaydolarak pratik deneyim kazanın. GitHub veya Kaggle'da gerçek dünya projelerine katılın. Büyük veriyle çalışan şirketlerde staj arayın. Hackathon'lara ve kodlama yarışmalarına katılın. Açık kaynak Hadoop projelerine katkıda bulunmak da deneyim kazanmanın ve becerilerinizi sergilemenin etkili bir yoludur.
Bir Hadoop profesyoneli için mevcut kariyer yolları nelerdir?
Hadoop profesyonelleri için kariyer yolları arasında büyük veri mühendisi, veri bilimci, veri analisti, Hadoop yöneticisi, ETL geliştiricisi ve çözüm mimarı gibi roller bulunur. Her rol, Hadoop ve ilgili teknolojileri kullanarak büyük ölçekli veri işleme sistemlerini tasarlamanın, yönetmenin ve analiz etmenin farklı yönlerini içerir.
Yeni mezun biri olarak Hadoop işi bulmak kolay mı, yoksa deneyimli olmam mı gerekir?
Hiç şüphe yok ki Hadoop mülakatlarını geçmek zordur. Ancak yeni mezun ya da deneyimli olmanız fark etmez—ihtiyacınız olan tek şey teoriye ve pratiğe güçlü bir hakimiyettir.
Hadoop profesyonellerinin kariyerlerinde karşılaştığı yaygın zorluklar nelerdir?
Yaygın zorluklar arasında veri güvenliğini sağlamak, Hadoop küme performansını optimize etmek, çeşitli veri kaynaklarıyla entegrasyon, hızlı teknoloji gelişimine ayak uydurmak ve kümeleri yönetip ölçeklemek yer alır. Darboğazları önlemek için verimli kaynak yönetimi de kritiktir. Bu zorlukları ele almak, Hadoop profesyoneli olarak kariyerinizi ilerletmenize yardımcı olur
Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

