hadoopのHDFS
4150 ワード
HDFS(Hadoop Distributed File System)分散ファイル管理システム.
フォールトトレランス:システム内のノード(すなわちサーバ)がオフラインであり、システム全体が正常に動作してもデータが失われない(すなわち、異なるサーバデータに冗長性がある).
ファイルシステム内のデータにストリームとしてアクセスします.
HDfsは、1回に複数回のクエリーを書き込むのに適しています(つまり、変更できません.ファイルデータを変更する場合は、先に削除し、再書き込みして追加します).同時書き込みはサポートされていません.小さなファイルは適切ではありません.
FS SHELLコマンド
Usage: java FsShell
[-ls]
[-lsr]
[-du]
[-dus]
[-count[-q]]
[-mv ]
[-cp ]
[-rm [-skipTrash]]
[-rmr [-skipTrash]]
[-expunge]
[-put ... ]
[-copyFromLocal ... ]
[-moveFromLocal ... ]
[-get [-ignoreCrc] [-crc] ]
[-getmerge [addnl]]
[-cat]
[-text]
[-copyToLocal [-ignoreCrc] [-crc] ]
[-moveToLocal [-crc] ]
[-mkdir]
[-setrep [-R] [-w] ]
[-touchz]
[-test -[ezd]]
[-stat [format]]
[-tail [-f]]
[-chmod [-R] PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]
ファイルの表示
#hadoop fs-ls/(hdfsルートディレクトリを表示)
#hadoop fs-lsr/(hdfsルートディレクトリを表示するのでファイル、フォルダ)
# hadoop fs -lsr hdfs://aly(ホスト名):9000/(フルパス表記)
デフォルトの読み取り値は、#vi/home/hadoop-1.1.2/conf/core-siteです.xml
fs.default.name
hdfs://aly:9000
権限冗長所有者グループファイルサイズ時間名
-rw------- 1 root supergroup 4 2014-09-19 11:32/usr/local/hadoop/tmp/mapred/system/jobtracker.info
フォルダの作成、ファイルのアップロード、ファイルのダウンロード
#hadoop fs-mkdir/test(hdfsルートディレクトリにtestフォルダを作成)
# hadoop fs -put/root/m140730636.jpg/test(linuxシステム/root/m 14073063.6.jpgを/testフォルダにアップロード)
注:ファイル名は既に存在し、同じファイル名をアップロードすることは許可されていません.ファイルを上書きできません.
# hadoop fs -put/root/m140730636.jpg/test/abc(再度アップロードし、ファイル名をabcに変更)
#hadoop fs-get/test/abc/root(hdfsシステムのabcファイルをlinuxシステムrootフォルダにダウンロード)
ファイルの表示、ファイルの削除
#hadoop fs-text/test/abc(表示)
#hadoop fs-rm/test/abc(削除)
#hadoop fs-rmr/test(フォルダおよび以下のファイルを削除)
#hadoop(hadoopを表示するコマンド)
#hadoop fs(hadoop fsを表示するコマンド)
Browse the filesystemは開けられません.しばらく次のリンクを使用します.
http://114.215.104.**:50075/browseDirectory.jsp?dir=%2Ftest&namenodeInfoPort=50070
Javaコードを使用してhdfsを操作する
フォールトトレランス:システム内のノード(すなわちサーバ)がオフラインであり、システム全体が正常に動作してもデータが失われない(すなわち、異なるサーバデータに冗長性がある).
ファイルシステム内のデータにストリームとしてアクセスします.
HDfsは、1回に複数回のクエリーを書き込むのに適しています(つまり、変更できません.ファイルデータを変更する場合は、先に削除し、再書き込みして追加します).同時書き込みはサポートされていません.小さなファイルは適切ではありません.
FS SHELLコマンド
Usage: java FsShell
[-ls
[-lsr
[-du
[-dus
[-count[-q]
[-mv
[-cp
[-rm [-skipTrash]
[-rmr [-skipTrash]
[-expunge]
[-put
[-copyFromLocal
[-moveFromLocal
[-get [-ignoreCrc] [-crc]
[-getmerge
[-cat
[-text
[-copyToLocal [-ignoreCrc] [-crc]
[-moveToLocal [-crc]
[-mkdir
[-setrep [-R] [-w]
[-touchz
[-test -[ezd]
[-stat [format]
[-tail [-f]
[-chmod [-R]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]
ファイルの表示
#hadoop fs-ls/(hdfsルートディレクトリを表示)
#hadoop fs-lsr/(hdfsルートディレクトリを表示するのでファイル、フォルダ)
# hadoop fs -lsr hdfs://aly(ホスト名):9000/(フルパス表記)
デフォルトの読み取り値は、#vi/home/hadoop-1.1.2/conf/core-siteです.xml
権限冗長所有者グループファイルサイズ時間名
-rw------- 1 root supergroup 4 2014-09-19 11:32/usr/local/hadoop/tmp/mapred/system/jobtracker.info
フォルダの作成、ファイルのアップロード、ファイルのダウンロード
#hadoop fs-mkdir/test(hdfsルートディレクトリにtestフォルダを作成)
# hadoop fs -put/root/m140730636.jpg/test(linuxシステム/root/m 14073063.6.jpgを/testフォルダにアップロード)
注:ファイル名は既に存在し、同じファイル名をアップロードすることは許可されていません.ファイルを上書きできません.
# hadoop fs -put/root/m140730636.jpg/test/abc(再度アップロードし、ファイル名をabcに変更)
#hadoop fs-get/test/abc/root(hdfsシステムのabcファイルをlinuxシステムrootフォルダにダウンロード)
ファイルの表示、ファイルの削除
#hadoop fs-text/test/abc(表示)
#hadoop fs-rm/test/abc(削除)
#hadoop fs-rmr/test(フォルダおよび以下のファイルを削除)
#hadoop(hadoopを表示するコマンド)
#hadoop fs(hadoop fsを表示するコマンド)
Browse the filesystemは開けられません.しばらく次のリンクを使用します.
http://114.215.104.**:50075/browseDirectory.jsp?dir=%2Ftest&namenodeInfoPort=50070
Javaコードを使用してhdfsを操作する
public class AppHDFS {
static String HDFS_PATH="hdfs://114.215.104.**:9000";
public static void main(String[] args) throws Exception {
// URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
// URL url=new URL(HDFS_PATH+"/a.txt");
// InputStream in=url.openStream();
// IOUtils.copyBytes(in, System.out, 1024,true);//
FileSystem fileSystem=FileSystem.get(new URI(HDFS_PATH),new Configuration());
fileSystem.mkdirs(new Path(HDFS_PATH+"/test"));//
FSDataOutputStream out= fileSystem.create(new Path(HDFS_PATH+"/test/abc.txt"));//
FileInputStream ins=new FileInputStream("c://wxy.sql");
IOUtils.copyBytes(ins, out, 1024,true);
FSDataInputStream fds=fileSystem.open(new Path(HDFS_PATH+"/test/abc.txt"));//
IOUtils.copyBytes(fds, System.out, 1024,true);
fileSystem.delete(new Path(HDFS_PATH+"/test"),true);//
}
}