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を操作する

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);// 
		
	}
}