'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>HadoopWindows下客户端环境配置
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

HadoopWindows下客户端环境配置

运维笔记admin6浏览0评论

目录

引言

准备工作:

一    环境变量的设置

二   群起集群进行测试

三   问题总结


引言

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

准备工作:

(1)首先要有搭建好的hadoop集群供我们使用。(未搭建集群的同学可以参照hadoop3.x系列完全分布式集群部署(虚拟机网络连接、jdk安装、hadoop安装)_杂乱无章的我的博客-CSDN博客_hadoop 集群管理工具)

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

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

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

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

(3)maven仓库的配置。(未配置的同学可以参照Maven仓库的配置_杂乱无章的我的博客-CSDN博客)

(4)IDEA编译器

一    环境变量的设置

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

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

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

变量名HADOOP_HOME
变量值D:\softwore\hadoop-2.7.2

接着设置path路径

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

%HADOOP_HOME%\bin

 

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

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

二   群起集群进行测试

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

进入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类来进行测试。

 在测试类HdfsClient中添加如下代码。(注意:在使用本代码时,将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.URI;
import java.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主机进行连接。

发布评论

评论列表(0)

  1. 暂无评论