Chcę zmierzyć przepustowość w każdym z datanodów, mierząc czas potrzebny do wykonania każdej operacji odczytu/zapisu. To bardzo mylące, aby przeczytać milion funkcji i dowiedzieć się, gdzie to się dzieje. Czy ktoś mógłby wymienić serię wywołań wykonanych podczas odczytu/zapisu bloku danych? używam wersji 1.0.1. Alternatywnie, jeśli istnieje już interfejs API, który mierzy to w datanodzie, mógłbym użyć tych informacji.Mierzenie przepustowości w trybie datanode
Odpowiedz
Ważne klasy do badania w celu pomiaru wydajności to FSDataOutputStream
dla zapisów i FSDataInputStream
dla odczytów.
Plik Czytaj: Pierwszą rzeczą, że węzeł nie czytając plik jest wywołanie open()
na obiekcie FileSystem
. W tym momencie wiesz, że ten węzeł wkrótce zacznie czytać i możesz umieścić kod po powrocie tego połączenia, aby przygotować się do pomiarów. Wywołanie open()
na HDFS tworzy instancję DistributedFileSystem
, która komunikuje się z NameNode w celu zbierania lokalizacji bloków (posortowanych zgodnie z bliskością węzła wywołującego). Wreszcie obiekt DistributedFileSystem
zwraca FSDataInputStream
("widzi" czytanie pliku), który z kolei opakowuje DFSInputStream
("widzi" bloki odczytu, obsługuje awarie). Twoje pomiary będą obejmowały zakres read()
i close()
połączenia na FSDataInputStream
.
Zapis pliku: Węzeł wezwie create()
na FileSystem
. W tym momencie wykonywane są różne sprawdzenia, które obejmują uprawnienia do plików, dostępność itp., Ale po pomyślnym zakończeniu zwraca obiekt FSDataOutputStream
, który owija kod DFSOutputStream
. Ta sama koncepcja ma zastosowanie, gdy widzi się ciągły zapis, drugi obsługuje spójność współczynnika replikacji (to znaczy jeden zapis = trzy zapisy) i niepowodzenie. Podobnie jak w przypadku odczytu, pomiary będą obejmowały zakres write()
i close()
wywołanie na FSDataInputStream
.
Aby zrobić to globalnie dla wszystkich węzłów w klastrze, należy zastąpić te metody jako część dystrybucji Hadoop, którą udostępniasz w klastrze.
Nie wyjaśnia sposobu agregowania statystyk dla każdego węzła danych. Nie można oczekiwać, że węzły klienta będą profilować poszczególne węzły danych i wysyłać informacje do węzła nazwy. W każdym razie, odkąd moja potrzeba minęła, przyjmuję tę odpowiedź –
- 1. Mierzenie wydajności klientów
- 2. Datanode braku w Hadoop na pojedynczej maszynie
- 3. Mierzenie środowiska wykonawczego kodu C++?
- 4. Ograniczanie przepustowości w języku Python
- 5. Mierzenie czasu wykonania OpenCL jądra
- 6. Mierzenie czasu w jądrze Linuksa 2.6
- 7. Wideo HTML5: wykrywanie przepustowości
- 8. Uzyskiwanie statystyk przepustowości połączenia
- 9. Przepustowość przepustowości połączenia SSL
- 10. Ograniczanie przepustowości http get
- 11. w jaki sposób hdfs wybiera datanode do przechowywania
- 12. ograniczenie przepustowości sieci procesu java
- 13. Czy WebSockets ma limit przepustowości?
- 14. Jak monitorować zużycie przepustowości użytkownika w PHP
- 15. Jakiej przepustowości sieci powinienem oczekiwać w GCE?
- 16. Ograniczanie przepustowości za pomocą Twisted
- 17. Javascript: mierzenie czasu wykonania kodu online
- 18. Ograniczanie przepustowości za pomocą netemu?
- 19. Mierzenie krótkich odstępów czasu w C na Ubuntu/VMware
- 20. Jak monitorować/obliczać wykorzystanie przepustowości serwera NodeJS?
- 21. Rozgrzewanie aplikacji Java o wysokiej przepustowości
- 22. Sprawdź/zaloguj ile przepustowości PhantomJS/CasperJS użył
- 23. YotubePlayerSupportFragment w trybie pełnoekranowym w trybie poziomym
- 24. Jak uzyskać prędkość bieżącej przepustowości (pobierania)?
- 25. Przyrostowe budowanie tablicy numpy i mierzenie użycia pamięci
- 26. Resetowanie w trybie w trybie Android podczas zmiany aktywności
- 27. Podświetlanie składni w trybie Lua w trybie Emacs nie działa
- 28. Klawiatura otwiera się w trybie pełnoekranowym w trybie poziomym.
- 29. Powershell w trybie NonInteractive
- 30. AVSpeechSynthesizer w trybie tła
Odnosząc się do komentarza dotyczącego nagród: jeśli umieścisz czarną listę w węźle, nie będzie ona już uczestniczyć w klastrze, więc przepustowość nigdy się nie zwiększy. – likeitlikeit
Hej Bug Catcher, jakieś przemyślenia na temat mojej odpowiedzi poniżej? – Engineiro
@ likeitlikeit Zrobiłem coś na linii istniejącej polityki na uderzenia serca: daj jej trzy szanse, a jeśli nadal jest źle, to zaznacz to na czarnej liście. Nieprzeznaczone do praktycznego użytku. W każdym razie –