真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Hadoop集成Spring的使用

Spring Hadoop簡單概述

Spring Hadoop官網(wǎng)地址如下:

站在用戶的角度思考問題,與客戶深入溝通,找到鶴壁網(wǎng)站設(shè)計(jì)與鶴壁網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鶴壁地區(qū)。

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

Spring Hadoop簡化了Apache Hadoop,提供了一個(gè)統(tǒng)一的配置模型以及簡單易用的API來使用HDFS、MapReduce、Pig以及Hive。還集成了其它Spring生態(tài)系統(tǒng)項(xiàng)目,如Spring Integration和Spring Batch.。

特點(diǎn):

  • 支持創(chuàng)建Hadoop應(yīng)用,配置使用依賴注入和運(yùn)行標(biāo)準(zhǔn)的java應(yīng)用程序和使用Hadoop的命令行工具。
  • 集成Spring Boot,可以簡單地創(chuàng)建Spring應(yīng)用程序去連接HDFS進(jìn)行讀寫數(shù)據(jù)。
  • 創(chuàng)建和配置,使用java的MapReduce,Streaming,Hive,Pig或HBase。
  • 擴(kuò)展Spring Batch支持創(chuàng)建基于Hadoop的工作流的任何類型的Hadoop Job或HDFS的操作。
  • 腳本HDFS操作使用任何基于JVM的腳本語言。
  • 基于SpringBoot輕松地創(chuàng)建自定義的基礎(chǔ)應(yīng)用,應(yīng)用可以部署在YARN上。
  • 支持DAO,可以使用模板或回調(diào)的方式操作Hbase
  • 支持Hadoop安全驗(yàn)證

Spring Hadoop2.5的官方文檔及API地址:

https://docs.spring.io/spring-hadoop/docs/2.5.0.RELEASE/reference/html/
https://docs.spring.io/spring-hadoop/docs/2.5.0.RELEASE/api/


Spring Hadoop開發(fā)環(huán)境搭建及訪問HDFS文件系統(tǒng)

創(chuàng)建一個(gè)maven工程,配置依賴如下:


    
      cloudera
      https://repository.cloudera.com/artifactory/cloudera-repos/
      
        true
      
      
        false
      
    
  

  
    UTF-8
    2.6.0-cdh6.7.0
  

  
    
      org.apache.hadoop
      hadoop-client
      ${hadoop.version}
      provided
    
    
    
      com.kumkee
      UserAgentParser
      0.0.1
    
    
      junit
      junit
      4.10
      test
    
    
    
      org.springframework.data
      spring-data-hadoop
      2.5.0.RELEASE
    
  

  
  
    
      
        maven-assembly-plugin
        
          
            
              
            
          
          
            jar-with-dependencies
          
        
      
    
  

在工程中創(chuàng)建resource目錄以及配置文件,配置文件的名可以自定義,配置文件中增加如下內(nèi)容:




    
    
    
        
        fs.defaultFS=${spring.hadoop.fsUri}
    
    
    

然后再創(chuàng)建一個(gè)屬性文件application.properties(文件名稱可自定義),把一些容易改變的配置信息配置在屬性文件下,例如我這里是將服務(wù)器的url配置在屬性文件里,內(nèi)容如下:

spring.hadoop.fsUri=hdfs://192.168.77.128:8020

完成以上操作之后,我們的Spring Hadoop開發(fā)環(huán)境就算是搭建完成了,畢竟使用Maven就是方便。

接下來我們來創(chuàng)建個(gè)測試類,測試一下是否能夠正常對HDFS文件系統(tǒng)進(jìn)行操作:

package org.zero01.spring;

import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
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;

/**
 * @program: hadoop-train
 * @description: 使用Spring Hadoop來訪問HDFS文件系統(tǒng)
 * @author: 01
 * @create: 2018-04-04 17:39
 **/
public class SpringHadoopApp {

    private ApplicationContext ctx;
    private FileSystem fileSystem;

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

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

    /**
     * 在HDFS上創(chuàng)建一個(gè)目錄
     * @throws Exception
     */
    @Test
    public void testMkdirs()throws Exception{
        fileSystem.mkdirs(new Path("/SpringHDFS/"));
    }
}

以上的代碼是執(zhí)行成功的,然后到服務(wù)器上查看一下根目錄下是否有SpringHDFS這個(gè)目錄:

[root@hadoop000 ~]# hdfs dfs -ls /
Found 7 items
-rw-r--r--   3 root supergroup    2769741 2018-04-02 21:13 /10000_access.log
drwxr-xr-x   - root supergroup          0 2018-04-04 17:50 /SpringHDFS
drwxr-xr-x   - root supergroup          0 2018-04-02 21:22 /browserout
drwxr-xr-x   - root supergroup          0 2018-04-02 20:29 /data
drwxr-xr-x   - root supergroup          0 2018-04-02 20:31 /logs
drwx------   - root supergroup          0 2018-04-02 20:39 /tmp
drwxr-xr-x   - root supergroup          0 2018-04-02 20:39 /user
[root@hadoop000 ~]# hdfs dfs -ls /SpringHDFS
[root@hadoop000 ~]# 

可以看到SpringHDFS目錄已經(jīng)成功被創(chuàng)建了,這就代表我們配置的工程沒有問題。

既然創(chuàng)建目錄沒有問題,我們就再來寫一個(gè)測試方法,用來讀取HDFS上某個(gè)文件的內(nèi)容,代碼如下:

/**
 * 讀取HDFS上的文件內(nèi)容
 * @throws Exception
 */
@Test
public void testText()throws Exception{
    FSDataInputStream in = fileSystem.open(new Path("/browserout/part-r-00000"));
    IOUtils.copyBytes(in, System.out, 1024);
    in.close();
}

以上的代碼執(zhí)行成功,控制臺(tái)輸出結(jié)果如下:

Chrome  2775
Firefox 327
MSIE    78
Safari  115
Unknown 6705

讀和寫都沒有問題了,這下就能愉快的在工程里使用Spring Hadoop簡化我們的開發(fā)了。


Spring Boot訪問HDFS文件系統(tǒng)

以上介紹了Spring Hadoop訪問HDFS,接下來再簡單介紹一下使用Spring Boot訪問HDFS,使用Spring Boot會(huì)更加簡單。

首先需要在pom.xml文件中,加入Spring Boot的依賴:



  org.springframework.data
  spring-data-hadoop-boot
  2.5.0.RELEASE
package org.zero01.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;

/**
 * @program: hadoop-train
 * @description: 使用spring boot來訪問HDFS
 * @author: 01
 * @create: 2018-04-04 18:45
 **/
@SpringBootApplication
public class SpringBootHDFSApp implements CommandLineRunner {

    @Autowired
    FsShell fsShell;  // 用于執(zhí)行hdfs shell命令的對象

    public void run(String... strings) throws Exception {
        // 查看根目錄下的所有文件
        for (FileStatus fileStatus : fsShell.ls("/")) {
            System.out.println("> " + fileStatus.getPath());
        }
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringBootHDFSApp.class, args);
    }
}

控制臺(tái)輸出如下:

> hdfs://192.168.77.128:8020/
> hdfs://192.168.77.128:8020/10000_access.log
> hdfs://192.168.77.128:8020/SpringHDFS
> hdfs://192.168.77.128:8020/browserout
> hdfs://192.168.77.128:8020/data
> hdfs://192.168.77.128:8020/logs
> hdfs://192.168.77.128:8020/tmp
> hdfs://192.168.77.128:8020/user

文章標(biāo)題:Hadoop集成Spring的使用
文章鏈接:http://weahome.cn/article/pipgej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部