Günlük blog | Tek metre 100 milyar telekom büyük veri senaryosu için teknik seçim nasıl yapılır

Sağ üst tarafa tıklayın, açık kaynak Çin OSC başlık numarasını takip edin, en son teknik bilgileri alın

[Arka plan tanıtımı]

Yerel bir mobil ofis, ayrıntılı telekomünikasyon işletme faturalarını işlemek için Impala bileşenlerini kullanır. Her gün yaklaşık 100 TB ayrıntılı fatura işler. Ayrıntılı fatura tablosu günde on milyardan fazla kaydı kaydeder. Impala kullanma sürecinde aşağıdaki sorunlar mevcuttur:

  • Ayrıntılı liste Parquet formatında saklanır, veri tablosu zamana + MSISDN numarasına göre bölümlenir ve sorgu için Impala kullanılır.Sorgu senaryosu bölümlenmemişse, sorgu performansı nispeten düşüktür.
  • Impala'yı kullanma sürecinde, birçok performans sorunu (katalog meta veri genişletmesinin neden olduğu yavaş meta veri senkronizasyonu gibi) ve düşük eşzamanlı sorgu performansı vardır.
  • Impala, MPP mimarisine aittir ve yalnızca yüz düğüm seviyesine ulaşabilir.Genel olarak, eşzamanlı sorguların sayısı yaklaşık 20'ye ulaştığında, tüm sistemin verimi tam kapasiteye ulaşmıştır ve genişletilmiş düğümlerde verim iyileştirilemez.
  • Kaynaklar, YARN birleşik kaynak yönetimi aracılığıyla programlanamaz, bu nedenle Hadoop kümeleri Impala, Spark, Hive ve diğer bileşenlerin dinamik kaynak paylaşımını gerçekleştiremez. Ayrıntılı sorgulama özelliğini üçüncü şahıslara açarak kaynakları izole etmek de imkansızdır.
  • çözüm

    Yukarıdaki sorunlar dizisine yanıt olarak, mobil site müşterileri bizden uygun çözümler sunmamızı istedi. Büyük veri ekibimiz yukarıdaki sorunları analiz etti ve teknik seçim yaptı. Bu süreçte, mobil sitenin birkaç Tipik bir iş senaryosu, Spark + CarbonData, Impala2.6, HAWQ, Greenplum ve SybaseIQ'nun prototipini oluşturmak ve doğrulamak, performans ayarı yapmak, iş senaryolarımız için CarbonData'nın veri yükleme performansını optimize etmek, sorgu performansı ve CarbonData açık kaynak topluluğuna katkıda bulunmak için girdi olarak kullanılır. Sonunda, aynı zamanda tipik bir SQL On Hadoop çözümü olan ve geleneksel veri ambarı on Hadoop'a geçiş eğilimini dolaylı olarak doğrulayan Spark + CarbonData çözümünü seçtik. Doğrulama testimiz ve anlayışımızla birlikte topluluk resmi web sitesi bilgilerine bakın: CarbonData, büyük bir veri Hadoop ekolojik yüksek performanslı veri depolama çözümüdür, özellikle veri miktarı büyük olduğunda önemli ölçüde hızlanır. Spark ile derinlemesine entegredir ve Spark ekosisteminin tüm işlevleriyle uyumludur ( SQL, ML, DataFrame, vb.), Spark + CarbonData, birden fazla iş senaryosunun ihtiyaçlarını karşılamak için tek bir veri parçası için uygundur. Aşağıdaki özellikleri içerir:

  • Depolama: satır ve sütun dosyası depolama, sütun depolama Parquet ve ORC'ye benzer, satır depolama Avro'ya benzer. CDR'ler, günlükler ve ardışık düzenler gibi veriler için birden çok dizin yapısını destekler.
  • Hesaplama: Spark hesaplama motoruyla derin entegrasyon ve optimizasyon; Presto, Flink, Hive ve diğer motorlarla kenetlenme desteği;
  • arayüz:
  • API: DataFrame, MLlib ve Pyspark gibi yerel API arayüzleriyle uyumludur;
  • SQL: Spark sözdizimi temeli ile uyumludur ve CarbonSQL söz dizimi uzantılarını destekler (güncelleme ve silme, indeksleme, ön toplama tablosu, vb.).
  • Veri yönetimi:
  • Artımlı veri depolama, veri toplu yönetimi (eskime yönetimi) desteği
  • Veri güncelleme ve silme desteği
  • Yarı gerçek zamanlı depolama olan Kafka ile kenetlenme desteği
  • Ayrıntılı anahtar teknoloji tanıtımı ve kullanımı için lütfen https://carbondata.apache.org/ belgesini okumak ve görüntülemek için resmi web sitesine gidin.

    [Teknik seçim tanıtımı]

    Nihai çözüm olarak neden SQL on Hadoop teknolojisinin seçildiğini açıklamak için bir ek.

    Büyük veriye maruz kalan herkes büyük verinin 5V özelliğine sahip olduğunu bilir.Geleneksel İnternet verilerinden mobil İnternet verilerine, artık çok popüler IoT'ye, aslında her sektör ilerlemesiyle birlikte iki tür veri hacmi olacaktır. Üç kat büyüme. Dahası, mevcut veri büyümesi hızlanmış bir büyüme eğilimi gösteriyor, bu yüzden şimdi mobil İnternet ve Nesnelerin İnterneti dahil olmak üzere İnternet büyük verisinin 5 ana özelliğini ortaya koyduk: Hacim, Hız, Çeşitlilik, Değer, Doğruluk. Veri miktarı arttıkça, geleneksel veri ambarları giderek daha fazla zorlukla karşı karşıya kalır.

    Geleneksel veri ambarlarının karşılaştığı zorluklar:

    Aynı zamanda, veri sistemi sürekli gelişiyor

    Depolama yöntemlerinin evrimi: çevrimdışı, yakın hat > Hepsi çevrimiçi

    Depolama mimarisinin evrimi: merkezi depolama- > Dağıtılmış depolama

    Depolama modelinin evrimi: sabit yapı- > Esnek yapı.

    Veri işleme modellerinin evrimi

    Sabit model sabit algoritma- > Esnek model ve esnek algoritma

    Veri işleme türlerinin evrimi

    Yapılandırılmış merkezi tek kaynaklı bilgi işlem- > Çok yapılandırılmış dağıtılmış çok kaynaklı bilgi işlem

    Veri işleme mimarisinin evrimi

    Veritabanı statik işleme- > Gerçek zamanlı veri / akış / toplu işleme

    Yukarıda bahsedilen değişiklik veritabanının babası Kimball bir noktaya değindi:

    Kimball'un temel görüşü:

    Hadoop, geleneksel veri ambarının veri işleme mekanizmasını değiştirdi. Geleneksel veritabanının bir işleme birimi, Hadoop'ta üç katmana ayrıldı:

    Depolama katmanı: HDFS

    Meta veri katmanı: Hcatalog

    Sorgu katmanı: Hive, Impala, Spark SQL

    Şema Okuma, kullanıcılara daha fazla seçenek sunar:

    Veriler, depolama katmanına orijinal biçiminde içe aktarılır

    Meta veri katmanı aracılığıyla hedef veri yapısını yönetin

    Sorgu katmanı, verilerin ne zaman çıkarılacağına karar verir

    Uzun süreli keşif ve verilere alıştıktan sonra, kullanıcılar ara tabloları sağlamlaştırmak ve sorgu performansını iyileştirmek için Yazma Üzerinde Şema modunu benimseyebilir

    Seri numarası

    RDBMS'ye dayalı veri işleme modu

    Hadoop'a dayalı veri işleme modu

    1

    Güçlü tutarlılık

    Nihai tutarlılık, işleme verimliliği veri doğruluğundan daha yüksektir

    2

    Veriler dönüştürülmelidir, aksi takdirde sonraki işlem devam edemez

    Veriler, dönüştürülmeden uzun süre orijinal formatta saklanabilir

    3

    Veriler temizlenmeli ve normalleştirilmelidir

    Veri temizleme ve normalleştirme için tavsiye edilmez

    4

    Veriler temelde fiziksel tabloda saklanır, dosya erişim verimliliği düşüktür

    Verilerin çoğu dosyalarda saklanır ve fiziksel tablolar yapılandırılmış dosyalara eşdeğerdir

    5

    Meta veriler sözlük tablolarıyla sınırlıdır

    HCatalog hizmetine meta veri uzantısı

    6

    Veri işleme motorunda yalnızca SQL var

    Açık veri işleme motoru: SQL, NOSQL, Java API

    7

    Veri işleme süreci tamamen BT personeli tarafından kontrol edilir

    Veri mühendisleri, veri bilimcileri ve veri analistlerinin tümü veri işlemeye katılabilir

    Hadoop veri ambarı teknolojisinde SQL

    Veri işleme ve analiz

    Hadoop üzerine SQL

    Kudu + Impala, Spark, HAWQ, Presto, Hive vb.

    Veri modelleme ve depolama

    Okunduğunda Şema

    Avro ve ORC ve Parquet ve CarbonData

    Akış işleme

    Flume + Kafka + Spark Akışı

    SQL-on-Hadoop teknolojisinin gelişimi ve olgunluğu değişimi destekler

    Yukarıdaki teknik analizden sonra, nihayet platformumuzun gelecekteki veri ambarı gelişim yönü olarak SQL on Hadoop teknolojisini seçtik.Birisi burada sormalı, neden MPPDB teknolojisini seçmiyor? Burada ayrıca Hadoop ve MPPDB üzerinde SQL kullanıyoruz. Karşılaştırmalı analizden sonra (Impala'nın aslında MPPDB'ye benzer bir teknoloji olduğunu unutmayın):

    [Uygulama etkisini planlayın]

    Site, Impala'yı değiştirdikten sonra Eylül 2018'in sonunda Spark + CarbonData'yı başlattı.Her gün 100 TB'tan fazla makbuz işledi.İşlerin en yoğun olduğu dönemde, veri yükleme performansı tek bir impala için 60 MB / sn'den tek bir platform için 100 MB / sn'ye değişti. Performans: Bir sitedeki tipik bir iş senaryosunda, Spark + CarbonData'nın sorgu performansı, 20 eşzamanlı sorgu altında Impala + parke'nin iki katından fazladır.

    Aynı zamanda aşağıdaki problemler çözüldü:

  • Hadoop küme kaynak paylaşım sorunları. Impala kaynakları, Yarn birleşik kaynak planlaması aracılığıyla yönetilemez. Spark + CarbonData, Yarn birleşik kaynak planlama yönetimi aracılığıyla Spark ve Hive gibi diğer bileşenlerle dinamik kaynak paylaşımı sağlayabilir.
  • Hadoop küme genişletme sorunu, Impala daha önce yalnızca yüz makineyi kullanabilir ve şimdi Spark + CarbonData binlerce düğümden oluşan bir kümeye ulaşabilir.
  • Uygulama sırasında dikkat edilecek noktalar:

  • Veri yükleme, yüklemek için CarbonData'nın yerel sıralama yöntemini kullanır.Büyük kümeler tarafından oluşturulan çok sayıda küçük dosya sorununu önlemek için, veri yükleme için yalnızca birkaç makine belirlenir.Ayrıca, her seferinde az miktarda veri içeren tablolar için tablo düzeyinde sıkıştırma belirtilebilir. Yükleme sırasında oluşturulan küçük dosyaları birleştirin.
  • İşletmenin sorgu özelliklerine göre, sık sorgulanan ve filtrelenen alanları veri tablosunun sıralama sütun özelliği (telekomünikasyon işletmesi tarafından sıkça sorgulanan kullanıcı numarası vb.) Olarak ayarlayın ve sıralama sütununun alan sırasını öncelikle alanın sorgu sıklığına göre ayarlayın. , Sorgu sıklığı çok farklı değilse, sorgu performansını artırmak için bunları alan farklı değerine göre yüksekten düşüğe doğru sıralayın.
  • Blok boyutunu ayarlamak için bir veri tablosu oluşturun.Tek bir tablonun veri dosyası blok boyutu TABLEPROPERTIES ile tanımlanabilir.Birim MB'dir ve varsayılan değer 1024MB'dir. Bu, gerçek veri tablosunda her seferinde yüklenen veri miktarına bağlıdır ve pratik deneyimimize göre: blok boyutunu genellikle küçük veri hacimli tablolar için 256 MB ve daha büyük veri hacimli tablolar için 512 MB olarak ayarlamanız önerilir.
  • Sorgu performansının optimizasyonu, iş sorgusunun özellikleriyle birleştirilebilir ve yüksek frekanslı alanlar için sorgu performansını iyileştirmek için bloomfilter ve diğer veri haritaları oluşturabilir.
  • Spark ile ilgili bazı parametre ayarları da vardır.Veri yükleme ve sorgulama için önce SparkUI ile performans darboğaz noktalarını analiz edin ve ilgili parametreleri hedeflenen bir şekilde ayarlayın. Burada tek tek tanıtılmamaktadır. Performans ayarının teknik bir ayrıntı olduğunu unutmayın. Ayar, hedeflenen bir şekilde ayarlanmalıdır. Bir seferde yalnızca bir veya birkaç ilgili parametreyi ayarlayın. Efekti gördükten sonra, etkili olmazsa yeniden ayarlayın. Aynı anda çok fazla parametreyi ayarlamamayı unutmayın.
  • Göğüslerinde bu marka olan Alman askerlerinin durumu sıradan değil, subaylar onu görünce korkuyor, önce Sovyet ordusu onları öldürecek.
    önceki
    1970'lerde Çin ordusu nasıldı? Askeri şarkılar insanların hatırlamasını sağlar, askeri üniformalar toplamaya değer
    Sonraki
    "Sıkmayın! Kendinizi tek tek yavaşça çevirin!"
    Telif hakkı almak zor! NetEase Cloud Music griye döndü: Jay Chou ve diğerlerinin tüm şarkıları raflardan kaldırıldı!
    Audi: Arabalar sinema salonlarını nasıl öldürür? CES 2019
    Bell: Nexus uçak yeniliği, gelecekteki seyahat "nihai formu" olan Tesla'yı geride bıraktı? CES 2019
    Bu sefer sorun biraz büyük, Yu Minhong hareketsiz oturamaz!
    2018'de Çin'in beslenme ve sağlık ürünleri endüstrisinin piyasa analizi: Pazar ölçeği genişlemeye devam ediyor ve yaşlıların tüketimi ülkenin yarısını oluşturuyor
    Mercedes-Benz: Yeni CLA ile karşılaştırıldığında bu "iki taşımalı" konsept otomobil daha ilginç CES 2019
    2018 Çin-ABD Unicorn Farkı Sektör Analizi
    Günlük blog | Geliştirmeden teste yedi yıl, test stratejisinden test mimarisine geçtim
    Sivil havacılık ekipmanı endüstrisinin 2018'deki gelişme durumunun ve pazar eğiliminin analizi Entegrasyonu güçlendirmek ve araştırma ve geliştirmede başarılı olmak, havadaki ekipmanın gelecekteki eğ
    Kuzey Kutbu'nda 11 Alman askeri unutuldu, kutup ayılarını yemeksiz avladı ve Müttefikler tarafından kurtarıldı
    Dawu İlçe Savcılığı, "hizmet için listelenen" savcılar bu yıl yenilik ve gelişmeyi tehlikeye atan 58 suçluyu tutukladı
    To Top