前言
接上一篇《数据采集之Web端导入DB数据到Hadoop HDFS》,这一篇简单的记录一下如何在Web端控制导入日志文件到HDFS中,主要用到的技术就是Flume了。网上大多数教程都是写的配置文件,但是现在有需求要通过web来动态自动化的进行操作,也就是说要通过Java代码的形式来实现,而不是直接修改服务器上的配置文件。所以只能想想其他其他方式了。
环境
- OS Debian 8.7
- Hadoop 2.6.5
- SpringBoot 1.5.1.RELEASE
- Flume 1.7.0
Flume简介
Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
Flume是一个分布式、高可靠、高可用的日志数据采集、聚合和传输服务。
它有一个简单灵活基于数据流的结构。它也有可靠的和容错的机制,并且可用进行许多故障转移和恢复机制。 它使用一个简单的可扩展数据模型,允许在线分析应用程序。
翻译的不太好,简单的理解就是一个日志数据采集工具吧。
项目依赖
先看下pom.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.infosys.flume</groupId>
<artifactId>flume</artifactId>
<version>1.0-SNAPSHOT</version>
<name>flume</name>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<hadoop.version>2.6.5</hadoop.version>
<flume.version>1.7.0</flume.version>
</properties>
<dependencies>
<dependency>
<groupId>org.sp