目录

引言

准备工作:

一    环境变量的设置

二   群起集群进行测试

三   问题总结


引言

hadoop完全分布集群搭建完毕后,我们在对hadoop集群的操作想更加的系统化,就需要我们搭建出一个hadoop客户端来完成对集群的操作了。本文就将介绍如何在Windows环境下搭建出hadoop客户端。

准备工作:

(1)首先要有搭建好的hadoop集群供我们使用。(未搭建集群的同学可以参照hadoop3.x系列完全分布式集群部署

(2)下载并解压编译好的hadoopWindows环境下的依赖,这里给出两个版本供大家使用:

hadoop-3.1.0链接:https://pan.baidu.com/s/1IcABAqzLlXQLaTpdTOKCyQ 
提取码:1949

hadoop-2.7.2链接:https://pan.baidu.com/s/17gytdAhMg7w_04BGWG88aQ 
提取码:1949

本文采用的是hadoop-2.7.2版本。

(3)maven仓库的配置。

(4)IDEA编译器

一    环境变量的设置

首先将hadoop依赖下载并解压到我们的文件夹,打开我们的bin目录可以查看到winutils.exe启动程序。

hadoop的客户端 安装 hadoop客户端配置_hadoop

打开我们的设置--->高级系统设置---->环境变量,我们来设置对应的环境变量

首先设置HADOOP_HOME(变量值设置bin目录的父文件夹)

变量名

HADOOP_HOME

变量值

D:\softwore\hadoop-2.7.2

接着设置path路径

hadoop的客户端 安装 hadoop客户端配置_hdfs_02

新建一个,然后将下列代码复制粘贴进去

%HADOOP_HOME%\bin

 

hadoop的客户端 安装 hadoop客户端配置_hadoop的客户端 安装_03

这样我们就完成了环境变量的配置。

如果环境变量不起作用,可以重启电脑

二   群起集群进行测试

首先进入虚拟机将集群启动,并且保证主机与虚拟机之间能够成功联通。

进入IDEA中开始编写代码连接集群并对其进行操作。

首先在IDEA中创建一个Maven工程HdfsClientDemo,并且导入对应的依赖。代码如下:

<dependencies>
<--  设置对应hadoop客户端支持 -->
    <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

 创建软件包名com.test.hdfs,同时创建HdfsClient类来进行测试。

hadoop的客户端 安装 hadoop客户端配置_apache_04

注意:在使用本代码时,将namenode节点改为自己的,同时将使用用户也设置为自己使用的)、

客户端代码常用编写流程主要是
1.获取一个客户端对象
2.执行相关的命令操作
3.关闭资源

package com.test.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 testmkdir() throws URISyntaxException, IOException, InterruptedException {
        //连接的集群namenode地址
        URI uri = new URI("hdfs://hadoop130:8020");
        //创建一个配置文件
        Configuration configuration = new Configuration();
        //用户
        String user = "hr";
        //获取到客户端对象
        FileSystem fs = FileSystem.get(uri,configuration,user);
        //创建一个文件夹
        fs.mkdirs(new Path("test"));
        //关闭资源
        fs.close();
    }
}

运行此测试类,并且观察是否创建出文件夹test。

三   问题总结

在测试类出现错误时,观察以下几个问题。

(1)Windows依赖hadoop是否配置成功。

(2)集群是否完整且集群是否启动成功。

(3)测试类中编写连接的namenode节点的ip值是否正确,连接用户是否正确。

(4)测试类中导入的包是否正确。

(5)hadoop集群是否能够正常与Windows主机进行连接。