zoukankan      html  css  js  c++  java
  • windows上传文件到 linux的hdfs

    一、windows上传文件到 linux的hdfs

    1、先在 centos 上开启 hdfs, 用 jps 可以看到下面信息, 说明完成开启

         

    2、在win上配置 hadoop (https://www.cnblogs.com/Jomini/p/11432484.html) 后,

          要在 hadoop 的 bin 文件上放以下两个文件(网上找下载),

          

    3、创建 maven 工程, 运行读写程序

          pom 文件

    <dependency>
    	<groupId>org.apache.logging.log4j</groupId>
    	<artifactId>log4j-core</artifactId>
    	<version>2.8.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.hadoop</groupId>
    	<artifactId>hadoop-common</artifactId>
    	<version>2.7.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.hadoop</groupId>
    	<artifactId>hadoop-client</artifactId>
    	<version>2.7.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.hadoop</groupId>
    	<artifactId>hadoop-hdfs</artifactId>
    	<version>2.7.2</version>
    </dependency>
    

         运行上传文件

    import java.io.IOException;
    import java.net.Socket;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class Apptest {
    	public static void main(String[] args) throws Exception, IOException {
    		upload();
    	}
    
    	public static void upload() throws IOException {
    		Configuration conf = new Configuration();
    		conf.set("fs.defaultFS", "hdfs://192.168.121.133:9000");
    		FileSystem fs = FileSystem.get(conf);
    		Path src = new Path("d://test.txt");
    		Path dest = new Path("/");
    		fs.copyFromLocalFile(src, dest);
    		FileStatus[] fileStatus = fs.listStatus(dest);
    		for (FileStatus file : fileStatus) {
    			System.out.println(file.getPath());
    		}
    		System.out.println("上传成功");
    	}
    
    }
    

     运行使用 Run configuration, 要 配置 linux 上的用户,不然抛出用户权限问题

           

     console

            

     hdfs

          

    二、在 hdfs 创建路径创建路径

           2.1 在 hdfs 创建路径

           程序

    import java.io.IOException;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    public class Apptest {
    public static void main(String[] args) throws Exception, IOException {
    Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.121.133:9000"); //获取hdfs 客户端对象 FileSystem fs = FileSystem.get(conf); //在hdfs 上创建路径 fs.mkdirs(new Path("/testPath")); //关闭资源 fs.close(); System.out.println("end"); } }

      运行结果

          

        2.2  在上面创建的路径 "/testPath" 下面 再创建路径 file

        程序

    import java.io.IOException;
    import java.net.URI;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class Apptest {	
    	public static void main(String[] args) throws Exception, IOException {
    
    	Configuration conf = new Configuration();
    		
            //获取hdfs 客户端对象
    	FileSystem fs = FileSystem.get(new URI("hdfs://192.168.121.133:9000"),conf,"root");
            
    	//在 /testPath 下创建路径
    	fs.mkdirs(new Path("/testPath/file"));
    		
            //关闭资源
    	fs.close();
    
    	System.out.println("end");
    	}
    }
    

        点击在hdfs上面的路径 /testPath 会出现 /file  

     

  • 相关阅读:
    Redis面试题
    spring boot错误: 找不到或无法加载主类
    JAVA的高并发编程
    Redis多机多节点集群实验
    Redis单机多节点集群实验
    Redis集群概述
    Redis的持久化之AOF方式
    Redis的持久化之RDB方式
    Redis持久化介绍
    Redis Keys的通用操作
  • 原文地址:https://www.cnblogs.com/Jomini/p/11437947.html
Copyright © 2011-2022 走看看