劉永濤 院志超
摘 要:大數據分析和應用在高校得到廣泛的發展,在線運行平臺是其基礎,因此,本文運用開源軟件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搭建一個實時數據采集、計算和存儲平臺,為大數據后續的分析提供基本的運行環境支持。