Używanie tunelowania SSH do uzyskiwania dostępu do internetowego interfejsu użytkownika systemu Apache Ambari, JobHistory, NameNode, Apache Oozie i innych interfejsów użytkownika

Klastry usługi HDInsight zapewniają dostęp do internetowego interfejsu użytkownika platformy Apache Ambari za pośrednictwem Internetu. Niektóre funkcje wymagają tunelu SSH. Na przykład internetowy interfejs użytkownika usługi Apache Oozie nie może być dostępny za pośrednictwem Internetu bez tunelu SSH.

Dlaczego warto używać tunelu SSH

Kilka menu w systemie Ambari działa tylko za pośrednictwem tunelu SSH. Te menu korzystają z witryn internetowych i usług działających w innych typach węzłów, takich jak węzły robocze.

Następujące interfejsy użytkownika sieci Web wymagają tunelu SSH:

  • JobHistory
  • Węzeł nazw
  • Stosy wątków
  • Interfejs użytkownika sieci Web Oozie
  • Interfejs użytkownika wzorca bazy danych HBase i dzienników

Usługi zainstalowane z akcjami skryptu, które uwidaczniają usługę internetową, będą wymagały tunelu SSH. Funkcja Hue zainstalowana z akcją skryptu wymaga tunelu SSH w celu uzyskania dostępu do internetowego interfejsu użytkownika.

Ważne

Jeśli masz bezpośredni dostęp do usługi HDInsight za pośrednictwem sieci wirtualnej, nie musisz używać tuneli SSH. Aby zapoznać się z przykładem bezpośredniego uzyskiwania dostępu do usługi HDInsight za pośrednictwem sieci wirtualnej, zobacz dokument Połączenie HDInsight w sieci lokalnej.

Co to jest tunel SSH

Tunelowanie protokołu Secure Shell (SSH) łączy port na maszynie lokalnej z węzłem głównym w usłudze HDInsight. Ruch wysyłany do portu lokalnego jest kierowany przez połączenie SSH z węzłem głównym. Żądanie jest rozpoznawane tak, jakby pochodziło z węzła głównego. Odpowiedź jest następnie kierowana z powrotem przez tunel do stacji roboczej.

Wymagania wstępne

  • Klient SSH. Aby uzyskać więcej informacji, zobacz Łączenie się z usługą HDInsight (Apache Hadoop) przy użyciu protokołu SSH.

  • Przeglądarka internetowa, którą można skonfigurować do używania serwera proxy SOCKS5.

    Ostrzeżenie

    Obsługa serwera proxy SOCKS wbudowanego w ustawienia internetowe systemu Windows nie obsługuje programu SOCKS5 i nie działa z krokami w tym dokumencie. Następujące przeglądarki korzystają z ustawień serwera proxy systemu Windows i obecnie nie działają z krokami w tym dokumencie:

    • Microsoft Edge
    • Microsoft Internet Explorer

    Przeglądarka Google Chrome korzysta również z ustawień serwera proxy systemu Windows. Można jednak zainstalować rozszerzenia, które obsługują skarpetki SOCKS5. Zalecamy foxyProxy Standard.

Tworzenie tunelu przy użyciu polecenia SSH

Użyj następującego polecenia, aby utworzyć tunel SSH przy użyciu ssh polecenia . Zastąp sshuser element użytkownikiem SSH klastra usługi HDInsight i zastąp CLUSTERNAME ciąg nazwą klastra usługi HDInsight:

ssh -C2qTnNf -D 9876 sshuser@CLUSTERNAME-ssh.azurehdinsight.net

To polecenie tworzy połączenie, które kieruje ruch do lokalnego portu 9876 do klastra za pośrednictwem protokołu SSH. Dostępne opcje:

Opcja Opis
D 9876 Port lokalny, który kieruje ruch przez tunel.
C Kompresuj wszystkie dane, ponieważ ruch internetowy jest głównie tekstem.
2 Wymuś protokół SSH, aby wypróbować tylko protokół w wersji 2.
q Tryb cichy.
T Wyłącz alokację pseudo-tty, ponieważ po prostu przekazujesz port.
n Zapobiegaj odczytywaniu danych STDIN, ponieważ po prostu przekazujesz port.
N Nie wykonuj polecenia zdalnego, ponieważ po prostu przekazujesz port.
f Uruchom w tle.

Po zakończeniu polecenia ruch wysyłany do portu 9876 na komputerze lokalnym jest kierowany do węzła głównego klastra.

Tworzenie tunelu przy użyciu programu PuTTY

PuTTY to graficzny klient SSH dla systemu Windows. Jeśli nie znasz programu PuTTY, zapoznaj się z dokumentacją programu PuTTY. Wykonaj następujące kroki, aby utworzyć tunel SSH przy użyciu programu PuTTY:

Tworzenie lub ładowanie sesji

  1. Otwórz plik PuTTY i upewnij się, że w menu po lewej stronie wybrano pozycję Sesja . Jeśli sesja została już zapisana, wybierz nazwę sesji z listy Zapisane sesje i wybierz pozycję Załaduj.

  2. Jeśli nie masz jeszcze zapisanej sesji, wprowadź informacje o połączeniu:

    Właściwości Wartość
    Nazwa hosta (lub adres IP) Adres SSH klastra usługi HDInsight. Na przykład mójklaster-ssh.azurehdinsight.net.
    Port 22
    Typ połączenia SSH
  3. Wybierz pozycję Zapisz

    HDInsight create putty session.

  4. W sekcji Kategoria po lewej stronie okna dialogowego rozwiń węzeł Połączenie ion, rozwiń węzeł SSH, a następnie wybierz pozycję Tunele.

  5. Podaj następujące informacje dotyczące formularza Opcje kontrolujące przekazywanie portów SSH:

    Właściwości Wartość
    Port źródłowy Port na kliencie, który chcesz przekazać dalej. Na przykład 9876.
    Element docelowy Adres SSH klastra usługi HDInsight. Na przykład mójklaster-ssh.azurehdinsight.net.
    Dynamiczny Włącza dynamiczny routing serwera proxy SOCKS.

    PuTTY Configuration tunneling options.

  6. Wybierz pozycję Dodaj , aby dodać ustawienia, a następnie wybierz pozycję Otwórz , aby otworzyć połączenie SSH.

  7. Po wyświetleniu monitu zaloguj się do serwera.

Korzystanie z tunelu z przeglądarki

Ważne

Kroki opisane w tej sekcji korzystają z przeglądarki Mozilla FireFox, ponieważ udostępnia ona te same ustawienia serwera proxy na wszystkich platformach. Inne nowoczesne przeglądarki, takie jak Google Chrome, mogą wymagać rozszerzenia, takiego jak FoxyProxy, do pracy z tunelem.

  1. Skonfiguruj przeglądarkę tak, aby korzystała z hosta lokalnego i portu użytego podczas tworzenia tunelu jako serwera proxy SOCKS w wersji 5 . Oto jak wyglądają ustawienia przeglądarki Firefox. Jeśli użyto innego portu niż 9876, zmień port na używany:

    firefox browser proxy settings.

    Uwaga

    Wybranie zdalnego systemu DNS rozpoznaje żądania systemu nazw domen (DNS) przy użyciu klastra usługi HDInsight. To ustawienie rozpoznaje system DNS przy użyciu węzła głównego klastra.

  2. Sprawdź, czy tunel działa, odwiedzając lokację, taką jak https://www.whatismyip.com/. Zwrócony adres IP powinien być używany przez centrum danych platformy Microsoft Azure.

Weryfikowanie przy użyciu internetowego interfejsu użytkownika systemu Ambari

Po ustanowieniu klastra wykonaj następujące kroki, aby sprawdzić, czy możesz uzyskać dostęp do internetowych interfejsów użytkownika usługi z sieci Web systemu Ambari:

  1. W przeglądarce przejdź do adresu http://headnodehost:8080. Adres headnodehost jest wysyłany przez tunel do klastra i rozpoznawany jako węzeł główny, na którym działa system Ambari. Po wyświetleniu monitu wprowadź nazwę użytkownika administratora (administratora) i hasło dla klastra. Może zostać wyświetlony monit po raz drugi przez internetowy interfejs użytkownika systemu Ambari. Jeśli tak, wprowadź ponownie informacje.

    Uwaga

    Jeśli używasz http://headnodehost:8080 adresu do nawiązywania połączenia z klastrem, łączysz się za pośrednictwem tunelu. Komunikacja jest zabezpieczona przy użyciu tunelu SSH zamiast PROTOKOŁU HTTPS. Aby nawiązać połączenie za pośrednictwem Internetu przy użyciu protokołu HTTPS, użyj polecenia https://clustername.azurehdinsight.net, gdzie clustername jest nazwą klastra.

  2. W internetowym interfejsie użytkownika systemu ambari wybierz pozycję HDFS z listy po lewej stronie.

    Apache Ambari hdfs service selected.

  3. Po wyświetleniu informacji o usłudze HDFS wybierz pozycję Szybkie linki. Zostanie wyświetlona lista węzłów głównych klastra. Wybierz jeden z węzłów głównych, a następnie wybierz pozycję NameNode UI.

    Image with the QuickLinks menu expanded.

    Uwaga

    Po wybraniu pozycji Szybkie linki może zostać wyświetlony wskaźnik oczekiwania. Ten warunek może wystąpić, jeśli masz wolne połączenie internetowe. Poczekaj minutę lub dwie na odebranie danych z serwera, a następnie spróbuj ponownie utworzyć listę.

    Niektóre wpisy w menu Szybkie linki mogą być odcięte po prawej stronie ekranu. Jeśli tak, rozwiń menu przy użyciu myszy i użyj klawisza strzałki w prawo, aby przewinąć ekran po prawej stronie, aby wyświetlić pozostałą część menu.

  4. Zostanie wyświetlona strona podobna do poniższej:

    Image of the Hadoop NameNode UI.

    Uwaga

    Zwróć uwagę na adres URL tej strony; powinna być podobna do http://hn*.randomcharacters.cx.internal.cloudapp.net:8088/cluster. Ten identyfikator URI używa wewnętrznej w pełni kwalifikowanej nazwy domeny (FQDN) węzła i jest dostępny tylko w przypadku korzystania z tunelu SSH.

Następne kroki

Teraz, gdy wiesz już, jak utworzyć tunel SSH i korzystać z niego, zapoznaj się z następującym dokumentem, aby zapoznać się z innymi sposobami korzystania z narzędzia Ambari: