J'explore les options pour exécuter une application hadoop sur un système local.Est-il possible d'exécuter Hadoop en mode Pseudo-Distribué sans HDFS?
Comme pour de nombreuses applications, les premières versions devraient pouvoir fonctionner sur un seul nœud, à condition de pouvoir utiliser tous les cœurs de processeurs disponibles (Oui, cela concerne this question). La limitation actuelle est que sur nos systèmes de production nous avons Java 1.5 et en tant que tel, nous sommes liés à Hadoop 0.18.3 comme dernière version (Voir this question). Donc, malheureusement, nous ne pouvons pas encore utiliser this new feature.
La première option consiste simplement à exécuter hadoop en mode pseudo-distribué. Essentiellement: créez un cluster hadoop complet avec tout ce qui fonctionne sur exactement 1 nœud. L'inconvénient de cette forme est qu'elle utilise également un HDFS à part entière. Cela signifie que pour traiter les données d'entrée, cela doit d'abord être "téléchargé" sur le DFS ... qui est stocké localement. Cela prend donc plus de temps de transfert des données d'entrée et de sortie et utilise de l'espace disque supplémentaire. Je voudrais éviter ces deux choses pendant que nous restons sur une configuration à un seul nœud.
Alors je pensais: est-il possible de remplacer le paramètre "fs.hdfs.impl" et le changer de "org.apache.hadoop.dfs.DistributedFileSystem" en (par exemple) "org.apache.hadoop. fs.LocalFileSystem "? Si cela fonctionne, le cluster hadoop "local" (qui ne peut SEULEMENT contenir qu'un seul nœud) peut utiliser des fichiers existants sans aucune condition de stockage supplémentaire et il peut démarrer plus rapidement car il n'est pas nécessaire de télécharger les fichiers. Je m'attendrais à avoir encore un travail et un traqueur de tâches et peut-être aussi un namenode pour contrôler le tout.
Est-ce que quelqu'un a déjà essayé cela? Cela peut-il marcher ou cette idée est-elle trop éloignée de l'usage prévu?
Ou existe-t-il un meilleur moyen d'obtenir le même effet: Opération pseudo-distribuée sans HDFS?
Merci pour vos idées.
EDIT 2:
C'est la config j'ai créé pour Hadoop 0.18.3 conf/Hadoop-site.xml en utilisant la réponse fournie par bajafresh4life.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:33301</value>
</property>
<property>
<name>mapred.job.tracker.http.address</name>
<value>localhost:33302</value>
<description>
The job tracker http server address and port the server will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>mapred.task.tracker.http.address</name>
<value>localhost:33303</value>
<description>
The task tracker http server address and port.
If the port is 0 then the server will start on a free port.
</description>
</property>
</configuration>
Oui, merci. Cela fonctionne très bien. Je posterai ma config après avoir fait d'autres tests. –