Hdfs setzen VS webhdfs

8
___ answer44910262 ___

Der Unterschied zwischen HDFS-Zugriff und WebHDFS ist die Skalierbarkeit aufgrund des HDFS-Designs und die Tatsache, dass ein HDFS-Client eine Datei in Splits zerlegt, die auf verschiedenen Knoten liegen. Wenn ein HDFS-Client auf den Dateiinhalt zugreift, wird er unter dem Deckblatt an den NameNode übergeben und erhält eine Liste mit Dateiaufteilungen und deren physischem Speicherort auf einem Hadoop-Cluster.

Dann können DataNodes, die an all diesen Orten leben, Datenblöcke in den Splits parallel abrufen und den Inhalt direkt an den Client leiten.

WebHDFS ist ein Proxy, der im HDFS-Cluster lebt und auf HDFS überlagert ist. Daher müssen alle Daten an den Proxy gestreamt werden, bevor sie an den WebHDFS-Client weitergeleitet werden. Im Wesentlichen wird es ein einziger Zugangspunkt und ein IO-Engpass.

    
___ answer42821317 ___

Sie können traditionelle Java-Client-API (die intern von Linux-Befehlen von hdfs verwendet wird).

Soweit ich hier gelesen habe.

Die Leistung des Java-Clients und des Rest-basierten Ansatzes hat eine ähnliche Leistung.

    
___ tag123hadoop ___ Hadoop ist ein Apache-Open-Source-Projekt, das Software für zuverlässiges und skalierbares verteiltes Computing bereitstellt. Das Projekt selbst enthält eine Vielzahl anderer ergänzender Ergänzungen. ___ qstnhdr ___ Hdfs setzen VS webhdfs ___ tag123hdfs ___ Hadoop Distributed File System (HDFS) ist das primäre Speichersystem, das von Hadoop-Anwendungen verwendet wird. HDFS erstellt mehrere Replikate von Datenblöcken und verteilt sie auf Rechenknoten in einem Cluster, um zuverlässige, extrem schnelle Berechnungen zu ermöglichen. ___ tag123webhdfs ___ webhdf ist eine REST-API, die die vollständige FileSystem-Schnittstelle für hdfs (Hadoop Distributed File System) unterstützt. ___ answer31581989 ___
  

Hadoop bietet mehrere Möglichkeiten zum Zugriff auf HDFS

     

Alle folgenden unterstützen fast alle Funktionen des Dateisystems -

     

1. FileSystem (FS) -Shellbefehle: Bietet einfachen Zugriff auf Hadoop-Dateisystemoperationen sowie auf andere Dateisysteme von Hadoop   unterstützt zB Local FS, HFTP FS, S3 FS.
  Dazu muss hadoop client installiert sein und der Client Blöcke schreiben   direkt zu einem Datenknoten. Alle Versionen von Hadoop unterstützen nicht alle Optionen zum Kopieren zwischen Dateisystemen.

     

2. WebHDFS: Definiert eine öffentliche HTTP-REST-API, die Clients den Zugriff auf Hadoop aus mehreren Sprachen ermöglicht, ohne sie zu installieren   Hadoop, Vorteil ist Sprache agnostischen Weg (curl, php etc ....)   WebHDFS benötigt Zugriff auf alle Knoten des Clusters und wenn einige Daten vorhanden sind   lesen, es wird direkt vom Quellknoten übertragen, aber gibt es einen Overhead   von http über (1) FS Shell funktioniert aber agnostisch und keine Probleme mit verschiedenen Hadoop Cluster und Versionen.

     

3. HttpFS. Lesen und Schreiben von Daten in HDFS in einem Cluster hinter einer Firewall. Ein einzelner Knoten wird als GateWay-Knoten fungieren, über den alle   Daten werden übertragen und Leistung kann ich glaube, dass dies sein kann   noch langsamer, aber bevorzugt, wenn die Daten aus der öffentlichen Quelle in einen gesicherten Cluster gezogen werden müssen.

Wählen Sie also zu Recht! .. Wenn Sie die Liste nicht mehr sehen können, ist das immer eine Alternative.

    
___ answer31582643 ___

Hadoop bietet eine FileSystem Shell-API zur Unterstützung von Dateisystemvorgängen, z. B. zum Erstellen, Umbenennen oder Löschen von Dateien und Verzeichnissen, Öffnen, Lesen oder Schreiben von Dateien. Die FileSystem-Shell ist eine Java-Anwendung, die die Java-Klasse FileSystem verwendet FileSystem-Operationen bereitstellen. FileSystem Shell-API erstellt eine RPC-Verbindung für die Vorgänge.

Wenn sich der Client im Hadoop-Cluster befindet, ist dies nützlich, da er das Schema %code% URI für die Verbindung mit dem verteilten hadoop-Dateisystem verwendet und der Client daher eine direkte RPC-Verbindung zum Schreiben von Daten in HDFS herstellt.

Dies ist nützlich für Anwendungen, die innerhalb des Hadoop-Clusters ausgeführt werden. Es kann jedoch Fälle geben, in denen eine externe Anwendung HDFS bearbeiten muss, um Verzeichnisse zu erstellen und Dateien in dieses Verzeichnis zu schreiben oder den Inhalt einer in HDFS gespeicherten Datei zu lesen. Hortonworks hat eine API entwickelt, um diese Anforderungen basierend auf der Standard-REST-Funktionalität namens WebHDFS zu unterstützen.

WebHDFS bietet die REST-API-Funktionalität, bei der jede externe Anwendung das DistributedFileSystem über eine HTTP-Verbindung verbinden kann. Egal, ob die externe Anwendung Java oder PHP ist.

Das WebHDFS-Konzept basiert auf HTTP-Operationen wie GET, PUT, POST und DELETE. Operationen wie OPEN, GETFILESTATUS, LISTSTATUS verwenden HTTP GET, andere wie CREATE, MKDIRS, RENAME, SETPERMISSIONS basieren auf HTTP PUT

Es bietet sicheren Lese-Schreib-Zugriff auf HDFS über HTTP. Es ist grundsätzlich beabsichtigt als Ersatz für HFTP (schreibgeschützter Zugriff über HTTP) und HSFTP (schreibgeschützter Zugriff über HTTPS). Es verwendete das Schema %code% URI, um eine Verbindung mit dem verteilten Dateisystem herzustellen.

Wenn sich der Client außerhalb des Hadoop-Clusters befindet und versucht, auf HDFS zuzugreifen. WebHDFS ist dafür nützlich. Auch wenn Sie versuchen, die zwei unterschiedliche Version des Hadoop-Clusters zu verbinden, ist WebHDFS nützlich, da es REST API verwendet, so dass es unabhängig von MapReduce oder HDFS-Version ist.

    
___
chhaya vishwakarma 23.07.2015, 07:29
quelle

4 Antworten

11
  

Hadoop bietet mehrere Möglichkeiten zum Zugriff auf HDFS

     

Alle folgenden unterstützen fast alle Funktionen des Dateisystems -

     

1. FileSystem (FS) -Shellbefehle: Bietet einfachen Zugriff auf Hadoop-Dateisystemoperationen sowie auf andere Dateisysteme von Hadoop   unterstützt zB Local FS, HFTP FS, S3 FS.
  Dazu muss hadoop client installiert sein und der Client Blöcke schreiben   direkt zu einem Datenknoten. Alle Versionen von Hadoop unterstützen nicht alle Optionen zum Kopieren zwischen Dateisystemen.

     

2. WebHDFS: Definiert eine öffentliche HTTP-REST-API, die Clients den Zugriff auf Hadoop aus mehreren Sprachen ermöglicht, ohne sie zu installieren   Hadoop, Vorteil ist Sprache agnostischen Weg (curl, php etc ....)   WebHDFS benötigt Zugriff auf alle Knoten des Clusters und wenn einige Daten vorhanden sind   lesen, es wird direkt vom Quellknoten übertragen, aber gibt es einen Overhead   von http über (1) FS Shell funktioniert aber agnostisch und keine Probleme mit verschiedenen Hadoop Cluster und Versionen.

     

3. HttpFS. Lesen und Schreiben von Daten in HDFS in einem Cluster hinter einer Firewall. Ein einzelner Knoten wird als GateWay-Knoten fungieren, über den alle   Daten werden übertragen und Leistung kann ich glaube, dass dies sein kann   noch langsamer, aber bevorzugt, wenn die Daten aus der öffentlichen Quelle in einen gesicherten Cluster gezogen werden müssen.

