每日总结

HDFSAPI操作

3.1 客户端环境准备

1)找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\)。

2配置HADOOP_HOME环境变量

 

3配置Path环境变量

注意:如果环境变量不起作用,可以重启电脑试试。

 

验证Hadoop环境变量是否正常。双击winutils.exe,如果报如下错误。说明缺少微软运行库(正版系统往往有这个问题)。再资料包里面有对应的微软运行库安装包双击安装即可。

 

4)在IDEA中创建一个Maven工程HdfsClientDemo,并导入相应的依赖坐标+日志添加

<dependencies>

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-client</artifactId>

        <version>3.1.3</version>

    </dependency>

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

    </dependency>

    <dependency>

        <groupId>org.slf4j</groupId>

        <artifactId>slf4j-log4j12</artifactId>

        <version>1.7.30</version>

    </dependency>

</dependencies>

在项目的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

5)创建包名com.atguigu.hdfs

6创建HdfsClient

public class HdfsClient {

 

    @Test

    public void testMkdirs() throws IOException, URISyntaxException, InterruptedException {

 

        // 1 获取文件系统

        Configuration configuration = new Configuration();

 

        // FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration);

        FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration,"atguigu");

 

        // 2 创建目录

        fs.mkdirs(new Path("/xiyou/huaguoshan/"));

 

        // 3 关闭资源

        fs.close();

    }

}

7)执行程序

客户端去操作HDFS,是有一个用户身份的。默认情况下,HDFS客户端API会从采用Windows默认用户访问HDFS,会报权限异常错误。所以在访问HDFS时,一定要配置用户

org.apache.hadoop.security.AccessControlException: Permission denied: user=56576, access=WRITE, inode="/xiyou/huaguoshan":atguigu:supergroup:drwxr-xr-x

posted @ 2021-11-19 20:13  小萌新一枚lll  阅读(65)  评论(0编辑  收藏  举报