Zephyrnet Logosu

Amazon, daha yüksek ölçeklenebilirlik ve performans için Amazon EMR ile yüksek hacimli mali mutabakat sürecini nasıl optimize etti? Amazon Web Hizmetleri

Tarih:

Hesap mutabakatı, mali tabloların eksiksizliğini ve doğruluğunu sağlamak için önemli bir adımdır. Özellikle şirketlerin uzlaşması gerekiyor bilanço Önemli veya önemli yanlışlıklar içerebilecek hesaplar. Muhasebeciler, hesapların defteri kebirindeki her hesabı inceler ve listelenen bakiyenin tam ve doğru olduğunu doğrular. Tutarsızlıklar bulunduğunda, muhasebeciler araştırır ve uygun düzeltici önlemleri alır.

Amazon'un FinTech organizasyonunun bir parçası olarak, Amazon'daki dahili muhasebe ekiplerine hesap mutabakatları yapma yetkisi veren bir yazılım platformu sunuyoruz. Mutabakat sürecini optimize etmek için bu kullanıcılar, isteğe bağlı olarak ölçeklendirme yeteneğinin yanı sıra, birkaç MB'den 100 GB'a kadar değişen değişken dosya boyutlarını işleme becerisine sahip yüksek performanslı dönüşüme ihtiyaç duyar. Veriyi tek bir makineye sığdırmak veya tek bir programla makul bir zaman diliminde işlemek her zaman mümkün olmuyor. Bu hesaplamanın, programlama mantığı ile temel ayrıntıların (veri dağıtımı, hata toleransı ve planlama) ayrılabileceği pratik hizmetler sağlayacak kadar hızlı yapılması gerekir.

Bu eşzamanlı hesaplamaları, dağıtılmış veri işleme çözümlerini kullanarak, bir veri kümesinin öğe grupları genelinde aynı işleve sahip birden fazla makinede veya iş parçacığı üzerinde gerçekleştirebiliriz. Bu bizi AWS hizmetleri tarafından desteklenen mutabakat hizmetimizi yeniden keşfetmeye teşvik etti: Amazon EMR'si ve Apache Spark dağıtılmış işleme çerçevesi kullanan PyKıvılcım. Bu hizmet, kullanıcıların 100 milyona kadar işlem içeren 100 GB'ın üzerindeki dosyaları 30 dakikadan kısa sürede işlemesine olanak tanır. Mutabakat hizmeti, veri işleme için bir güç merkezi haline geldi ve artık kullanıcılar, aşağıdakiler gibi çeşitli işlemleri sorunsuz bir şekilde gerçekleştirebiliyor: Pivot, JOIN (Excel DÜŞEYARA işlemi gibi), aritmetik operasyonlar ve Daha, geniş veri kümelerini uzlaştırmak için çok yönlü ve etkili bir çözüm sağlar. Bu geliştirme, dağıtılmış veri işleme çözümlerinin benimsenmesiyle elde edilen ölçeklenebilirlik ve hızın bir kanıtıdır.

Bu yazıda, yüksek hacimli bir mali mutabakat sürecini yürütmemize olanak tanıyan, yüksek oranda erişilebilir ve ölçeklenebilir bir sistem oluşturmak için Amazon EMR'yi nasıl entegre ettiğimizi açıklıyoruz.

Geçiş öncesi mimari

Aşağıdaki diyagram önceki mimarimizi göstermektedir.

Eski hizmetimiz şununla oluşturuldu: Amazon Elastik Konteyner Hizmeti (Amazon ECS) açık AWS Fargate. Verileri Python kullanarak sıralı olarak işledik. Ancak paralel işleme yeteneğinin olmaması nedeniyle, daha büyük veri kümelerini desteklemek için küme boyutunu sıklıkla dikey olarak artırmak zorunda kaldık. Bağlam açısından, 5 işlem içeren 50 GB verinin işlenmesi yaklaşık 3 saat sürdü. Bu hizmet, yatay olarak, gelen mesajları yoklayan beş ECS örneğine ölçeklenecek şekilde yapılandırıldı. Amazon Basit Kuyruk Hizmeti (Amazon SQS), dönüşüm isteklerini besledi. Yatay ölçeklendirmeye izin vermek için her örnek 4 vCPU ve 30 GB bellekle yapılandırıldı. Ancak süreç sırayla gerçekleştiği ve veri yığınlarını topladığımız için performans kapasitesini genişletemedik. Amazon Basit Depolama Hizmeti (Amazon S3) işleme için. Örneğin, iki dosyanın birleştirileceği bir DÜŞEYARA işlemi, çıktıyı elde etmek için her iki dosyanın da bellek yığınında yığın parça okunmasını gerektiriyordu. Bu durum kullanıcılar için bir engel haline geldi çünkü veri setlerini işlemek için uzun süre beklemek zorunda kalıyorlardı.

