Udostępnij przez


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.

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 w pełni wykorzystać funkcjonalność interfejsu użytkownika Ambari, użyj tunelu SSH do tunelowania ruchu sieciowego do węzła głównego klastra. Zobacz Jak używać tunelowania SSH do dostępu do Apache Ambari web UI, ResourceManager, JobHistory, NameNode, Oozie oraz 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. Jak tylko nawiążesz połączenie, możesz uzyskać dostęp do węzłów roboczych, korzystając z protokołu SSH z głównego węzła.

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 na twoim klastrze może być inna niż wymieniona tutaj.
  • 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.
  • Dostępność z usług zewnętrznych, takich jak witryny internetowe, narzędzia do przesyłania/pobierania plików, zestawy SDK dla różnych języków programowania oraz 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. Przechowuj pliki danych bezpiecznie w chmurze tak długo, jak tego potrzebujesz.

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 innego niż domyślny magazynu (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 od wersji 3.6 usługi HDInsight wzwyż.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: Używany podczas komunikowania się z niedomyślnym kontem magazynowym. Jeśli na przykład masz dodatkowe konto pamięci masowej lub uzyskujesz dostęp do danych przechowywanych na publicznie dostępnym koncie pamięci masowej.

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 niedomyślnym kontem magazynowym. Jeśli na przykład masz dodatkowe konto pamięci masowej lub uzyskujesz dostęp do danych przechowywanych na publicznie dostępnym koncie pamięci masowej.

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>/.

Kiedy używasz / lub adl:/// do uzyskiwania dostępu do danych, można uzyskać dostęp tylko do danych, które są przechowywane w korzeniu (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ść zbliżoną do podanych poniżej 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 blob, który jest katalogiem głównym pamięci 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 przechowywaniu, który jest katalogiem głównym systemu 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:

  1. W witrynie Azure Portal wybierz klaster usługi HDInsight.

  2. W sekcji Właściwości wybierz pozycję Konta magazynowe. Zostaną wyświetlone informacje o magazynie klastra.

Jak mogę uzyskać dostęp do plików spoza systemu 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:

Jeśli korzystasz z usługi Azure Data Lake Storage Gen1, zapoznaj się z następującymi linkami, aby uzyskać dostęp do danych:

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 uległ awarii, i utworzyć nowy 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ą samodzielne pliki jar. Te pliki zawierają funkcje używane jako część zadania MapReduce lub z wewnątrz Pig albo Hive. Często nie wymagają żadnej konfiguracji i mogą być przekazywane do klastra po utworzeniu i używane bezpośrednio. Jeśli chcesz upewnić się, że składnik przetrwa ponowne obrazowanie 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ą DataFu, aby dowiedzieć się, jak używać go z Pig lub Hive.

Ważne

Niektóre składniki, które są autonomicznymi plikami jar, są zawarte w usłudze HDInsight, ale nie są uwzględnione 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, załaduj potrzebną wersję i wykorzystaj ją w swoich zadaniach.

Ważne

Składniki dostarczane z klastrem HDInsight są w pełni obsługiwane, a pomoc techniczna Microsoft pomaga w izolowaniu i rozwiązywaniu problemów związanych z tymi składnikami.

Składniki niestandardowe otrzymują komercyjnie uzasadnioną pomoc techniczną w celu dalszego rozwiązywania 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ą swoje witryny na https://apache.org, na przykład: Hadoop, Spark.

Następne kroki