Apache Hadoop Nedir?

Hadoop, büyük hacimli, yapılandırılmış ve yapılandırılmamış verileri işlemek için kullanılan yüksek düzeyde ölçeklenebilir bir analiz platformudur . Büyük ölçekli derken, yüzlerce veya binlerce fiziksel depolama sunucusuna yayılmış petabytelarca veriyi kastediyoruz.

2005 yılında geliştirilen ve şimdi Apache Software Foundation altında yönetilen bir açık kaynak platformu olan Hadoop, büyük verileri birden fazla makinede saklar ve yönetir.

Hadoop içerisinde büyük verileri sakladığımız yapıya Hadoop Distributed File System (HDFS) denir .

İşleyiş şu şekilde ilerler;

  • Büyük verileri HDFS sistemine yüklediğimiz zaman , Hadoop bu verileri bloklara ayırır .

  • Farklı bloklara ayrılan veriler çoklanarak (kopyalanarak) farklı nodelara(serverlara, cihazlara) aktarılır. Bu çoklanarak saklama işleminin birincil sebebi ise nodelardan herhangi birisine zarar gelirse en az kayıpla krizi atlatmaktır.

HDFS, geleneksel anlamda bir dosya sistemi değildir ve genellikle bir kullanıcının görüntülemesi için direkt uygulanmaz (direkt görüntülemek için bazı araçlar mevcuttur), bu da bazen kavramın anlaşılmasını zorlaştırabilir; bu sebeple Hadoop’u veri deposu olarak düşünmek daha mantıklıdır.

Bu sistemin asıl can alıcı noktası veri analizi işlemini yapması ve maliyetini azaltmasıdır.

Peki hadoop verileri paralel olarak nasıl işler?

Bu işlemi yapan bileşenin adı MapReduce’dur. Veriler HDFS’ye işlendikten hemen sonra Map ve Reduce aşamaları işletilir. Bu aşamaları PHP, Java vs.. ile getiştirebilirsiniz.

Veri konusunda kaynakça olarak kullanabileceğimiz Buyukveri.co‘da bu işleme örnek olarak bir text dosyasının içerisindeki kelime sayısını bulan MapReduce programının incelemesi yapılmış. Alıntılayarak gösterelim.

MapReduce şu adımlardan oluşacaktır ;

  • Spliting : Veriler 64 MB lık bloklara ayrılır .
  • Mapping : Burada kelimeler key ve value şeklinde bölümlere ayrılır .
  • Shuffling : Map işleminden çıkan sonuçları Reducer’a yönlendirir . Amacımız word-count uygulaması oldugu için aynı kelime grubu aynı Reducer a yönlendirilir .
  • Reducing : Gelen sonuçlar üzerinden toplama işlemi yapılır ve sonuçlar belirlediğiniz kaynaklara yazılır.

Özetle yüksek trafikte akan bir veriniz olduğu zaman (Örnek günlük 10 milyon + ) verileri HDFS üzerinde saklayabilir ve MapReduce ile verilerinizi analiz edebilirsiniz .

Ek olarak eğitim ve üretim için Hadoop’u kullanan şirketlerin ve projelerin tam listesine şuradan ulaşabilirsiniz: PoweredBy – Hadoop

Araştırma sektörü ve Web 3.0

Beş ay önce web ve mobil uygulama geliştiricisi olarak başladığım Aksoy Araştırma şirkletinde Araştırma sektörü ve veri analizi konusunda edindiğim tecrübeleri bir blog yazısı olarak yayınlamaya karar verdim.

Araştırma ve veri edinme odaklı konularda ufkumu açan olaylarla karşılaştığım kadar bana eksik gelen yönlerinin de olduğunu, bu sebeple ülkemizdeki araştırma ve veri analizi teknolojilerinin geliştirilmesi konusunda yardımcı olmak adına eleştirilerimin de olacağını yazının başında belirtmek isterim.

İlk adımı siyasi araştırmalar konusu ile atalım. Kamuoyuna bilgi sağlamak ve sonuçlarda doğruluk oranını yükseltmek her araştırmacının en temel arzusu. Bu konuda istatistiksel metalar mevcut ve dataya dayalı istatistiklerin okunması, bilgiye evrilmesi ve sunulması araştırmanın temel amacı. Bu süreç şu şekilde işliyor;

  • Araştırmanın odağını belirleyecek sorular oluşturuluyor. (Sektörde buna script oluşturma deniliyor. Soruların biçimi, cevapların alınma şekilleri [açık uçlu, çoktan seçmeli, kapalı uçlu vs. –araştırma sonucu etkiler derecede önemli bir madde olduğunu düşünüyorum-] bu kısımda belirleniyor.)
  • Araştırmanın hangi kitle üzerinde yapılacağı belirleniyor. (Sosyoekonomik statü, cinsiyet, yaş, bölge, il-ilçe vs.. )
  • Araştırmanın hangi kanal üzerinden yapılacağı belirleniyor. (Bunu ilk madde olarak yazmak da mümkün fakat hiç bir zaman araştırma biçimi, sorulacak soruları kesmemeli, sonuca negatif veya eksik bilgi bakımından etki etmemeli [benim fikrim])
  • Araştırma verileri toplanır. (Sahada yüzyüze, telefon ile veya internet-mobil üzerinden)
  • Bu veriler istatistiksel grafiklere çevrilir.
  • Veri okuması yapılarak bilgiye çevrilir.
  • İlgili kişi, kurum veya kamuoyuna servis edilir.

