刘永涛 院志超
摘 要:大数据分析和应用在高校得到广泛的发展,在线运行平台是其基础,因此,本文运用开源软件Apache Hadoop、Flume、Spark以及Kafka构建了一个大数据采集、计算、存储平台。
关键词:Apache Hadoop Apache Flume Apache Spark Apache Kafka
中图分类号:TP391文献标识码:A文章编号:1003-9082(2019)04-000-01
在进行大数据分析之前,需要构建一个支持数据在线采集、分析和存储的运行环境。本文使用分布式日志收集系统Apache Flume、数据分发中间件Kafka、分布式实时计算框架Spark Streaming构建了一个在线数据平台。通过使用该平台,完成了数据信息的实时采集、计算和存储。
一、大数据平台整体设计
分布式大数据计算框架由6个节点构成,服务器集群中的服务器操作系统为Centos6.5,服务器集群软件为Apache Hadoop。1台服务器为数据采集平台,运行分布式日志收集系统Apache Flume,1台服务器为消息中间件,运行分布式的日志系统Kafka,一台服务器为Apache Hadoop集群的NameNode,负责作业的调度和管理,剩余3台服务器为数据处理服务器,运行分布式计算框架Spark,为大数据的采集、计算和存储提供平台支撑。
二、运行环境的安装与配置
运行在Centos6.5中,在系统上线运行之前,需要安装一系列的环境软件来支撑其运行。环境运行支撑软件有Java、Scala等,由于系统运行对软件的运行版本有一定的要求,因此,在选择正确的软件版本后进行安装。
1.Java的安装和配置
由于Spark streaming仅仅支持Java8以上的版本,因此,使用wget命令从Oracle的官方网站上下载Java SE Development Kit 9.0.1并保存在源码文件夹下。使用解压命令tar zxvf jdk-9.0.1_linux-x64_bin.tar.gz-C/home/用户名/application,将Java的tar文件解压至目录/home/用户名/application。然后使用vi命令编辑./bash_profile文件,添加Java的环境变量以及将java的运行路径进行映射,配置后使用source ./bash_profile命令啟用环境变量。
2.Scala的安装与配置
由于Spark2.2.0版本对Scala的版本要求是2.11,因此,使用wget命令从Scala的官方网站上下载scala-2.11.tgz并保存在源码文件夹下。使用解压命令tar zxvf scala-2.11.tgz-C /home/用户名/application,将Scala的tar文件解压至目录/home/用户名/application。然后使用vi命令编辑./bash_profile文件,添加Scala的环境变量以及将Scala的运行路径进行映射,配置后使用source ./bash_profile命令启用环境变量。
三、数据流量的采集
网络数据的采集使用Apache Flume,通过使用端口镜像技术将数据流截获并发送到Apach Flume所在的服务器41414端口上,从而实现数据流量的准实时获取,从而为后续的数据处理提供数据消费源。Apache Flume会启动Flume Agent监控上网日志采集服务器41414端口从而获取数据信息。该数据信息被Flume Agent发送到消息队列Channel中,消息队列Channel中的数据信息被Kafka作为数据源进行消费,在这种情况下,kafka就是Apache Flume的sink。而Kafaka的数据作为spark streaming应用程序的数据源,被其进行业务逻辑处理。
四、Apache Flume的编译、安装与设置
由于默认的Apache Flume在接收数据时,会对接收的数据进行自动裁剪,其source端单event的body数据部分只会留下16字节的信息,为了使其接收的数据不被自动裁剪,就需要修改源码并对源码进行编译,编译后进行安装使用。通过对EventHelper.java以及LogerSink.java源文件的阅读,发现该文件定义了一个静态私有整数型变量DEFAULT_MAX_BYTES来进行body数据信息的大小,因此,需要对该文件中的变量进行修改,修改完成后使用maven insatll-DskipTests-Dtar来对源码包进行编译处理。
编译成功后,有一个编译完成后的压缩包apache-flume-1.8.0-bin.tar.gz。使用解压命令tar zxvf apache-flume-1.8.0-bin.tar.gz-C /home/用户名/application,将Apache Flume的tar文件解压至目录/home/用户名/application。然后使用vi命令编辑./bash_profile文件,添加Apache Flume的环境变量以及将Apache Flume的运行路径进行映射,配置后使用source ./bash_profile命令启用环境变量。
由于Apache Flume使用代理Agent作为部署的基本单元,因此,在使用时需要定义一个或者更多的Agent。又由于Source组件(源)、Channel组件(通道)以及Sink组件(接收器)构成了一个Flume Agent,因此,在配置文件中既要定义Agent又要定义这些组件。在配置文件中,一个Flume Agent的三个构成部分必须唯一。
五、Kafka的安装和配置
使用wget命令从Zookeeper的官方网站中下载Zookeeper的压缩文件并保存在源码文件夹下。使用解压命令tar zxvf zookeeper-3.4.10.tar.gz-C/home/用户名/application,将Zookeeper的压缩文件解压至目录/home/用户名/application。然后使用vi命令编辑./bash_profile文件,添加Zookeeper的环境变量以及将Zookeeper的运行路径进行映射,配置后使用source ./bash_profile命令启用环境变量。
Apache Hadoop和Apache Spark的安装过程和Apache Flume雷同,在此不在赘述。通过使用开源软件Apache Hadoop、Flume、Kafka和Spark搭建一个实时数据采集、计算和存储平台,为大数据后续的分析提供基本的运行环境支持。