Informacje dotyczące korzystania z usługi HDInsight w systemie Linux
Klastry usługi Azure HDInsight zapewniają platformę Apache Hadoop w znanym środowisku systemu Linux działającym w chmurze platformy Azure. W przypadku większości rzeczy powinna działać dokładnie tak samo jak każda inna instalacja platformy Hadoop-on-Linux. W tym dokumencie przedstawiono konkretne różnice, o których należy pamiętać.
Wymagania wstępne
Wiele kroków opisanych w tym dokumencie używa następujących narzędzi, które mogą być konieczne do zainstalowania w systemie.
- cURL — służy do komunikowania się z usługami internetowymi.
- jq, procesor JSON wiersza polecenia. Zobacz: https://stedolan.github.io/jq/.
- Interfejs wiersza polecenia platformy Azure — służy do zdalnego zarządzania usługami platformy Azure.
- Klient SSH. Aby uzyskać więcej informacji, zobacz Łączenie się z usługą HDInsight (Apache Hadoop) przy użyciu protokołu SSH.
Użytkownicy
O ile nie dołączono do domeny, usługa HDInsight powinna być traktowana jako system pojedynczego użytkownika . Pojedyncze konto użytkownika SSH jest tworzone przy użyciu klastra z uprawnieniami na poziomie administratora. Można utworzyć dodatkowe konta SSH, ale mają również dostęp administratora do klastra.
Przyłączona do domeny usługa HDInsight obsługuje wielu użytkowników i bardziej szczegółowe uprawnienia i ustawienia roli. Aby uzyskać więcej informacji, zobacz Zarządzanie przyłączonym do domeny klastrami usługi HDInsight.
Nazwy domen
W pełni kwalifikowana nazwa domeny (FQDN) używana podczas nawiązywania połączenia z klastrem z Internetu to CLUSTERNAME.azurehdinsight.net
lub CLUSTERNAME-ssh.azurehdinsight.net
(tylko dla protokołu SSH).
Wewnętrznie każdy węzeł w klastrze ma nazwę przypisaną podczas konfiguracji klastra. Aby znaleźć nazwy klastrów, zobacz stronę Hosty w internetowym interfejsie użytkownika systemu Ambari. Możesz również użyć następujących elementów, aby zwrócić listę hostów z interfejsu API REST systemu Ambari:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'
Zastąp ciąg CLUSTERNAME
nazwą klastra. Po wyświetleniu monitu wprowadź hasło dla konta administratora. To polecenie zwraca dokument JSON zawierający listę hostów w klastrze. jq służy do wyodrębniania host_name
wartości elementu dla każdego hosta.
Jeśli musisz znaleźć nazwę węzła dla określonej usługi, możesz wysłać zapytanie do narzędzia Ambari dla tego składnika. Aby na przykład znaleźć hosty dla węzła nazwy systemu plików HDFS, użyj następującego polecenia:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'
To polecenie zwraca dokument JSON opisujący usługę, a następnie jq pobiera tylko host_name
wartość dla hostów.
Zdalny dostęp do usług
Ambari (sieć Web) -
https://CLUSTERNAME.azurehdinsight.net
Uwierzytelnij się przy użyciu użytkownika i hasła administratora klastra, a następnie zaloguj się do systemu Ambari.
Uwierzytelnianie jest w postaci zwykłego tekstu — zawsze używaj protokołu HTTPS, aby upewnić się, że połączenie jest bezpieczne.
Ważne
Niektóre internetowe interfejsy użytkownika dostępne za pośrednictwem węzłów dostępu systemu Ambari przy użyciu wewnętrznej nazwy domeny. Nazwy domen wewnętrznych nie są publicznie dostępne za pośrednictwem Internetu. Podczas próby uzyskania dostępu do niektórych funkcji za pośrednictwem Internetu mogą pojawić się błędy "Nie znaleziono serwera".
Aby użyć pełnej funkcjonalności internetowego interfejsu użytkownika systemu Ambari, użyj tunelu SSH do serwera proxy ruchu internetowego do węzła głównego klastra. Zobacz Use SSH Tunneling to access Apache Ambari web UI, ResourceManager, JobHistory, NameNode, Oozie i innych internetowych interfejsów użytkownika
Ambari (REST) -
https://CLUSTERNAME.azurehdinsight.net/ambari
Uwaga
Uwierzytelnianie przy użyciu użytkownika i hasła administratora klastra.
Uwierzytelnianie jest w postaci zwykłego tekstu — zawsze używaj protokołu HTTPS, aby upewnić się, że połączenie jest bezpieczne.
WebHCat (Templeton) -
https://CLUSTERNAME.azurehdinsight.net/templeton
Uwaga
Uwierzytelnianie przy użyciu użytkownika i hasła administratora klastra.
Uwierzytelnianie jest w postaci zwykłego tekstu — zawsze używaj protokołu HTTPS, aby upewnić się, że połączenie jest bezpieczne.
SSH — CLUSTERNAME-ssh.azurehdinsight.net na porcie 22 lub 23. Port 22 służy do nawiązywania połączenia z podstawowym węzłem głównym, natomiast 23 jest używane do łączenia się z pomocniczym węzłem. Aby uzyskać więcej informacji na temat węzłów głównych, zobacz Dostępność i niezawodność klastrów Apache Hadoop w usłudze HDInsight.
Uwaga
Dostęp do węzłów głównych klastra można uzyskać tylko za pośrednictwem protokołu SSH z komputera klienckiego. Po nawiązaniu połączenia można uzyskać dostęp do węzłów procesu roboczego przy użyciu protokołu SSH z węzła głównego.
Aby uzyskać więcej informacji, zobacz dokument Porty używane przez usługi Apache Hadoop w usłudze HDInsight .
Lokalizacje plików
Pliki związane z usługą Hadoop można znaleźć w węzłach klastra pod adresem /usr/hdp
. Ten katalog zawiera następujące podkatalogi:
- 2.6.5.3009-43: Nazwa katalogu to wersja platformy Hadoop używana przez usługę HDInsight. Liczba w klastrze może być inna niż określona w tym miejscu.
- current: Ten katalog zawiera linki do podkatalogów w katalogu 2.6.5.3009-43 . Ten katalog istnieje, aby nie pamiętać numeru wersji.
Przykładowe dane i pliki JAR można znaleźć w rozproszonym systemie plików hadoop pod adresem /example
i /HdiSamples
.
HDFS, Azure Storage i Data Lake Storage
W większości dystrybucji hadoop dane są przechowywane w systemie plików HDFS. System plików HDFS jest wspierany przez magazyn lokalny na maszynach w klastrze. Korzystanie z magazynu lokalnego może być kosztowne w przypadku rozwiązania opartego na chmurze, w którym opłaty są naliczane co godzinę lub minutę dla zasobów obliczeniowych.
W przypadku korzystania z usługi HDInsight pliki danych są przechowywane w elastyczny i odporny sposób w chmurze przy użyciu usługi Azure Blob Storage i opcjonalnie usługi Azure Data Lake Storage Gen2. Te usługi zapewniają następujące korzyści:
- Tanie długoterminowe przechowywanie.
- Ułatwienia dostępu z usług zewnętrznych, takich jak witryny internetowe, narzędzia przekazywania/pobierania plików, różne zestawy SDK języka i przeglądarki internetowe.
- Duża pojemność plików i duży magazyn z możliwością dostosowania.
Aby uzyskać więcej informacji, zobacz Azure Blob Storage lub Azure Data Lake Storage Gen2.
W przypadku korzystania z usługi Azure Blob Storage lub Data Lake Storage Gen2 nie musisz wykonywać żadnych czynności specjalnych z usługi HDInsight, aby uzyskać dostęp do danych. Na przykład następujące polecenie wyświetla listę plików w folderze niezależnie od tego, czy są przechowywane w /example/data
usłudze Azure Storage, czy w usłudze Data Lake Storage:
hdfs dfs -ls /example/data
W usłudze HDInsight zasoby magazynu danych (Azure Blob Storage i Azure Data Lake Storage) są oddzielone od zasobów obliczeniowych. Klastry usługi HDInsight można tworzyć w celu wykonywania obliczeń zgodnie z potrzebami, a następnie usuwać klaster po zakończeniu pracy. Tymczasem przechowywanie plików danych w magazynie w chmurze jest bezpieczne, o ile są potrzebne.
Identyfikator URI i schemat
Niektóre polecenia mogą wymagać określenia schematu jako części identyfikatora URI podczas uzyskiwania dostępu do pliku. W przypadku korzystania z magazynu innego niżdefault (magazyn dodany jako "dodatkowy" magazyn do klastra) należy zawsze używać schematu jako części identyfikatora URI.
W przypadku korzystania z usługi Azure Storage użyj jednego z następujących schematów identyfikatorów URI:
wasb:///
: Uzyskaj dostęp do domyślnego magazynu przy użyciu niezaszyfrowanej komunikacji.wasbs:///
: Uzyskiwanie dostępu do domyślnego magazynu przy użyciu zaszyfrowanej komunikacji. Schemat wasbs jest obsługiwany tylko z usługi HDInsight w wersji 3.6.wasb://<container-name>@<account-name>.blob.core.windows.net/
: używany podczas komunikowania się z kontem magazynu bez definicji. Jeśli na przykład masz dodatkowe konto magazynu lub uzyskujesz dostęp do danych przechowywanych na publicznie dostępnym koncie magazynu.
W przypadku korzystania z usługi Azure Data Lake Storage Gen2 użyj następującego schematu identyfikatora URI:
abfs://
: Uzyskiwanie dostępu do domyślnego magazynu przy użyciu zaszyfrowanej komunikacji.abfs://<container-name>@<account-name>.dfs.core.windows.net/
: używany podczas komunikowania się z kontem magazynu bez definicji. Jeśli na przykład masz dodatkowe konto magazynu lub uzyskujesz dostęp do danych przechowywanych na publicznie dostępnym koncie magazynu.
Ważne
W przypadku używania usługi Data Lake Storage jako domyślnego magazynu dla usługi HDInsight należy określić ścieżkę w magazynie, która będzie używana jako katalog główny magazynu usługi HDInsight. Domyślna ścieżka to /clusters/<cluster-name>/
.
W przypadku korzystania z /
danych lub adl:///
uzyskiwania dostępu do danych można uzyskać dostęp tylko do danych przechowywanych w katalogu głównym (na przykład /clusters/<cluster-name>/
) klastra. Aby uzyskać dostęp do danych w dowolnym miejscu w magazynie, użyj adl://<storage-name>.azuredatalakestore.net/
formatu .
Jakiego magazynu używa klaster
Możesz użyć narzędzia Ambari, aby pobrać domyślną konfigurację magazynu dla klastra. Użyj następującego polecenia, aby pobrać informacje o konfiguracji systemu plików HDFS przy użyciu narzędzia curl i przefiltrować je przy użyciu narzędzia jq:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'
Uwaga
To polecenie zwraca pierwszą konfigurację zastosowaną do serwera (service_config_version=1
), który zawiera te informacje. Może być konieczne wyświetlenie listy wszystkich wersji konfiguracji, aby znaleźć najnowszą wersję.
To polecenie zwraca wartość podobną do następujących identyfikatorów URI:
wasb://<container-name>@<account-name>.blob.core.windows.net
w przypadku korzystania z konta usługi Azure Storage.Nazwa konta to nazwa konta usługi Azure Storage. Nazwa kontenera to kontener obiektów blob, który jest katalogiem głównym magazynu klastra.
adl://home
w przypadku korzystania z usługi Azure Data Lake Storage. Aby uzyskać nazwę usługi Data Lake Storage, użyj następującego wywołania REST:curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
To polecenie zwraca następującą nazwę hosta:
<data-lake-store-account-name>.azuredatalakestore.net
.Aby uzyskać katalog w magazynie, który jest katalogiem głównym usługi HDInsight, użyj następującego wywołania REST:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
To polecenie zwraca ścieżkę podobną do następującej ścieżki:
/clusters/<hdinsight-cluster-name>/
.
Informacje o magazynie można również znaleźć w witrynie Azure Portal, wykonując następujące czynności:
W witrynie Azure Portal wybierz klaster usługi HDInsight.
W sekcji Właściwości wybierz pozycję Konta magazynu. Zostaną wyświetlone informacje o magazynie klastra.
Jak mogę uzyskiwanie dostępu do plików spoza usługi HDInsight
Istnieją różne sposoby uzyskiwania dostępu do danych spoza klastra usługi HDInsight. Poniżej przedstawiono kilka linków do narzędzi i zestawów SDK, których można użyć do pracy z danymi:
Jeśli korzystasz z usługi Azure Blob Storage, zapoznaj się z następującymi linkami, aby uzyskać dostęp do danych:
Interfejs wiersza polecenia platformy Azure: polecenia interfejsu wiersza polecenia do pracy z platformą Azure. Po zainstalowaniu
az storage
użyj polecenia , aby uzyskać pomoc dotyczącą korzystania z magazynu lubaz storage blob
poleceń specyficznych dla obiektów blob.blobxfer.py: skrypt języka Python do pracy z obiektami blob w usłudze Azure Storage.
Różne zestawy SDK:
Jeśli korzystasz z usługi Azure Data Lake Storage Gen1, zapoznaj się z następującymi linkami, aby uzyskać dostęp do danych:
- Przeglądarka internetowa
- Program PowerShell
- Interfejs wiersza polecenia platformy Azure
- WebHDFS REST API
- Data Lake Tools for Visual Studio
- .NET
- Java
- Python
Skalowanie klastra
Funkcja skalowania klastra umożliwia dynamiczne zmienianie liczby węzłów danych używanych przez klaster. Operacje skalowania można wykonywać, gdy inne zadania lub procesy są uruchomione w klastrze. Zobacz Skalowanie klastrów usługi HDInsight
Jak mogę zainstalować platformę Hue (lub inny składnik platformy Hadoop)?
HDInsight to usługa zarządzana. Jeśli platforma Azure wykryje problem z klastrem, może usunąć węzeł, który kończy się niepowodzeniem i utworzyć węzeł, aby go zamienić. W przypadku ręcznego instalowania elementów w klastrze nie są one utrwalane podczas wykonywania tej operacji. Zamiast tego użyj akcji skryptów usługi HDInsight. Akcja skryptu może służyć do wprowadzania następujących zmian:
- Instalowanie i konfigurowanie usługi lub witryny sieci Web.
- Zainstaluj i skonfiguruj składnik, który wymaga zmian konfiguracji w wielu węzłach w klastrze.
Akcje skryptu to skrypty powłoki Bash. Skrypty są uruchamiane podczas tworzenia klastra i służą do instalowania i konfigurowania dodatkowych składników. Informacje na temat tworzenia własnych akcji skryptu można znaleźć w temacie Script Action development with HDInsight (Tworzenie akcji skryptu za pomocą usługi HDInsight).
Pliki Jar
Niektóre technologie hadoop udostępniają własne pliki jar. Te pliki zawierają funkcje używane jako część zadania MapReduce lub z wewnątrz pig lub Hive. Często nie wymagają żadnej konfiguracji i można je przekazać do klastra po utworzeniu i użyciu bezpośrednio. Jeśli chcesz upewnić się, że składnik przetrwa ponowne tworzenie klastra, zapisz plik jar w domyślnym magazynie klastra.
Jeśli na przykład chcesz użyć najnowszej wersji platformy Apache DataFu, możesz pobrać plik jar zawierający projekt i przekazać go do klastra usługi HDInsight. Następnie postępuj zgodnie z dokumentacją interfejsu DataFu, aby dowiedzieć się, jak używać jej z usługi Pig lub Hive.
Ważne
Niektóre składniki, które są autonomicznymi plikami jar, są dostarczane z usługą HDInsight, ale nie znajdują się w ścieżce. Jeśli szukasz określonego składnika, możesz użyć poniższej instrukcji, aby wyszukać go w klastrze:
find / -name *componentname*.jar 2>/dev/null
To polecenie zwraca ścieżkę wszystkich pasujących plików jar.
Aby użyć innej wersji składnika, przekaż potrzebną wersję i użyj jej w swoich zadaniach.
Ważne
Składniki dostarczane z klastrem usługi HDInsight są w pełni obsługiwane i pomoc techniczna firmy Microsoft ułatwiają izolowanie i rozwiązywanie problemów związanych z tymi składnikami.
Składniki niestandardowe otrzymują rozsądną komercyjnie pomoc techniczną, aby ułatwić dalsze rozwiązywanie problemu. Może to spowodować rozwiązanie problemu LUB prośbę o zaangażowanie dostępnych kanałów dla technologii open source, w których znaleziono głęboką wiedzę dotyczącą tej technologii. Na przykład istnieje wiele witryn społeczności, których można używać, takich jak: strona pytań i odpowiedzi firmy Microsoft dla usługi HDInsight, https://stackoverflow.com. Ponadto projekty Apache mają witryny projektów w witrynach https://apache.org, na przykład: Hadoop, Spark.