hadoop java操作hdfs
hfdsはhadoopが処理するデータを格納するファイルシステムである.大規模な分散データ処理に適しており、拡張可能な行のファイル分散システムである.
メリット
1、ノードダウンタイムが発生した場合、hdfs、継続的な監視、エラーチェック、フォールトトレランス処理、ドキュメントリカバリ
2、ストレージファイルが巨大で、hdfsはファイルをブロック処理し、ブロック毎のサイズを規定する(デフォルト64 M)
HDfs共通コマンド
コマンドフォーマット:hadoop fs-cmd
1、ディレクトリの追加
hadoop fs -mkdir args
2、ファイルの追加
hadoop fs -put localfile hdfsfileurl
備考:putコマンド、hdfsファイルシステムにファイルを入れ、ローカルファイルが消えます
3、書類を取り出す
hadoop fs -get locaUrl hdfsurl
メモ:get、hdfsのファイルをローカルに取り戻します.しかしhdfsのファイルはまだ存在し、copyに相当する.
4、ファイルの表示
hadoop fs -cat url
備考:hadoop fs-cat url|moreはページ別に表示できます
5、ファイルの削除
hadoop fs -rm url
6、ログ方式の表示
hadoop fs -tail url
JAvaプログラム制御hdfs
Hadoopでファイル操作として使用する主クラスはorgにある.apache.hadoop.fsパッケージにあります.一般的なopen、read、write、closeが含まれています.HadoopファイルのAPIの起点はFileSystemクラスであり、これはファイルシステムとインタラクティブな抽象クラスであり、factoryを呼び出す方法でFileSystemである.get(Configuration conf)は、HDFSインタフェースのFileSystemオブジェクトを次のように取得するために必要なFileSystemインスタンスを取得します.
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);//HDFSのFileSystemオブジェクトを取得
HDFSとローカルファイルシステムのインタラクションを実現するには、ローカルファイルシステムのFileSystemオブジェクトを取得する必要があります.
FileSystem local = FileSystem.getLocal(conf);//ローカルファイルシステムのFileSystemオブジェクトを取得
メリット
1、ノードダウンタイムが発生した場合、hdfs、継続的な監視、エラーチェック、フォールトトレランス処理、ドキュメントリカバリ
2、ストレージファイルが巨大で、hdfsはファイルをブロック処理し、ブロック毎のサイズを規定する(デフォルト64 M)
HDfs共通コマンド
コマンドフォーマット:hadoop fs-cmd
1、ディレクトリの追加
hadoop fs -mkdir args
2、ファイルの追加
hadoop fs -put localfile hdfsfileurl
備考:putコマンド、hdfsファイルシステムにファイルを入れ、ローカルファイルが消えます
3、書類を取り出す
hadoop fs -get locaUrl hdfsurl
メモ:get、hdfsのファイルをローカルに取り戻します.しかしhdfsのファイルはまだ存在し、copyに相当する.
4、ファイルの表示
hadoop fs -cat url
備考:hadoop fs-cat url|moreはページ別に表示できます
5、ファイルの削除
hadoop fs -rm url
6、ログ方式の表示
hadoop fs -tail url
JAvaプログラム制御hdfs
Hadoopでファイル操作として使用する主クラスはorgにある.apache.hadoop.fsパッケージにあります.一般的なopen、read、write、closeが含まれています.HadoopファイルのAPIの起点はFileSystemクラスであり、これはファイルシステムとインタラクティブな抽象クラスであり、factoryを呼び出す方法でFileSystemである.get(Configuration conf)は、HDFSインタフェースのFileSystemオブジェクトを次のように取得するために必要なFileSystemインスタンスを取得します.
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);//HDFSのFileSystemオブジェクトを取得
HDFSとローカルファイルシステムのインタラクションを実現するには、ローカルファイルシステムのFileSystemオブジェクトを取得する必要があります.
FileSystem local = FileSystem.getLocal(conf);//ローカルファイルシステムのFileSystemオブジェクトを取得
/**
*
*/
package org.jrs.wlh;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/**
* @PutMeger.java
* created at 2013-8-7 12:04:08 by jrs521wlh
* java hdfs hdfs
* @author jrs521wlh [email protected]
* @version $Revision$</br>
* update: $Date$
*/
public class PutMeger {
public static void main(String[] args) throws IOException {
String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"};
Configuration conf = new Configuration();
FileSystem fileS= FileSystem.get(conf);
FileSystem localFile = FileSystem.getLocal(conf); // FileSystem
Path input = new Path(str[0]); //
Path out = new Path(str[1]); // hdfs
try{
FileStatus[] inputFile = localFile.listStatus(input); //listStatus
FSDataOutputStream outStream = fileS.create(out); //
for (int i = 0; i < inputFile.length; i++) {
System.out.println(inputFile[i].getPath().getName());
FSDataInputStream in = localFile.open(inputFile[i].getPath());
byte buffer[] = new byte[1024];
int bytesRead = 0;
while((bytesRead = in.read(buffer))>0){ //
System.out.println(buffer);
outStream.write(buffer,0,bytesRead);
}
in.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}