一、业务现状分析
在现实业务中我们有很多服务和系统,包括:
1)network devices 网络设备
2)operating system 操作系统
3)web servers
4)Applications 应用
这些系统产生大量的日志和生产数据,
那么我们需要将以上系统中的日志文件迁移到Hadoop集群中,
在这个过程中,我们有以下几种方式:
1)直接SCP复制到Hadoop集群,通过hdfs dfs -put上传到HDFS
2)通过Flume的直接通过sinks输出管道直接绑定到HDFS
二、Flume概述
Flume官网:https://flume.apache.org/
Flume is a distributed, reliable,
and available service for efficiently collecting,
aggregating, and moving large amounts of log data.
Flume是一个分布式、高可靠、高可用的系统,目的是高效的收集、聚合、移动大量日志数据
设计目标:
1)可靠性(当节点出现故障,日志会移动到其他节点,而不会出现丢失)
2)扩展性(可以方便的添加机器进行扩展)
3)管理性
三、Flume架构及核心组件
1)Source 收集
2)Channel 聚集
3)Sink 输出
四、Flume环境部署
Flume1.8安装的前置条件
1)Java Runtime Environment - Java 1.8 or later
2)Memory - Sufficient memory for configurations used by sources, channels or sinks
3)Disk Space - Sufficient disk space for configurations used by channels or sinks
4)Directory Permissions - Read/Write permissions for directories used by agent
1、下载安装JDK1.8
1)下载JDK
2)解压
3)配置JAVA_HOME
JDK的安装这里就不做过多介绍了,不会的去看一下CDH安装中的JDK安装步骤,只需要将jdk版本换成1.8即可,其他操作步骤相同
https://blog.csdn.net/u013429010/article/details/81744749
2、Flume安装
由于大数据生态的工具太多,如果正常我们使用普通的官方包则会遇到各种各样的版本不兼容问题,那么这里我们直接采用CDH套件中的各种工具
CDH工具目录:http://archive.cloudera.com/cdh5/cdh/5/
由于我们之前安装的是CDH5.15.0
所以我们正常下载版本号为cdh5.15.0的工具包,如:
hadoop-2.6.0-cdh5.15.0.tar.gz
hbase-1.2.0-cdh5.15.0.tar.gz
我们这里下载的是flume-ng-1.6.0-cdh5.15.0.tar.gz
http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.15.0.tar.gz
下载完毕后解压,建议可以将我们需要的包全部解压到同一个目录,比如:/app/
解压之后,设置环境变量:
vim /etc/profile
(我这里是使用root安装的,正常情况下用hadoop用户之类的是~/.bash_profile设置完毕后,记得source生效)
export FLUME_HOME=/app/apache-flume-1.6.0-cdh5.15.1-bin
export PATH=$FLUME_HOME/bin:$PATH
3、修改配置文件
cd $FLUME_HOME/conf
cp flume-env.sh.template flume-env.sh
vi flume-env.sh
#修改flume-env.sh文件中得JAVA_HOME
检查flume版本:flume-ng version
Flume 1.6.0-cdh5.15.1
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 28ab71a94a53c4a00a1c5d9feb44d88b9d19dfa2
Compiled by jenkins on Thu Aug 9 09:36:02 PDT 2018
From source with checksum 531e4c96da9ba2f60849657cbedd7ed5
至此Flume已经搭建完毕,后续我会做一些简单得实战操作