本地配置hadoop客户端操作HDFS

HDFS文件管理方式

对大数据HDFS文件的管理一般有如下几种方式:

  • 通过服务器端linux命令行
  • 通过HDFS Web端
  • 通过本地客户端

使用linux命令行抑或Web端来管理HDFS文件系统,固而简单方便,但通过在客户端使用脚本语言能够实现对Hadoop更加灵活多样的操作,比如实时参数配置(脚本语言里的参数配置优先级最高),循环处理文件等。

前置准备

  1. 在准备Hadoop客户端API之前,需要有已搭建好的 完全分布式集群 ,集群的搭建可以参考

    Hadoop完全分布式服务器集群搭建

  2. zookeeper、hadoop集群已经启动并正常运行

  3. 电脑(以mac为例)已安装配置jdk环境,要求1.8版本或以上

  4. 已安装 IntelliJ IDEA 软件

    IDEA官方下载

    下载专业版,可以临时使用下面提供的激活码进行学习,IDEA使用体验超好,推荐大家购买支持正版软件

    IDEA临时激活码

  5. 安装配置好的maven环境,参考

    maven的安装配置以及在IDEA中的使用

  6. 主机名配置

    #在终端里修改hosts
    vi /etc/hosts
    #添加主机名,比如我的集群有三个节点:node1、node2、node3
    172.19.0.3 node1
    172.19.0.4 node2
    172.19.0.5 node3
    

HDFS的API操作

Mac的Hadoop客户端无需下载Hadoop及配置环境变量,在IDEA中maven会下载连接需要的依赖包。

  1. 打开IDEA,点击 文件-新建-项目 ,选择 Maven

在这里插入图片描述

  1. 填写 GroupIdArtifactId ,完成Maven项目的创建
    在这里插入图片描述

  2. 项目创建后,一般会自动打开 pom.xml 文件
    在这里插入图片描述

  3. 注意按上面maven配置文章里在idea的 偏好设置 里完成对maven环境的配置
    在这里插入图片描述

  4. 依赖包的配置:在 pom.xml 文件中的 properties 标签下面添加以下依赖包代码。代码添加后会自动联网下载所需的依赖包,可以在上面maven 本地仓库 配置的路径下查看,成功下载所有依赖包后,pom.xml 文件代码中将没有红色字体

    <!-- 注意代码里面的Hadoop版本3.3.0要和服务器上部署的版本一致,按实际情况修改 -->
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.3.0</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>
    
  5. 在IDEA的 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. 在IDEA的 src-main-java 路径下创建包 com.axl.hdfs,然后在这个包里创建类 HdfsClient ,在类文件里面填入以下代码

    package com.axl.hdfs;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.junit.Test;
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    public class HdfsClient {
        @Test
        public void testMkdirs() throws IOException, URISyntaxException, InterruptedException {
            //连接集群的namenode地址,node1要修改成自己集群的节点名称
            URI uri = new URI("hdfs://node1:8020");
            //创建配置文件
            Configuration configuration = new Configuration();
            //指定用户
            String user = "root";
            //获取客户端对象
            FileSystem fs = FileSystem.get(uri,configuration,user);
            //创建测试文件夹
            fs.mkdirs(new Path("/test"));
            //关闭
            fs.close();
        } 
    } 
    
  7. 执行以上代码,在 http://node1:9870 Web文件系统里查看,可以看到文件夹通过客户端成功创建

在这里插入图片描述

  1. 除了创建文件夹以外,还可以在客户端对文件进行上传下载、增删改查等操作,大家可以自己尝试
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop集群客户端的作用是向集群中发送、获取文件,执行MapReduce作业等操作。通常情况下,我们会在搭建好的Hadoop集群上搭建一个外围的客户端来进行这些操作。这个客户端可以是一台独立的机器,也可以是已有的一台机器中的一个进程。 搭建Hadoop集群客户端的步骤如下: 1. 首先,确保你已经搭建好了Hadoop集群。集群中应该有一个或多个NameNode和多个DataNode组成。 2. 接下来,选择一台机器作为集群客户端,并确保这台机器与Hadoop集群能够正常通信。 3. 在客户端机器上安装Hadoop客户端软件。你可以从Hadoop官方网站上下载Hadoop发行版,并按照官方文档中的指引进行安装。 4. 配置客户端Hadoop环境。根据你的集群配置,你需要在客户端hadoop-env.sh中设置Hadoop的各种环境变量,如JAVA_HOME、HADOOP_CONF_DIR等。 5. 配置客户端Hadoop集群连接信息。在客户端的core-site.xml和hdfs-site.xml中,配置Hadoop集群的连接信息,如NameNode的地址、端口等。 6. 配置客户端的MapReduce和Spark环境(如果需要)。如果你需要在客户端上执行MapReduce或Spark作业,你需要配置相关的环境变量和配置文件,如mapred-site.xml和yarn-site.xml。 7. 测试客户端与集群的连接。可以通过命令行界面,使用Hadoop的命令行工具(如hadoop fs -ls)对集群中的文件进行操作,以验证客户端与集群的连接是否正常。 通过以上步骤,你就可以搭建一个Hadoop集群客户端,用来发送、获取文件,执行MapReduce作业等操作。这样,你就可以通过客户端来管理和操作你的Hadoop集群了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值