指定されたディレクトリにある1.解凍Hadoopの圧縮されたパッケージと場所それを。
2. [設定のHadoopのローカル環境。
新しいHADOOP_HOMEを作成し、
パスを追加しますが。
3.
Java開発の依存関係の問題を解決するためのMavenインストールします。
あなたはそれを直接ダウンロードすることができます公式ウェブサイト
https://maven.apache.org/から
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
ここで設定ファイルを変更します。元のファイルはデフォルトで公式ウェブサイトからダウンロードされます。壁を覆さないと、インターネットへの接続が遅く制限されるため、ここでアリのミラーに接続できます。場所はおそらく150〜160行です。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.3</version>
</dependency>
このコードをpom.xmlに追加します
HDFSAPIプログラミング
package Test.com.test;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
public class UploadFile {
// @SuppressWarnings("deprecation")
public static void main(String[] args) {
// 实例化conf
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.2.101:9000");
System.setProperty("HADOOP_USER_NAME", "root");
// 实例化文件系统
try {
FileSystem fs = FileSystem.get(conf);
// 文件下载操作
//fs.copyFromLocalFile(new Path("E:/student.txt"), new Path("/data"));
// 文件夹删除操作
//fs.delete(new Path("/banhua.txt"), true);
//修改文件名称
//fs.rename(new Path("/dashuju/jj.txt"), new Path("/data/banhua.txt"));
//创建文件夹
//fs.mkdirs(new Path("/add"));
//在创建的文件夹下添加文件
//fs.mkdirs(new Path("/add/wyg.txt"));
// 2 获取文件详情
// RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);
//
// while(listFiles.hasNext()){
// LocatedFileStatus status = listFiles.next();
//
// // 输出详情
// // 文件名称
// System.out.println(status.getPath().getName());
// // 长度
// System.out.println(status.getLen());
// // 权限
// System.out.println(status.getPermission());
// // 分组
// System.out.println(status.getGroup());
//
// // 获取存储的块信息
// BlockLocation[] blockLocations = status.getBlockLocations();
//
// for (BlockLocation blockLocation : blockLocations) {
//
// // 获取块存储的主机节点
// String[] hosts = blockLocation.getHosts();
//
// for (String host : hosts) {
// System.out.println(host);
// }
// }
//
// System.out.println("-----------已有的文件信息----------");
// }
//2 判断是文件还是文件夹
FileStatus[] listStatus = fs.listStatus(new Path("/"));
for (FileStatus fileStatus : listStatus) {
// 如果是文件
if (fileStatus.isFile()) {
System.out.println("f:"+fileStatus.getPath().getName());
}else {
System.out.println("d:"+fileStatus.getPath().getName());
}
}
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}