`
dalan_123
  • 浏览: 86935 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

spring hadoop系列一

 
阅读更多

 一、要求

1、对于spring hadoop2.1构建在jdk7上面(最低要求:jdk6及其以上),hadoop 2.6 默认构建在spring framework 4.1上。

2、spring for Apache hadoop2.1支持如下hadoop版本

  Apache Hadoop 2.4.1

  Apache Hadoop 2.5.2

  Apache Hadoop 2.6.0

  Pivotal HD 2.1

  Cloudera CDH5(2.5.0-CDH5.3.0)

  Hortonworks Data Platform 2.0

任何通过Apache Hadoop 2.2.x系列分布式都能够使用Spring For Apache Hadoop2.1,同时也支持HBase0.94.11、Hive 0.11.0 、Pig 0.1及其以上版本

在使用spring for Apache hadoop时,使用hadoop版本为基础,查看其所匹配的其他框架的版本

二、spring 和 hadoop

(1)、hadoop 配置

在运行时使用无论是本地的hadoop还是远程hadoop集群,都必须正确的配置以及以及引导hadoop提交job,具体的操作如下,注spring for Apache hadoop 简称 SHDP

   第一步:使用shdp的命名空间

  

<?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">

   <bean/>

   <hdp:configuration/>
</beans>

 注意上述的配置信息,同时也可以修改命名空间相关内容,<beans> 转为<hap>

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans
xmlns="http://www.springframework.org/schema/hadoop"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:beans="http://www.springframework.org/schema/beans"
   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">

    <beans:bean id ... >

    <configuration ...>

</beans:beans>

 第二步: SHDP javaconfig形式

import org.springframework.context.annotation.Configuration;
import org.springframework.data.hadoop.config.annotation.EnableHadoop
import org.springframework.data.hadoop.config.annotation.SpringHadoopConfigurerAdapter
import org.springframework.data.hadoop.config.annotation.builders.HadoopConfigConfigurer;

@Configuration
@EnableHadoop
static class Config extends SpringHadoopConfigurerAdapter {

  @Override
  public void configure(HadoopConfigConfigurer config) throws Exception {
    config
      .fileSystemUri("hdfs://localhost:8021");
  }

}

 其中HadoopConfigConfigurer config参数记录hadoop相关的配置;@EnableHadoop必须关联标示@Configuration的class

第三步:配置hadoop

为了使用hadoop,首先需要Configuration对象配置hadoop的追踪信息、输入输出格式等各种配置参数,来简化工作

<hdp:configuration>定义一个ConfigurationFactoryBean名称默认为hadoopConfiguration的实体bean。

特殊情况需要指定资源的配置

 

<hdp:configuration resources="classpath:/custom-site.xml, classpath:/hq-site.xml">
 完成将两个configuration文件添加到Hadoop Configuration中,除了上述的方法之外,我们可以通过properties文件设定Hadoop的配置信息

 

 

<?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>
        fs.defaultFS=hdfs://localhost:8020
        hadoop.tmp.dir=/tmp/hadoop
        electric=sea
     </hdp:configuration>
</beans>
 常用的参数fs.defaultFS、mapred.job.tracker、yarn.resourcemanager.address通过标签属性file-system-uri、job-tracker-uri、rm-manager-uri

 

 

<?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>
        fs.defaultFS=${hd.fs}
        hadoop.tmp.dir=file://${java.io.tmpdir}
        hangar=${number:18}
     </hdp:configuration>

     <context:property-placeholder location="classpath:hadoop.properties" />
</beans>
 
<?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"
    xmlns:util="http://www.springframework.org/schema/util"
    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/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/hadoop http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">

   <!-- merge the local properties, the props bean and the two properties files -->
   <hdp:configuration properties-ref="props" properties-location="cfg-1.properties, cfg-2.properties">
      star=chasing
      captain=eo
   </hdp:configuration>

   <util:properties id="props" location="props.properties"/>
</beans>
 
<!-- default name is 'hadoopConfiguration' -->
<hdp:configuration>
    fs.defaultFS=${hd.fs}
    hadoop.tmp.dir=file://${java.io.tmpdir}
</hdp:configuration>

<hdp:configuration id="custom" configuration-ref="hadoopConfiguration">
    fs.defaultFS=${custom.hd.fs}
</hdp:configuration>
 在如上的定义的configuration项中,相同的项,后面将覆盖掉前面的

 

register-url-handler配置项默认时关闭的,一旦开启之后每一vm都只有url,一旦出现故障,将会记录到log但是不会抛出异常,那么vm就不知道hdfs的意图,若是hdfs出现这方面的问题,需要注意相关方面。

详细hdp:configuration 配置项

 

Name	                   Values	Description
configuration-ref  Bean Reference   Reference to existing Configuration bean
properties-ref  Bean Reference  Reference to existing Properties bean
properties-location   Comma delimited list  List or Spring Resource paths
resources  Comma delimited list   List or Spring Resource paths
register-url-handler  Boolean  Registers an HDFS url handler in the running VM. Note that t   his operation can be executed at most once in a given JVM hence the default is false. De    faults to false.
file-system-uri  String  The HDFS filesystem address. Equivalent to fs.defaultFS propertys.
job-tracker-uri  String
Job tracker address for HadoopV1. Equivalent to mapred.job.tracker property.
rm-manager-uri String The Yarn Resource manager address for HadoopV2. Equivalent to yarn.re                                    sourcemanager.address property.
user-keytab  String  Security keytab.
user-principal  String  User security principal.
namenode-principal  String  Namenode security principal.
rm-manager-principal   String  Resource manager security principal.
security-method  String    The security method for hadoop.
 四、命令行的支持
目前spring-data-hadoop-boot-2.1.2.REALEASE.jar只支持HadoopConfiguration和fsshell的bean
@Grab('org.springframework.data:spring-data-hadoop-boot:2.1.2.RELEASE')

import org.springframework.data.hadoop.fs.FsShell

public class App implements CommandLineRunner {

  @Autowired FsShell shell

  void run(String... args) {
    shell.lsr("/tmp").each() {println "> ${it.path}"}
  }

}
  
分享到:
评论

相关推荐

    spring data hadoop reference

    Spring Hadoop 提供了一系列工具和 API 来与 HBase 集成,这使得开发者可以更容易地访问 HBase 数据。 #### 五、Hive 集成 ##### 5.1 启动 Hive Server Hive 是一个基于 Hadoop 的数据仓库工具,可以使用 SQL 查询...

    spring-data-hadoop-1.0.0源码包

    2. **数据访问接口**:Spring Data Hadoop定义了一系列的Repository接口,如`HadoopRepository`,使得开发者可以通过声明式的方式操作Hadoop数据。这些接口的实现通常基于Hadoop的API,如`FileSystem`和`JobConf`,...

    【大数据入门笔记系列】第五节 SpringBoot集成hadoop开发环境(复杂版的WordCount)

    【大数据入门笔记系列】第五节 SpringBoot集成hadoop开发环境(复杂版的WordCount)前言环境清单创建SpringBoot项目创建包创建yml添加集群主机名映射hadoop配置文件环境变量HADOOP_HOME编写代码添加hadoop依赖jar包...

    基于Spring Boot框架的Hadoop集群管理系统.zip

    它提供了一系列功能,用于管理Hadoop集群中的HDFS、HBase、Kafka和MapReduce等组件。通过该系统,用户可以方便地进行集群资源的监控、管理和操作。 项目的主要特性和功能 1. HDFS管理 文件内容查看 目录创建 ...

    基于hadoop结合spring全家桶,采用hdfs文件系统存储的以jpa完成持久层的项目.zip

    其次,Spring全家桶是指Spring Framework、Spring Boot、Spring Data、Spring Cloud等一系列Spring生态的组件。Spring Framework是Java企业级应用开发的基础,提供了依赖注入、AOP(面向切面编程)等特性。Spring ...

    hadoop-2.5.2.tar.gz

    Hadoop 2.5.2是在Hadoop 2.x系列中的一个稳定版本,它引入了许多重要的改进和优化,以提高性能、可靠性和易用性。 Hadoop主要由两个关键组件构成:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一种...

    spring recipe 英文版

    测试是软件开发过程中非常重要的一环,Spring 提供了一系列工具和最佳实践来帮助开发者编写高质量的测试代码。 #### 18. Grails Grails 是基于 Groovy 和 Spring 的全栈 Web 开发框架,它简化了很多常见的 Web ...

    基于Spring Batch的大数据量并行处理

    - **领域模型**:Spring Batch定义了一系列核心领域概念,如Job(作业)、Step(步骤)、Chunk(块)、Reader(读取器)、Processor(处理器)和Writer(写入器),这些概念构成了处理数据流的基本单元。 - **应用...

    Spring3.2Jar官方jar包

    在这个"Spring3.2Jar官方jar包"中,我们找到了一系列与Spring 3.2版本相关的库,这些库不仅包括Spring的核心组件,还包含了一些常用的依赖库,如Hibernate、AspectJ和Jackson等。下面将详细阐述这些文件及其在Spring...

    Hadoop之电影推荐系统的设计与实现

    MapReduce是Hadoop的核心组件之一,它将大型任务拆分成一系列小的"map"任务,然后在分布式集群中并行执行,之后通过"reduce"任务汇总结果。在这个项目中,Map阶段可能会处理用户的电影评分和收藏数据,将这些数据...

    基于hadoop的电商销售预测分析系统HDFS+MapRed

    5. **Spring Cloud**:Spring Cloud是一系列框架的集合,用于在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中开发微服务。...

    spring-batch-2.2.0.RELEASE-no-dependencies

    1. **Job**:批处理作业的基本单元,由一系列步骤(Steps)组成,可以设置启动条件和终止策略。 2. **Step**:作业的执行单元,包含读取、处理和写入操作,是实际业务逻辑的容器。 3. **ItemReader**:负责读取...

    基于DDD领域驱动设计的SpringCloud短视频项目管理后台使用Vue 3.0 + Element Plus 进行构建

    1. **领域驱动设计(Domain-Driven Design, DDD)**:这是一种软件开发方法论,强调通过深入理解和建模业务领域来驱动软件开发。DDD将复杂的业务逻辑拆分为一系列小的、可管理的领域,每个领域都有自己的语言(领域...

    Eclipse oxygen、kepler和mars版本的hadoop-eclipse-2.7.2 插件 oxygen-R-win32-x86_64

    `hadoop-eclipse-plugin-2.7.2-jar`是Hadoop-Eclipse插件的主要实现文件,版本为2.7.2,对应Hadoop的2.x系列。此插件允许用户在Eclipse中直接创建HDFS文件系统视图,通过拖拽方式将文件上传到HDFS,同时可以在...

    hadoop学习资料

    #### 一、Hadoop技术内幕系列 1. **《Hadoop技术内幕:深入解析Hadoop Common和HDFS》** - **简介**:本书主要介绍了Hadoop的核心组件Hadoop Common和HDFS(Hadoop Distributed File System),适合有一定Java基础...

    基于springboot+SpringCloud+HDFS+虹软人脸识别SDK的海量人脸搜索.zip

    其次,SpringCloud是基于SpringBoot进行分布式系统开发的一系列工具集合,它提供了服务发现、配置中心、断路器、路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等服务。在本项目中,...

    基于hadoop的网站日志分析系统(附带web展示页面).rar

    接着,MapReduce作业会执行一系列的分析任务,如计算访问量、用户停留时间、热门页面等。分析完成后,结果数据会被存入数据库,最后通过Web应用以图表或其他形式展现给用户,帮助网站管理员了解用户行为、优化用户...

    基于hadoop+hbase+springboot实现分布式网盘系统.zip

    在构建分布式网盘系统时,通常会采用一系列先进的技术来处理大数据存储、访问效率和系统扩展性等问题。在这个“基于hadoop+hbase+springboot实现分布式网盘系统”的项目中,我们可以看到三个关键技术的整合应用:...

    spring data 2012

    Spring Data通过定义一系列的接口和抽象类,简化了数据仓库层代码的实现。例如,Spring Data JPA就为开发者提供了一套基于JPA的Repository接口,开发者可以仅仅通过定义接口以及提供一些查询方法的规范,就可以得到...

Global site tag (gtag.js) - Google Analytics