Yeniden mimari ve modernizasyon çalışmalarımızın bir parçası olarak aşağıdakileri başarmak istedik:

  • Yüksek kullanılabilirlik – Veri işleme kümeleri yüksek oranda erişilebilir olmalı ve üç adet 9 kullanılabilirlik (%99.9) sağlamalıdır.
  • çıktı – Hizmet günde 1,500 çalıştırmayı gerçekleştirmelidir
  • Gecikme – 100 GB veriyi 30 dakika içerisinde işleyebilmelidir
  • heterojenite – Küme, birkaç MB'tan yüzlerce GB'a kadar değişen dosyalarla çok çeşitli iş yüklerini destekleyebilmelidir
  • Sorgu eşzamanlılığı – Uygulama, minimum 10 derece eşzamanlılığı destekleme becerisini gerektirir
  • İşlerin güvenilirliği ve veri tutarlılığı – Hizmet Seviyesi Anlaşmalarının (SLA'lar) ihlal edilmesini önlemek için işlerin güvenilir ve tutarlı bir şekilde yürütülmesi gerekir
  • Uygun maliyetli ve ölçeklenebilir – İş yüküne göre ölçeklenebilir olmalı, bu da onu uygun maliyetli hale getirmelidir
  • Güvenlik ve uyumluluk – Verilerin hassasiyeti göz önüne alındığında, ayrıntılı erişim kontrolünü ve uygun güvenlik uygulamalarını desteklemesi gerekir
  • İzleme – Çözüm, kümelerin ve işlerin uçtan uca izlenmesini sağlamalıdır

Neden Amazon EMR

Amazon EMR, petabayt ölçekli veri işleme, etkileşimli analiz ve makine öğrenimi (ML) için aşağıdaki gibi açık kaynak çerçevelerini kullanan sektör lideri bulut büyük veri çözümüdür: Apache Spark, Apaçi Kovanı, ve çabuk. Bu çerçeveler ve ilgili açık kaynaklı projelerle verileri analiz amaçları ve BI iş yükleri için işleyebilirsiniz. Amazon EMR, büyük miktarda veriyi Amazon S3 ve Amazon SXNUMX gibi diğer AWS veri depolarına ve veritabanlarına dönüştürmenize ve bunların içine ve dışına taşımanıza olanak tanır. Amazon DinamoDB.

Amazon EMR'nin kayda değer bir avantajı, PySpark ile paralel işlemeyi etkili bir şekilde kullanmasıdır ve bu, geleneksel sıralı Python koduna göre önemli bir gelişmeye işaret etmektedir. Bu yenilikçi yaklaşım, Apache Spark kümelerinin dağıtımını ve ölçeklendirilmesini kolaylaştırarak büyük veri kümelerinde verimli paralelleştirmeye olanak tanır. Dağıtılmış bilgi işlem altyapısı yalnızca performansı artırmakla kalmıyor, aynı zamanda büyük miktarda verinin benzeri görülmemiş hızlarda işlenmesine de olanak tanıyor. Kütüphanelerle donatılmış PySpark, Excel benzeri işlemleri kolaylaştırır. Veri ÇerçeveleriDataFrames'in daha üst düzey soyutlaması, karmaşık veri işlemlerini basitleştirerek kod karmaşıklığını azaltır. Otomatik küme provizyonu, dinamik kaynak tahsisi ve diğer AWS hizmetleriyle entegrasyonla birlikte Amazon EMR, toplu işlemeden makine öğrenimine kadar çeşitli iş yüklerine uygun, çok yönlü bir çözüm olduğunu kanıtlıyor. PySpark ve Amazon EMR'deki doğal hata toleransı, düğüm arızaları durumunda bile sağlamlığı teşvik ederek onu AWS'de paralel veri işleme için ölçeklenebilir, uygun maliyetli ve yüksek performanslı bir seçim haline getirir.

Amazon EMR, çeşitli ihtiyaçları karşılamak için çeşitli dağıtım seçenekleri sunarak yeteneklerini temel özelliklerin ötesine taşıyor. İster EC2'de Amazon EMR, EKS'de Amazon EMR, Amazon EMR Sunucusuzya da AWS Outpost'larında Amazon EMR, yaklaşımınızı belirli gereksinimlere göre uyarlayabilirsiniz. Spark işleri için sunucusuz bir ortam arayanlar için entegrasyon AWS Tutkal aynı zamanda geçerli bir seçenektir. Amazon EMR, Spark dahil çeşitli açık kaynaklı çerçeveleri desteklemenin yanı sıra dağıtım modlarının seçiminde esneklik sağlar. Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) bulut sunucusu türleri, ölçeklendirme mekanizmaları ve çok sayıda maliyet tasarrufu sağlayan optimizasyon tekniği.

Amazon EMR, güçlü büyük veri çözümleri arayan kuruluşlara benzersiz yetenekler sunan, bulutta dinamik bir güç olarak duruyor. Sorunsuz entegrasyonu, güçlü özellikleri ve uyarlanabilirliği, onu AWS'de veri analitiği ve makine öğreniminin karmaşıklıklarında gezinmek için vazgeçilmez bir araç haline getiriyor.

Yeniden tasarlanan mimari

Aşağıdaki diyagram yeniden tasarlanan mimarimizi göstermektedir.

Çözüm, müşterilerin işlem için S3 veri kümesi konumunun yanı sıra işlem kümesini tanımlayarak dönüşüm yapılandırmalarını gönderebildiği bir API sözleşmesi kapsamında çalışır. İstek, Amazon SQS aracılığıyla kuyruğa alınır ve ardından bir Lambda işlevi aracılığıyla Amazon EMR'ye yönlendirilir. Bu süreç, özel bir EMR kümesinde Spark çerçevesinin uygulanması için bir Amazon EMR adımının oluşturulmasını başlatır. Amazon EMR, uzun süre çalışan bir kümenin ömrü boyunca sınırsız sayıda adımı barındırsa da aynı anda yalnızca 256 adım çalışabilir veya beklemede olabilir. Optimum paralelleştirme için adım eşzamanlılığı 10'a ayarlanarak 10 adımın eş zamanlı çalışmasına izin verilir. İsteklerin başarısız olması durumunda Amazon SQS ölü mektup kuyruğu (DLQ) olayı korur. Spark, verimli bir sorgu planı için Excel benzeri işlemleri PySpark koduna çevirerek isteği işler. Dayanıklı DataFrames, giriş, çıkış ve ara verileri bellekte depolayarak işlem hızını optimize eder, disk G/Ç maliyetini azaltır, iş yükü performansını artırır ve son çıktıyı belirtilen Amazon S3 konumuna teslim eder.

SLA'mızı iki boyutta tanımlıyoruz: gecikme ve aktarım hızı. Gecikme, deterministik bir veri kümesi boyutuna karşı bir işi gerçekleştirmek için geçen süre ve veri kümesi üzerinde gerçekleştirilen işlem sayısı olarak tanımlanır. Verim, hizmetin bir işin gecikme SLA'sını ihlal etmeden gerçekleştirebileceği maksimum eşzamanlı iş sayısı olarak tanımlanır. Hizmetin genel ölçeklenebilirlik SLA'sı, esnek bilgi işlem kaynaklarının yatay ölçeklendirilmesi ile bireysel sunucuların dikey ölçeklendirilmesi arasındaki dengeye bağlıdır.

Minimum gecikme süresi ve yüksek performansla günde 1,500 işlem çalıştırmamız gerektiğinden, değişken dosya boyutlarının işlenmesini desteklemek için Amazon EMR'yi EC2 dağıtım modunda yönetilen ölçeklendirmenin etkinleştirilmesiyle entegre etmeyi tercih ettik.

EMR kümesi yapılandırması birçok farklı seçim sunar:

  • EMR düğüm türleri – Birincil, çekirdek veya görev düğümleri
  • Örnek satın alma seçenekleri – İsteğe Bağlı Bulut Sunucuları, Rezerve Bulut Sunucuları veya Spot Bulut Sunucuları
  • Yapılandırma seçenekleri – EMR bulut sunucusu filosu veya tek tip bulut sunucusu grubu
  • Ölçeklendirme seçenekleri - Otomatik Ölçeklendirme veya Amazon EMR tarafından yönetilen ölçeklendirme

Değişken iş yükümüze bağlı olarak bir EMR bulut sunucusu filosu yapılandırdık (en iyi uygulamalar için bkz. Güvenilirlik). Ayrıca çekirdek ve görev düğümlerini ölçeklendirmek için Amazon EMR yönetilen ölçeklendirmeyi kullanmaya karar verdik (ölçeklendirme senaryoları için bkz. Düğüm tahsisi senaryoları). Son olarak, hafıza açısından optimize edilmiş olanı seçtik AWS Graviton kadar sağlayan örnekler Spark iş yükleri için %30 daha düşük maliyet ve %15'e kadar daha iyi performans.

Aşağıdaki kod, küme yapılandırmamızın anlık görüntüsünü sağlar:

Concurrent steps:10

EMR Managed Scaling:
minimumCapacityUnits: 64
maximumCapacityUnits: 512
maximumOnDemandCapacityUnits: 512
maximumCoreCapacityUnits: 512

Master Instance Fleet:
r6g.xlarge
- 4 vCore, 30.5 GiB memory, EBS only storage
- EBS Storage:250 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 1 units
r6g.2xlarge
- 8 vCore, 61 GiB memory, EBS only storage
- EBS Storage:250 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 1 units

Core Instance Fleet:
r6g.2xlarge
- 8 vCore, 61 GiB memory, EBS only storage
- EBS Storage:100 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 8 units
r6g.4xlarge
- 16 vCore, 122 GiB memory, EBS only storage
- EBS Storage:100 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 16 units

Task Instances:
r6g.2xlarge
- 8 vCore, 61 GiB memory, EBS only storage
- EBS Storage:100 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 8 units
r6g.4xlarge
- 16 vCore, 122 GiB memory, EBS only storage
- EBS Storage:100 GiB
- Maximum Spot price: 100 % of On-demand price
- Each instance counts as 16 units

Performans

Amazon EMR'ye geçişimiz sayesinde, 273 B kadar düşük bir değerden 88.5 GB kadar yüksek bir veri kümesine kadar çeşitli veri kümelerini işleyebilen bir sistem performansına ulaşmayı başardık. p99 491 saniye (yaklaşık 8 dakika).

Aşağıdaki şekil işlenen dosya boyutlarının çeşitliliğini göstermektedir.

Aşağıdaki şekil gecikmemizi göstermektedir.

Sıralı işlemeyle karşılaştırmak için, 53 milyon kayıt içeren iki veri kümesini aldık ve diğer 49 Excel benzeri işlemin yanı sıra birbirlerine karşı bir DÜŞEYARA işlemi yürüttük. Bu işlemin yeni hizmette işlenmesi 26 dakika sürerken eski hizmette bu süre 5 gündü. Bu iyileştirme, performans açısından önceki mimariye göre neredeyse 300 kat daha fazla.

Hususlar

Bu çözümü değerlendirirken aşağıdakileri aklınızda bulundurun:

  • Kümeleri doğru boyutlandırma – Amazon EMR yeniden boyutlandırılabilir olsa da kümelerin doğru boyutlandırılması önemlidir. Doğru boyutlandırma, küçük boyutluysa kümenin yavaş olmasını veya kümenin büyük boyutlu olması durumunda daha yüksek maliyetleri azaltır. Bu sorunları önceden tahmin etmek için iş yükleri için gerekli olacak düğüm sayısını ve türünü hesaplayabilirsiniz.
  • Paralel adımlar – Adımları paralel olarak çalıştırmak, daha gelişmiş iş yüklerini çalıştırmanıza, küme kaynağı kullanımını artırmanıza ve iş yükünüzü tamamlamak için gereken süreyi azaltmanıza olanak tanır. Aynı anda çalıştırılmasına izin verilen adım sayısı yapılandırılabilir ve küme başlatıldığında ve küme başlatıldıktan sonra herhangi bir zamanda ayarlanabilir. Tek bir paylaşılan kümede birden fazla iş çalıştırıldığında iş başına CPU/bellek kullanımını dikkate almanız ve optimize etmeniz gerekir.
  • İş tabanlı geçici EMR kümeleri – Mümkünse, üstün izolasyon sağlayan ve her görevin kendi özel ortamında çalıştığını doğrulayan iş tabanlı bir geçici EMR kümesinin kullanılması önerilir. Bu yaklaşım, kaynak kullanımını optimize eder, işler arasındaki etkileşimin önlenmesine yardımcı olur ve genel performansı ve güvenilirliği artırır. Geçici yapı, verimli ölçeklendirmeye olanak tanıyarak çeşitli veri işleme ihtiyaçları için sağlam ve yalıtılmış bir çözüm sunar.
  • EMR Sunucusuz – Kümelerin yönetimini ve çalışmasını üstlenmek istemiyorsanız EMR Sunucusuz ideal seçimdir. EMR Serverless'ta bulunan açık kaynaklı çerçeveleri kullanarak uygulamaları zahmetsizce çalıştırmanıza olanak tanıyarak basit ve sorunsuz bir deneyim sunar.
  • Amazon EKS'de EMR – EKS'de Amazon EMR, daha hızlı başlatma süreleri ve bilgi işlem kapasitesi zorluklarını çözen iyileştirilmiş ölçeklenebilirlik gibi farklı avantajlar sunar; bu, özellikle Graviton ve Spot Bulut Sunucusu kullanıcıları için faydalıdır. Daha geniş bir bilgi işlem türü yelpazesinin dahil edilmesi, maliyet verimliliğini artırarak özel kaynak tahsisine olanak tanır. Ayrıca Multi-AZ desteği daha fazla kullanılabilirlik sağlar. Bu ilgi çekici özellikler, çeşitli bilgi işlem senaryolarında gelişmiş performans, maliyet optimizasyonu ve güvenilirlik ile büyük veri iş yüklerini yönetmek için sağlam bir çözüm sağlar.

Sonuç

Bu yazıda Amazon'un, daha yüksek ölçeklenebilirlik ve performans için Amazon EMR ile yüksek hacimli mali mutabakat sürecini nasıl optimize ettiğini açıkladık. Ek istekleri veya veri kümelerini işlemek için dikey ölçeklendirmeye bağımlı olan monolitik bir uygulamanız varsa bunu Apache Spark gibi dağıtılmış bir işleme çerçevesine taşımak ve bilgi işlem için Amazon EMR gibi yönetilen bir hizmeti seçmek, çalışma süresini azaltarak teslimatınızı düşürmenize yardımcı olabilir. SLA ayrıca Toplam Sahip Olma Maliyetinin (TCO) azaltılmasına da yardımcı olabilir.

Bu özel kullanım durumu için Amazon EMR'yi benimserken, veri inovasyonu yolculuğunuzda daha fazla olasılığı keşfetmenizi teşvik ediyoruz. Benzersiz kullanım durumunuza göre uyarlanmış en iyi AWS hizmetini keşfetmek için AWS Glue'yu EMR Serverless veya EKS'de Amazon EMR gibi diğer dinamik Amazon EMR dağıtım seçenekleriyle birlikte değerlendirmeyi düşünün. Veri inovasyonu yolculuğunun geleceği, daha fazla keşfedilecek heyecan verici olanaklara ve gelişmelere ev sahipliği yapıyor.


Yazarlar Hakkında

Jeeshan Khetrapal Amazon'da Kıdemli Yazılım Geliştirme Mühendisidir ve burada şirketlerin BT genel kontrollerinden, finansal raporlamasından ve yönetişim, risk ve uyumluluk denetleyiciliğinden sorumlu bulut bilişim sunucusuz mimarilerini temel alan fintech ürünleri geliştirmektedir.

sakti mishra AWS'de Baş Çözüm Mimarıdır ve burada müşterilerin veri mimarilerini modernleştirmelerine ve veri güvenliği, erişilebilirlik, yönetişim ve daha fazlasını içeren uçtan uca veri stratejilerini tanımlamalarına yardımcı olur. Aynı zamanda kitabın yazarıdır Amazon EMR ile Büyük Veri Analitiğini Basitleştirin. Sakti, iş dışında yeni teknolojiler öğrenmekten, film izlemekten ve ailesiyle birlikte yerleri ziyaret etmekten hoşlanıyor.

spot_img

En Son İstihbarat

spot_img