Mobil Uygulama Testleri Yapmak!

Daha iyi mobil uygulamalar için yeni bir yapılanma içerisine giriyoruz. Apptestinq.com ile uygulama geliştiren kişilere/ekiplere 3. şahısların gözünden, istenilen şartlara ve bağımlılıklara göre test desteği veriyoruz. Çünkü Türkiye’de böyle bir yapılanmanın eksikliğini hissettik.

Eszamanli Anket App’i geliştirdikten sonra uzun bir debug aşaması ve UX geliştirme sürecine tabii tutmak durumunda kaldık. Çünkü Brief’i veren de, brief’i okuyup metaları uygulayan da uygulamayı kendi kararlarına göre tasarlamış ve bildikleri kullanımda hata bulamamıştı. Fakat beta aşamasında 3. şahısların kullanımına sunulan Eşzamanlı App’te onlarca hatalı ve zor kullanıma sebebiyet veren bölümlerle karşılaştık. Bu işimizi ve yayın süresini bir hayli uzattı. Sonraki projelerde bu durumların yaşanmaması için bir çözüm bulmak gerekiyordu. Ben de bir test dokümantasyonu oluşturmaya başladım. Fazlasıyla detaylı olarak algılansa da uygulamayı yayınlamadan önce bu kalıplara göre test etmek işimizi fazlasıyla hızlandırıyor.

Apptestinq ile bu dokümantasyona ek olarak reel kullanıcı deneyimi ve ısı haritası yöntemini de kullanıyoruz. Bu sayede kullanıcıların şahsi kullanım alışkanlıklarını ölçümleyerek kullanım için hatalı ve iyileştirilebilir bölümleri belirliyoruz.

Ayrıca Apptestinq olarak en büyük hedeflerimizden birisi sağlıklı kod yapısı. Kullanıcı deneyimi kadar önemli olan unsurlardan birisi de ortak geliştirici syntaxı. Kodların en sağlıklı ve okunabilir şekilde dizayn edilmesi, daha hızlı ve ölçeklenebilir fonksiyonlar yaratma gibi bir misyonu da yapılanmamızda barındırıyoruz.

Detaylı Bilgi için: Mobil uygulama testleri

“Neyi bilmediğimiz hakkında hiçbir fikrimiz yok.”

Bugün Barış Özcan‘ın “Kim ulan* bu Elon Musk!” videosunu izledim. Bu video, Barış Özcan’ın diğer videolarına benzer bir şekilde başladı fakat öylece devam edip bitmedi. Fazlasıyla aşikar ki beni uzun zaman sonra etkileyen en iyi videolardan biri oldu. Elimden geldiğince paylaşıp, yanımda dostlarım olduğunda telefonumdan açıp izleteceğim. Bu sebeple öncelikle Barış Abi’ye teşekkürü borç bilirim.

Elon Musk kimdir? diyerek başlamayacağım çünkü bu yazıyı gördüyseniz ve okuyorsanız eminim kendisinin kim olduğunu biliyorsunuzdur. Spacex, Tesla, SolarCity şirketlerinin kurucusu ve vizyoneri. Fakat onu diğer kapitalistlerden ayıran bir özelliği var. O Paypal’ı 160.000.000$’a sattıktan sonra Boğazdan bir yalı alıp Florida’ya tatile gitmiyor. Ya da ölene kadar gezilecek tüm dünya güzelliklerini gezmeye hayatını adamıyor. O bir distopyanın içinde olan insanlığı çocukluğundan itibaren tanıyor ve eline geçen ilk imkanda bu distopyadan kurtulmak için çalışmaya başlıyor.

Elon Musk’ın en etkilendiğim özelliği ise şu; Tesla şirketinin sahip olduğu patentler halka açık durumda. Yani fikirlerini bedava bir şekilde kullanıma açıyor. Rakipleri dahil olmak üzere herkese.. En büyük rakibi kim mi? Spacex’den ötürü NASA! Hem de yıllık 19.000.000.000$ harcama bütçesi olan Nasa..

Kendisine neden patentleri özgür bıraktığını sorduklarında şu cevabı veriyor: Dünya su alan bir gemi. Ve benim çalışmalarım ise bu suyu dışarıya boşaltan kovalar. Siz olsanız herkese bu kovalardan üretme şansı vermez misiniz?!

Elon, vizyonerlik alanında örnek alınacak bir insan. O bir Afrika’lı. O, “Neyi bilmediğimiz hakkında hiçbir fikrimiz yok.” sözünü söyleyen kişi. O Elon Musk..

Not: Videoyu izlemenizi tavsiye ediyorum.

 

Xcode: “archive” pasif durumda!

Xcode’da uygulamayı Appstore’a göndermeden önce Product -> Archive yolunu kullanarak bir çıktı oluşturmamız gerekiyor. Fakat simulator seçili iken Debug işlemi yapılıyorsa ‘archive’ seçeneği ‘disable’ olarak gözüküyor ve archive işlemi yapılamıyor. Bu sorunu aşmak için Product -> Destination bölümünden veya Device gerçek bölümünden bir iOS cihaz seçebilir veya ‘Generix iOS Device’ seçeneğini kullanabilirsiniz. Archive aktif olacaktır.