[BIG DATA] GLOSARIUSZ (IV) : PRZECHOWYWANIE

Operacje przetwarzania danych na dużą skalę uzyskują dostęp do danych w sposób, w jaki tradycyjne systemy plików nie są przeznaczone. Dane zwykle są zapisywane i odczytywane w dużych partiach, wiele megabajtów naraz. Wydajność ma wyższy priorytet niż funkcje takie jak katalogi, które pomagają zorganizować informacje w sposób przyjazny dla użytkownika. Ogromny rozmiar danych oznacza również, że musi być przechowywany na wielu komputerach w sposób rozproszony. W rezultacie pojawiło się kilka wyspecjalizowanych technologii, które obsługują te potrzeby i wymieniają niektóre funkcje systemów plików ogólnego przeznaczenia wymagane przez standardy POSIX.

S3

Usługa Amazon S3 umożliwia przechowywanie dużych porcji danych w usłudze online z interfejsem, który ułatwia pobieranie danych za pośrednictwem standardowego protokołu internetowego HTTP. Jednym ze sposobów patrzenia na to jest system plików, w którym brakuje niektórych funkcji, takich jak dołączanie, przepisywanie lub zmiana nazwy plików i prawdziwych drzew katalogów. Można go również zobaczyć jako bazę danych klucz / wartość dostępną jako usługa internetowa i zoptymalizowaną do przechowywania dużych ilości danych w każdej wartości. Aby dać konkretny przykład, można przechowywać dane obrazu .png w systemie przy użyciu interfejsu API dostarczonego przez Amazon. Najpierw trzeba utworzyć zasobnik, który jest trochę jak globalny katalog najwyższego poziomu, który jest własnością jednego użytkownika i który musi mieć unikalną nazwę. Następnie podasz nazwę zasobu, nazwę pliku (który może zawierać ukośniki, a więc może wyglądać jak plik w podkatalogu), same dane i wszelkie metadane do utworzenia obiektu. Jeśli określono, że obiekt był publicznie dostępny, można uzyskać do niego dostęp za pośrednictwem dowolnej przeglądarki internetowej pod adresem: http://yourbucket.s3.amazonaws.com/your/ file / name.png. Jeśli podasz odpowiedni typ zawartości w metadanych, zostanie wyświetlony jako obraz w przeglądarce. Bardzo często używam S3, ponieważ jest tani, dobrze udokumentowany, niezawodny, szybki, radzi sobie z dużą ilością ruchu i jest bardzo łatwo dostępny z niemal każdego środowiska, dzięki obsłudze protokołu HTTP dla odczytów. W niektórych aplikacjach używałem go nawet jako surowej bazy danych, gdy nie potrzebowałem możliwości uruchamiania zapytań i przechowywano tylko stosunkowo małą liczbę dużych obiektów danych. Korzysta także z inwestycji Amazon w interfejsy użytkownika i interfejsy API, które zachęciły do ​​rozwoju ekosystemu narzędzi.

Hadoop Distributed File System

Rozproszony system plików Hadoop (HDFS) został zaprojektowany do obsługi aplikacji takich jak zadania  MapReduce, które czytają i zapisują duże ilości danych w partiach, zamiast losowego dostępu do wielu małych plików. Porzuca niektóre wymagania POSIX, aby to osiągnąć, ale w odróżnieniu od S3 obsługuje zmiany nazw i przenoszenie plików wraz z prawdziwymi katalogami. Możesz zapisywać do pliku tylko raz w czasie tworzenia, aby ułatwić obsługę problemów z koherencją podczas przechowywania danych w klastrze komputerów, tak aby buforowane kopie pliku mogły być odczytane z dowolnego z komputerów, które go mają, bez konieczności sprawdzenia, czy zawartość się zmieniła. Oprogramowanie klienckie przechowuje zapisane dane w tymczasowym pliku lokalnym, dopóki nie wystarczy do wypełnienia pełnego bloku HDFS. Wszystkie pliki są przechowywane w tych blokach, z domyślnym rozmiarem 64 MB. Gdy wystarczająca ilość danych zostanie zbuforowana lub operacja zapisu zostanie zamknięta, lokalne dane są wysyłane przez sieć i zapisywane na wielu serwerach w klastrze, aby zapewnić, że nie zostaną utracone, jeśli wystąpi awaria sprzętu. Aby uprościć architekturę, HDFS używa pojedynczego węzła nazwy, aby śledzić, które pliki są przechowywane gdzie. Oznacza to, że istnieje jeden punkt awarii i potencjalne wąskie gardło wydajności. W typowych aplikacjach do przetwarzania danych metadane, za które jest odpowiedzialny, są małe i często nie są dostępne, więc w praktyce zwykle nie powoduje to problemów z wydajnością. Ręczna interwencja potrzebna do awarii węzła nazwy może być jednak problemem dla opiekunów systemu.

Hadoop Distributed File System

Rozproszony system plików Hadoop (HDFS) został zaprojektowany do obsługi aplikacji takich jak zadania MapReduce, które odczytują i zapisują duże ilości danych w partiach, a nie bardziej losowo uzyskują dostęp do wielu małych plików. Porzuca niektóre wymagania POSIX, aby to osiągnąć, ale w odróżnieniu od S3 obsługuje zmiany nazw i przenoszenie plików wraz z prawdziwymi katalogami. Możesz zapisywać do pliku tylko raz w czasie tworzenia, aby ułatwić obsługę problemów z koherencją podczas przechowywania danych w klastrze komputerów, tak aby buforowane kopie pliku mogły być odczytane z dowolnego z komputerów, które go mają, bez konieczności sprawdzenia, czy zawartość się zmieniła. Oprogramowanie klienckie przechowuje zapisane dane w tymczasowym pliku lokalnym, dopóki nie wystarczy do wypełnienia pełnego bloku HDFS. Wszystkie pliki są przechowywane w tych blokach, z domyślnym rozmiarem 64 MB. Gdy wystarczająca ilość danych zostanie zbuforowana lub operacja zapisu zostanie zamknięta, lokalne dane są wysyłane przez sieć i zapisywane na wielu serwerach w klastrze, aby zapewnić, że nie zostaną utracone, jeśli wystąpi awaria sprzętu. Aby uprościć architekturę, HDFS używa pojedynczego węzła nazwy, aby śledzić, które pliki są przechowywane gdzie. Oznacza to, że istnieje jeden punkt awarii i potencjalne wąskie gardło wydajności. W typowych aplikacjach do przetwarzania danych metadane, za które jest odpowiedzialny, są małe i często nie są dostępne, więc w praktyce zwykle nie powoduje to problemów z wydajnością. Ręczna interwencja potrzebna do awarii węzła nazwy może być jednak problemem dla opiekunów systemu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *