尚硅谷大数据技术之Hadoop(HDFS)第3章 HDFS客户端操作(开发重点)

3.1 HDFS客户端环境准备
1.根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\Develop\hadoop-2.7.2),如图3-4所示。

《尚硅谷大数据技术之Hadoop(HDFS)第3章 HDFS客户端操作(开发重点)》 image.png

2.配置HADOOP_HOME环境变量,如图3-5所示。

《尚硅谷大数据技术之Hadoop(HDFS)第3章 HDFS客户端操作(开发重点)》 image.png

  1. 配置Path环境变量,如图3-6所示。

    《尚硅谷大数据技术之Hadoop(HDFS)第3章 HDFS客户端操作(开发重点)》 image.png
    4.创建一个Maven工程HdfsClientDemo
    5.导入相应的依赖坐标+日志添加
    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>RELEASE</version>
    </dependency>
    <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>
    <dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.8</version>
    <scope>system</scope>
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
    </dependency>
    </dependencies>
    注意:如果Eclipse/Idea打印不出日志,在控制台上只显示
    1.log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
    2.log4j:WARN Please initialize the log4j system properly.
    3.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    需要在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入
    log4j.rootLogger=INFO, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] – %m%n
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=target/spring.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] – %m%n
    6.创建包名:com.atguigu.hdfs
    7.创建HdfsClient类
    public class HdfsClient{
    @Test
    public void testMkdirs() throws IOException, InterruptedException, URISyntaxException{

     // 1 获取文件系统
     Configuration configuration = new Configuration();
     // 配置在集群上运行
     // configuration.set("fs.defaultFS", "hdfs://hadoop102:9000");
     // FileSystem fs = FileSystem.get(configuration);
    
     FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), configuration, "atguigu");
     
     // 2 创建目录
     fs.mkdirs(new Path("/1108/daxian/banzhang"));
     
     // 3 关闭资源
     fs.close();
    

    }
    }
    8.执行程序
    运行时需要配置用户名称,如图3-7所示

    《尚硅谷大数据技术之Hadoop(HDFS)第3章 HDFS客户端操作(开发重点)》 image.png

    客户端去操作HDFS时,是有一个用户身份的。默认情况下,HDFS客户端API会从JVM中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=atguigu,atguigu为用户名称。

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

    原文作者:尚硅谷教育
    原文地址: https://www.jianshu.com/p/8fbb71878ca2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