Hadoop集成Spring的使用详细教程(快速入门大数据)

官网sprng-hadoop

https://spring.io/projects/spring-hadoop

添加依赖

<dependencies>
 <dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-hadoop</artifactId>
  <version>2.5.0.RELEASE</version>
 </dependency>
</dependencies>

使用spring hadoop配置及查看HDFS文件

新建资源文件beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:hdp="http://www.springframework.org/schema/hadoop"
  xsi:schemaLocation="
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/hadoop
  http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">

 <hdp:configuration id="hadoopConfiguration">
  fs.defaultFS=hdfs://hadoop01:9000
  hadoop.tmp.dir=/tmp/hadoop
  electric=sea
 </hdp:configuration>

 <hdp:file-system id="fileSystem"
      configuration-ref="hadoopConfiguration"
      user="root"
 />

</beans>

测试文件

package com.bennyrhys.hadoop.spring;

import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

/**
 * @Author bennyrhys
 * @Date 1/21/21 2:35 PM
 */
public class SpringHadoopHDFSApp {
 private ApplicationContext ctx;
 // apache hadoop
 private FileSystem fileSystem;

 /**
  * 创建HDFS文件夹
  */
 @Test
 public void testMkdirs() throws Exception {
  fileSystem.mkdirs(new Path("/springhdfs"));
 }

 /**
  * 查看HDFS文件
  */
 @Test
 public void testText() throws Exception {
  FSDataInputStream in = fileSystem.open(new Path("/springhdfs/hello.txt"));
  IOUtils.copyBytes(in, System.out, 1024);
  in.close();
 }

 @Before
 public void setUp() {
  ctx = new ClassPathXmlApplicationContext("beans.xml");
  fileSystem = (FileSystem) ctx.getBean("fileSystem");
 }

 @After
 public void tearDown() throws Exception {
  ctx = null;
  fileSystem.close();
 }
}

spring hadoop 配置文件详解

提取变量

使用xml中的头文件替换bean,使其允许使用上下文
${}导入变量

新建配置文件application.properties

spring.hadoop.fsUri=hdfs://hadoop01:9000

获取context上下文引入变量
beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:hdp="http://www.springframework.org/schema/hadoop"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  http://www.springframework.org/schema/hadoop http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">

 <hdp:configuration id="hadoopConfiguration">
  fs.defaultFS=${spring.hadoop.fsUri}
  hadoop.tmp.dir=/tmp/hadoop
  electric=sea
 </hdp:configuration>
 <context:property-placeholder location="application.properties"/>

 <hdp:file-system id="fileSystem"
      configuration-ref="hadoopConfiguration"
      user="root"
 />

</beans>

SpringBoot访问HDFS系统

pom.xml

<!-- 添加spring boot的依赖操作hadoop -->
 <dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-hadoop-boot</artifactId>
  <version>2.5.0.RELEASE</version>
 </dependency>

SpringBootHDFSApp

package com.bennyrhys.hadoop.spring;

import org.apache.hadoop.fs.FileStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.hadoop.fs.FsShell;

/**
 * @Author bennyrhys
 * @Date 1/21/21 11:33 PM
 */
@SpringBootApplication
public class SpringBootHDFSApp implements CommandLineRunner {

 @Autowired
 FsShell fsShell; //引入spring的

 @Override
 public void run(String... strings) throws Exception {
  for (FileStatus fileStatus : fsShell.lsr("/springhdfs")) {
   System.out.println("> " + fileStatus.getPath());
  }
 }

 /**
  * > hdfs://hadoop01:9000/springhdfs
  * > hdfs://hadoop01:9000/springhdfs/hello.txt
  * @param args
  */
 public static void main(String[] args) {
  SpringApplication.run(SpringBootHDFSApp.class, args);
 }
}

到此这篇关于Hadoop集成Spring的使用详细教程(快速入门大数据)的文章就介绍到这了,更多相关Hadoop集成Spring的使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Spring Boot 使用Spring security 集成CAS

    1.创建工程 创建Maven工程:springboot-security-cas 2.加入依赖 创建工程后,打开pom.xml,在pom.xml中加入以下内容: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.3.RELEASE</versio

  • Spring Boot集成MyBatis实现通用Mapper的配置及使用

    什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件.开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法. 关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Pla

  • springboot Mongodb的集成与使用实例详解

    说说springboot与大叔lind.ddd的渊源 Mongodb在Lind.DDD中被二次封装过(大叔的.net和.net core),将它当成是一种仓储来使用,对于开发人员来说只公开curd几个标准的接口即可,而在springboot框架里,它与大叔lind有些类似之处,同样是被二次封装了,开发人员只需要关注自己的业务即可,而标准的curd操作完成由springboot帮助我们来实现,一般地,我们会设计一个与实体对象的接口仓储,让它去继承mongo的标准接口,然后在springboot的依

  • Spring集成jedis的配置与使用简单实例

    jedis是redis的java客户端,spring将redis连接池作为一个bean配置. redis连接池分为两种,一种是"redis.clients.jedis.ShardedJedisPool",这是基于hash算法的一种分布式集群redis客户端连接池. 另一种是"redis.clients.jedis.JedisPool",这是单机环境适用的redis连接池. maven导入相关包: <!-- redis依赖包 --> <depende

  • 使用Spring Boot集成FastDFS的示例代码

    这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>

  • Hadoop集成Spring的使用详细教程(快速入门大数据)

    官网sprng-hadoop https://spring.io/projects/spring-hadoop 添加依赖 <dependencies> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-hadoop</artifactId> <version>2.5.0.RELEASE</version&g

  • maven加入spring框架的详细教程

    使用步骤: 下载maven工具 maven官网 maven官网下载 2. 解压 3.设置代理 maven默认从国外网站下载jar包,很慢.可以使用阿里的代理. <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>

  • IDEA+Maven搭建Spring环境的详细教程

    1. Spring简介 Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架. 2. Spring的优势 1.方便解耦, 简化开发: 通过Spring提供的IOC容器, 可以将对象间的依赖关系交由Spring进行控制, 避免硬编码所造成的过度耦合. 2.AOP编程的支持: 通过AOP功能方便进行面向切面编程, 许多不容易用传统OOP实现的功能可以通过AOP轻松实现. 3.声明式事物编程: 通过声明方式灵活的进行事务管理, 提高开发效率和质量. 4.方便程序测试: 可以用非容器

  • VirtualBox安装CentOS及JDK、Hadoop的安装与配置详细教程

    目录 1.先决条件 1.1 支持平台 1.2 jdk及hadoop安装包 1.3 Xshell 7与Xftp 7工具安装 2.具体安装步骤 2.1 网络配置 2.2 Xshell连接 2.3 Xftp传输 2.4 jdk环境配置 2.5 ssh服务配置 2.6 hadoop配置 2.7 hadoop单机模式操作方法 1.先决条件 1.1 支持平台 GNU/Linux是产品开发和运行的平台. Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证. 所以首先我们需要下载L

  • Spring Data JPA框架快速入门之数据持久化存储到数据库

    目录 1 核心概念 CrudRepository接口 PagingAndSortingRepository接口 2 查询方法 3 后续内容介绍 1 核心概念 Spring Data存储库抽象的中心接口是Repository.它把要管理的实体类以及实体类的ID类型作为类型参数.这个接口主要是作为一个标记接口,用来捕捉工作中的类型,并帮助你发现扩展这个接口的接口.CrudRepository接口为被管理的实体类提供复杂的CRUD功能. 自己可以看看Repository的扩展接口以及实现类 IDEA中

  • 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程

    前言 SSM(Spring+SpringMVC+Mybatis)是目前较为主流的企业级架构方案,不知道大家有没有留意,在我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教学课堂中,也会把SSH作为最核心的教学内容. 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅. 另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程

  • SpringBoot整合Spring Security的详细教程

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.提供了完善的认证机制和方法级的授权功能.是一款非常优秀的权限管理框架.它的核心是一组过滤器链,不同的功能经由不同的过滤器.这篇文章就是想通过一个小案例将Spring Security整合到SpringBoot中去.要实现的功能就是在认证服务器上

  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    环境搭建概述 亲爱的家人们可以到链接:http://xiazai.jb51.net/202105/yuanma/javayaml_jb51.rar  下载所需要的yaml文件. 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化. 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管

  • 人生苦短我用python python如何快速入门?

    假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(CheatSheet)之间,因此只会包含一些基本概念.很显然,如果你希望真正学好一门语言,你还是需要亲自动手实践的.在此,我会假定你已经有了一定的编程基础,因此我会跳过大部分非Python语言的相关内容.本文将高亮显示重要的关键字,以便你可以很容易看到它们.另外需要注意的是,由于本教程篇幅有限,有很多内容我会直接使用代

  • springboot快速集成mybatis-plus的详细教程

    简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网.那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA. springBoot快速集成mybatis-plus 一.pom文件引入mybatis-plus依赖 <dependenc

随机推荐