Wählen Sie also zu Recht! .. Wenn Sie die Liste nicht mehr sehen können, ist das immer eine Alternative.

    
rbyndoor 23.07.2015 08:26
quelle
5

Hadoop bietet eine FileSystem Shell-API zur Unterstützung von Dateisystemvorgängen, z. B. zum Erstellen, Umbenennen oder Löschen von Dateien und Verzeichnissen, Öffnen, Lesen oder Schreiben von Dateien. Die FileSystem-Shell ist eine Java-Anwendung, die die Java-Klasse FileSystem verwendet FileSystem-Operationen bereitstellen. FileSystem Shell-API erstellt eine RPC-Verbindung für die Vorgänge.

Wenn sich der Client im Hadoop-Cluster befindet, ist dies nützlich, da er das Schema hdfs URI für die Verbindung mit dem verteilten hadoop-Dateisystem verwendet und der Client daher eine direkte RPC-Verbindung zum Schreiben von Daten in HDFS herstellt.

Dies ist nützlich für Anwendungen, die innerhalb des Hadoop-Clusters ausgeführt werden. Es kann jedoch Fälle geben, in denen eine externe Anwendung HDFS bearbeiten muss, um Verzeichnisse zu erstellen und Dateien in dieses Verzeichnis zu schreiben oder den Inhalt einer in HDFS gespeicherten Datei zu lesen. Hortonworks hat eine API entwickelt, um diese Anforderungen basierend auf der Standard-REST-Funktionalität namens WebHDFS zu unterstützen.

WebHDFS bietet die REST-API-Funktionalität, bei der jede externe Anwendung das DistributedFileSystem über eine HTTP-Verbindung verbinden kann. Egal, ob die externe Anwendung Java oder PHP ist.

Das WebHDFS-Konzept basiert auf HTTP-Operationen wie GET, PUT, POST und DELETE. Operationen wie OPEN, GETFILESTATUS, LISTSTATUS verwenden HTTP GET, andere wie CREATE, MKDIRS, RENAME, SETPERMISSIONS basieren auf HTTP PUT

Es bietet sicheren Lese-Schreib-Zugriff auf HDFS über HTTP. Es ist grundsätzlich beabsichtigt als Ersatz für HFTP (schreibgeschützter Zugriff über HTTP) und HSFTP (schreibgeschützter Zugriff über HTTPS). Es verwendete das Schema webhdfs URI, um eine Verbindung mit dem verteilten Dateisystem herzustellen.

Wenn sich der Client außerhalb des Hadoop-Clusters befindet und versucht, auf HDFS zuzugreifen. WebHDFS ist dafür nützlich. Auch wenn Sie versuchen, die zwei unterschiedliche Version des Hadoop-Clusters zu verbinden, ist WebHDFS nützlich, da es REST API verwendet, so dass es unabhängig von MapReduce oder HDFS-Version ist.

    
Sandeep Singh 23.07.2015 08:57
quelle
2

Der Unterschied zwischen HDFS-Zugriff und WebHDFS ist die Skalierbarkeit aufgrund des HDFS-Designs und die Tatsache, dass ein HDFS-Client eine Datei in Splits zerlegt, die auf verschiedenen Knoten liegen. Wenn ein HDFS-Client auf den Dateiinhalt zugreift, wird er unter dem Deckblatt an den NameNode übergeben und erhält eine Liste mit Dateiaufteilungen und deren physischem Speicherort auf einem Hadoop-Cluster.

Dann können DataNodes, die an all diesen Orten leben, Datenblöcke in den Splits parallel abrufen und den Inhalt direkt an den Client leiten.

WebHDFS ist ein Proxy, der im HDFS-Cluster lebt und auf HDFS überlagert ist. Daher müssen alle Daten an den Proxy gestreamt werden, bevor sie an den WebHDFS-Client weitergeleitet werden. Im Wesentlichen wird es ein einziger Zugangspunkt und ein IO-Engpass.

    
Bob H 04.07.2017 16:03
quelle
1

Sie können traditionelle Java-Client-API (die intern von Linux-Befehlen von hdfs verwendet wird).

Soweit ich hier gelesen habe.

Die Leistung des Java-Clients und des Rest-basierten Ansatzes hat eine ähnliche Leistung.

    
Tom Slayer 15.03.2017 21:48
quelle

Tags und Links