flume、sqoop、oozie/Azkaban

来源:http://www.cnblogs.com/Smileing/archive/2017/07/21/7219833.html
-Advertisement-
Play Games

在一個完整的大數據處理系統中,除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、結果數據導出、任務調度等不可或缺的輔助系統,而這些輔助工具在hadoop生態體系中都有便捷的開源框架。 1 日誌採集框架Flume Flume是一個分散式、可靠、和高可用的海量日誌採集、聚 ...


在一個完整的大數據處理系統中,除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、結果數據導出、任務調度等不可或缺的輔助系統,而這些輔助工具在hadoop生態體系中都有便捷的開源框架。

 

1 日誌採集框架Flume

 Flume是一個分散式、可靠、和高可用的海量日誌採集、聚合和傳輸的系統。

 Flume可以採集文件,socket數據包等各種形式源數據,又可以將採集到的數據輸出到HDFShbasehive、kafka隊列等眾多外部存儲系統中

一般的採集需求,通過對flume的簡單配置即可實現

 Flume針對特殊場景也具備良好的自定義擴展能力,因此,flume可以適用於大部分的日常數據採集場景

1.1運行過程

1、 Flume分散式系統中最核心的角色是agentflume採集系統就是由一個個agent所連接起來形成

2、 每一個agent相當於一個數據傳遞員,內部有三個組件:

a) Source:採集源,用於跟數據源對接,以獲取數據

b) Sink:下沉地,採集數據的傳送目的,用於往下一級agent傳遞數據或者往最終存儲系統傳遞數據

c) Channelangent內部的數據傳輸通道,用於從source將數據傳遞到sink

Flume支持眾多的sourcesink類型

1.2Flume的安裝部署

1、Flume的安裝非常簡單,只需要解壓即可,當然,前提是已有hadoop環境

上傳安裝包到數據源所在節點上

然後解壓  tar -zxvf apache-flume-1.6.0-bin.tar.gz

然後進入flume的目錄,修改conf下的flume-env.sh,在裡面配置JAVA_HOME

2、根據數據採集的需求配置採集方案,描述在配置文件中(文件名可任意自定義)

3指定採集方案配置文件,在相應的節點上啟動flume agent

2 工作流調度器azkaban

一個完整的數據分析系統通常都是由大量任務單元組成:

shell腳本程式,java程式,mapreduce程式、hive腳本等 各任務單元之間存在時間先後及前後依賴關係

l為了很好地組織起這樣的複雜執行計劃,需要一個工作流調度系統來調度執行;

簡單的任務調度:直接使用linuxcrontab來定義;

複雜的任務調度:開發調度平臺

或使用現成的開源調度系統,比如ooize、azkaban等

2.1Azkaban介紹

Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。

它有如下功能特點:

² Web用戶界面

² 方便上傳工作流

² 方便設置任務之間的關係

² 調度工作流

