Pokud spustíte:
hdfs dfs -copyFromLocal foo.txt bar.txt
poté bude místní soubor foo.txt zkopírován do vašeho vlastního adresáře hdfs /user/popeye/bar.txt
(kde popeye
je vaše uživatelské jméno.) V důsledku toho se dosáhne stejného:
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
Před zkopírováním jakéhokoli souboru do hdfs se nejprve ujistěte, že jste vytvořili nadřazený adresář. Nemusíte vkládat soubory do tohoto "domovského" adresáře, ale (1) je lepší nezahlcovat "/" všemožnými soubory a (2) dodržování této konvence pomůže předejít konfliktům s ostatními uživateli.
Váš přístup je nesprávný nebo může být chápání chybné
dfs.datanode.data.dir
, je místo, kam chcete ukládat bloky dat
Pokud zadáte hdfs dfs -ls /
získáte seznam adresářů v hdfs. Potom můžete přenášet soubory z lokálního do hdfs pomocí -copyFromLocal
nebo -put
do konkrétního adresáře nebo pomocí -mkdir
můžete vytvořit nový adresář
Další informace naleznete na níže uvedeném odkazu
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
Podle první odpovědi to podrobně rozvádím pro Hadoop 1.x
-
Předpokládejme, že spouštíte tento skript na pseudo distribučním modelu, pravděpodobně se vám zobrazí jeden nebo dva seznamy uživatelů (NameNodes) -
na našem plně distribučním modelu máte nejprve administrátorská práva k provádění těchto věcí a bude N počet seznamů NameNodes (uživatelů).
Takže nyní přejdeme k našemu bodu -
Nejprve přejděte do svého domovského adresáře Hadoop a odtud spusťte tento skript -
bin/hadoop fs -ls /
Výsledek se bude líbit tomuto -
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
tak zde xuiob78126arif
je moje jméno uzel(master/user) a adresář NameNode(user) je -
/user/xuiob78126arif/
nyní můžete přejít do svého prohlížeče a vyhledat adresu -
http://xuiob78126arif:50070
a odtud můžete získat Cluster Summary, NameNode Storage
, atd.
Poznámka:Skript poskytne výsledky pouze za jedné podmínky, pokud v DataNode existuje alespoň nějaký soubor nebo adresář, jinak dostanete -
ls: Cannot access .: No such file or directory.
takže v tom případě nejprve vložíte libovolný soubor do bin/hadoop fs -put <source file full path>
a tam po spuštění bin/hadoop fs -ls /
skript.
a teď doufám, že jste se trochu dostali ke svému problému, díky.