Javaアプリを使ってHFSを操作する過程の詳細解
タイトル党はJavaAppを使ってHFSを操作しています。MAVENを使っています。操作環境はLinuxです。
まず、Mavenの環境を整えたいです。すでにある倉庫を使っています。もしあなたがダウンロードしたjarのカバンの速度が遅いなら、Mavenのダウンロードjarのカバンの鏡像駅をアリ雲に変えられます。
pom.xmlを貼ってください
使用したjarバッグ
Javaを使ってhdfsのアプリを操作して、HFSに基づく雲盤を作ってもいいです。ファイルをアップロード、削除、モバイルディレクトリ、ディレクトリを見てもいいですが、ファイルの内容を修正してはいけません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
まず、Mavenの環境を整えたいです。すでにある倉庫を使っています。もしあなたがダウンロードしたjarのカバンの速度が遅いなら、Mavenのダウンロードjarのカバンの鏡像駅をアリ雲に変えられます。
pom.xmlを貼ってください
使用したjarバッグ
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<!-- hadoop Client -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
そしてHFSを操作するコードです。
package com.zuoyan.hadoop.hdfs;
import java.io.File;
import java.io.FileInputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
/**
* use java api operate hdfs
*
* @author beifeng
*
*/
public class HdfsApp {
// get FileSystem
public static FileSystem getFileSystem() throws Exception {
Configuration conf = new Configuration();
FileSystem fileSystem = FileSystem.get(conf);
return fileSystem;
}
public static void read(String fileName) throws Exception {
FileSystem fileSystem = getFileSystem();
// read Path
Path readPath = new Path(fileName);
FSDataInputStream inStream = fileSystem.open(readPath);
try {
IOUtils.copyBytes(inStream, System.out, 4096, false);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
// if Exception close Stream
IOUtils.closeStream(inStream);
}
}
public static void main(String[] args) throws Exception{
//String fileName = "/user/beifeng/mapreduce/wordcount/input/wc.input";
//read(fileName);
FileSystem fileSystem = getFileSystem();
//write path
String putFileName = "/user/beifeng/put-wc.input";
Path writePath = new Path(putFileName);
FSDataOutputStream outputStream = fileSystem.create(writePath);
FileInputStream inputStream = new FileInputStream(
new File("/opt/modules/hadoop-2.5.0/wc.input"));
try {
IOUtils.copyBytes(inputStream, outputStream, 4096,false);
} catch (Exception e) {
// TODO: handle exception
inputStream.close();
outputStream.close();
}
}
}
考え方Javaを使ってhdfsのアプリを操作して、HFSに基づく雲盤を作ってもいいです。ファイルをアップロード、削除、モバイルディレクトリ、ディレクトリを見てもいいですが、ファイルの内容を修正してはいけません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。