² 認證/授權(許可權的工作

² 能夠殺死並重新啟動工作流

² 模塊化和可插拔的插件機制

² 項目工作區 

² 工作流和任務的日誌記錄和審計

2.2AzkabanOozie對比

對市面上最流行的兩種調度器,給出以下詳細對比,以供技術選型參考。總體來說,ooize相比azkaban是一個重量級的任務調度系統,功能全面,但配置使用也更複雜。如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。

功能

兩者均可以調度mapreduce,pig,java,腳本工作流任務

兩者均可以定時執行工作流任務

 工作流定義

Azkaban使用Properties文件定義工作流

Oozie使用XML文件定義工作流

  工作流傳參

Azkaban支持直接傳參,例如${input}

Oozie支持參數和EL表達式,例如${fs:dirSize(myInputDir)}

  定時執行

Azkaban的定時執行任務是基於時間的

Oozie的定時執行任務基於時間和輸入數據

資源管理

Azkaban有較嚴格的許可權控制,如用戶對工作流進行讀//執行等操作

Oozie暫無嚴格的許可權控制

工作流執行

Azkaban有兩種運行模式,分別是solo server mode(executor serverweb server部署在同一臺節點)multi server mode(executor serverweb server可以部署在不同節點)

Oozie作為工作流伺服器運行,支持多用戶和多工作流

 工作流管理

Azkaban支持瀏覽器以及ajax方式操作工作流

Oozie支持命令行、HTTP RESTJava API、瀏覽器操作工作流

3 sqoop數據遷移

3.1作用

sqoopapache旗下一款Hadoop和關係資料庫伺服器之間傳送數據”的工具。

導入數據MySQLOracle導入數據到HadoopHDFSHIVEHBASE等數據存儲系統;

導出數據:Hadoop的文件系統中導出數據到關係資料庫

 

3.2工作機制

將導入或導出命令翻譯成mapreduce程式來實現

在翻譯出的mapreduce中主要是對inputformatoutputformat進行定製

 

3.3 sqoop安裝

 

安裝sqoop的前提是已經具備javahadoop的環境

 

1、下載並解壓

 

最新版下載地址http://ftp.wayne.edu/apache/sqoop/1.4.6/

 

2、修改配置文件

 

$ cd $SQOOP_HOME/conf

 

$ mv sqoop-env-template.sh sqoop-env.sh

 

打開sqoop-env.sh並編輯下麵幾行:

 

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/

 

export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/

 

export HIVE_HOME=/home/hadoop/apps/hive-1.2.1

 

3、加入mysqljdbc驅動包

 

cp  ~/app/hive/lib/mysql-connector-java-5.1.28.jar   $SQOOP_HOME/lib/

 

4、驗證啟動

 

$ cd $SQOOP_HOME/bin

 

$ sqoop-version

 

預期的輸出:

 

15/12/17 14:52:32 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6

 

Sqoop 1.4.6 git commit id 5b34accaca7de251fc91161733f906af2eddbe83

 

Compiled by abe on Fri Aug 1 11:19:26 PDT 2015

 

到這裡,整個Sqoop安裝工作完成。

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、MySQL數據類型 1.數值型 SMALLINT: 2個位元組 INT: 4個位元組 // age int(10) INTEGER:INT的同義詞 BIGINT : 8個位元組 FLOAT : 4個位元組 DOUBLE : 8個位元組 //score float(10,2) 2.字元串(字元)類型 CHA ...
  • 本文記錄在MySQL使用過程中,新掌握的一些知識點,和問題解決方案 ...
  • 剛剛學習了資料庫,並且安裝了MySQL,正當高興之餘,發現我的MySQL出現了閃退的顯現。上網搜了好久的解決方案。最後解決了這個問題,也舒心了。 問題從這裡開始: 接著我打開MySQL,尋思能不能用,結果閃退了。 接著我去服務端,檢查它有沒有開啟,試著開啟,發現也不行。 網上有結果說要刪除Windo ...
  • indexedDB資料庫的基本概念:在HTML5中,新增一種被稱為“indexedDB”的資料庫,該資料庫是一種存儲在客戶端本地的NoSQL資料庫。 顯示效果: ...
  • 一、資料庫的基本概念 資料庫: 以一定方式儲存在一起、能為多個用戶共用、具有儘可能小的冗餘度的特點、是與應用程式彼此獨立的數據集合。 DBMS(DataBase Management System,資料庫管理系統)和資料庫。平時談到“資料庫”可能有兩種含義:MSSQLServer、Oracle等某種 ...
  • 高飛狗這幾天特別鬱悶,不知該如何通過TCP/IP協議連接SQL Server資料庫。好在功夫不負有心人,經過幾天的刻苦研究,終於得到了答案。 高飛狗呼叫UDP1434埠,"叮鈴鈴,叮鈴鈴…" UDP1434埠:您好,我是SQL Server Browser,我的名字是黛絲,請問有什麼可以幫您的嗎 ...
  • 1. hbase簡介 1.1. 什麼是hbase HBASE是一個高可靠性、高性能、面向列、可伸縮的分散式存儲系統,利用HBASE技術可在廉價PC Server上搭建起大規模結構化存儲集群。 HBASE的目標是存儲並處理大型的數據,更具體來說是僅需使用普通的硬體配置,就能夠處理由成千上萬的行和列所組 ...
  • 本文出處:http://www.cnblogs.com/wy123/p/7218316.html (保留出處並非什麼原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為後續對可能存在的一些錯誤進行修正或補充,無他) 資料庫中的事物是具有原子性(Atomicity),一致性(Consiste ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...