Configuração do ambiente Hadoop no Windows e demonstração de programação da API HDFS

1. Descompacte o pacote compactado do Hadoop e coloque-o no diretório especificado.
Insira a descrição da imagem aqui
2. Configure o ambiente local do Hadoop.
Crie um novo HADOOP_HOME e
Insira a descrição da imagem aqui
adicione o caminho.
Insira a descrição da imagem aqui
3.
Instale o maven para resolver o problema de dependência do desenvolvimento de java.
Você pode baixá-lo diretamente no site oficial
https://maven.apache.org/

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>

Modifique o arquivo de configuração aqui. O original é baixado do site oficial por padrão. Se você não derrubar a parede, a conexão com a Internet é lenta e limitada, então aqui podemos nos conectar ao espelho de Ali. A localização é provavelmente entre 150-160 linhas.

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

    <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>

Adicione este código a pom.xml

Programação API HDFS
Insira a descrição da imagem aqui

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

	}

}

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_46457946/article/details/113790228
Recomendado
Clasificación