Ⅰ 大數據方面核心技術有哪些
簡單來說,從大數據的生命周期來看,無外乎四個方面:大數據採集、大數據預處理、大數據存儲、大數據分析,共同組成了大數據生命周期里最核心的技術,下面分開來說:
大數據採集
大數據採集,即對各種來源的結構化和非結構化海量數據,所進行的採集。
資料庫採集:流行的有Sqoop和ETL,傳統的關系型資料庫MySQL和Oracle 也依然充當著許多企業的數據存儲方式。當然了,目前對於開源的Kettle和Talend本身,也集成了大數據集成內容,可實現hdfs,hbase和主流Nosq資料庫之間的數據同步和集成。
網路數據採集:一種藉助網路爬蟲或網站公開API,從網頁獲取非結構化或半結構化數據,並將其統一結構化為本地數據的數據採集方式。
文件採集:包括實時文件採集和處理技術flume、基於ELK的日誌採集和增量採集等等。
大數據預處理
大數據預處理,指的是在進行數據分析之前,先對採集到的原始數據所進行的諸如「清洗、填補、平滑、合並、規格化、一致性檢驗」等一系列操作,旨在提高數據質量,為後期分析工作奠定基礎。數據預處理主要包括四個部分:數據清理、數據集成、數據轉換、數據規約。
數據清理:指利用ETL等清洗工具,對有遺漏數據(缺少感興趣的屬性)、噪音數據(數據中存在著錯誤、或偏離期望值的數據)、不一致數據進行處理。
數據集成:是指將不同數據源中的數據,合並存放到統一資料庫的,存儲方法,著重解決三個問題:模式匹配、數據冗餘、數據值沖突檢測與處理。
數據轉換:是指對所抽取出來的數據中存在的不一致,進行處理的過程。它同時包含了數據清洗的工作,即根據業務規則對異常數據進行清洗,以保證後續分析結果准確性。
數據規約:是指在最大限度保持數據原貌的基礎上,最大限度精簡數據量,以得到較小數據集的操作,包括:數據方聚集、維規約、數據壓縮、數值規約、概念分層等。
大數據存儲,指用存儲器,以資料庫的形式,存儲採集到的數據的過程,包含三種典型路線:
1、基於MPP架構的新型資料庫集群
採用Shared Nothing架構,結合MPP架構的高效分布式計算模式,通過列存儲、粗粒度索引等多項大數據處理技術,重點面向行業大數據所展開的數據存儲方式。具有低成本、高性能、高擴展性等特點,在企業分析類應用領域有著廣泛的應用。
較之傳統資料庫,其基於MPP產品的PB級數據分析能力,有著顯著的優越性。自然,MPP資料庫,也成為了企業新一代數據倉庫的最佳選擇。
2、基於Hadoop的技術擴展和封裝
基於Hadoop的技術擴展和封裝,是針對傳統關系型資料庫難以處理的數據和場景(針對非結構化數據的存儲和計算等),利用Hadoop開源優勢及相關特性(善於處理非結構、半結構化數據、復雜的ETL流程、復雜的數據挖掘和計算模型等),衍生出相關大數據技術的過程。
伴隨著技術進步,其應用場景也將逐步擴大,目前最為典型的應用場景:通過擴展和封裝 Hadoop來實現對互聯網大數據存儲、分析的支撐,其中涉及了幾十種NoSQL技術。
3、大數據一體機
這是一種專為大數據的分析處理而設計的軟、硬體結合的產品。它由一組集成的伺服器、存儲設備、操作系統、資料庫管理系統,以及為數據查詢、處理、分析而預安裝和優化的軟體組成,具有良好的穩定性和縱向擴展性。
四、大數據分析挖掘
從可視化分析、數據挖掘演算法、預測性分析、語義引擎、數據質量管理等方面,對雜亂無章的數據,進行萃取、提煉和分析的過程。
1、可視化分析
可視化分析,指藉助圖形化手段,清晰並有效傳達與溝通信息的分析手段。主要應用於海量數據關聯分析,即藉助可視化數據分析平台,對分散異構數據進行關聯分析,並做出完整分析圖表的過程。
具有簡單明了、清晰直觀、易於接受的特點。
2、數據挖掘演算法
數據挖掘演算法,即通過創建數據挖掘模型,而對數據進行試探和計算的,數據分析手段。它是大數據分析的理論核心。
數據挖掘演算法多種多樣,且不同演算法因基於不同的數據類型和格式,會呈現出不同的數據特點。但一般來講,創建模型的過程卻是相似的,即首先分析用戶提供的數據,然後針對特定類型的模式和趨勢進行查找,並用分析結果定義創建挖掘模型的最佳參數,並將這些參數應用於整個數據集,以提取可行模式和詳細統計信息。
3、預測性分析
預測性分析,是大數據分析最重要的應用領域之一,通過結合多種高級分析功能(特別統計分析、預測建模、數據挖掘、文本分析、實體分析、優化、實時評分、機器學習等),達到預測不確定事件的目的。
幫助分用戶析結構化和非結構化數據中的趨勢、模式和關系,並運用這些指標來預測將來事件,為採取措施提供依據。
4、語義引擎
語義引擎,指通過為已有數據添加語義的操作,提高用戶互聯網搜索體驗。
5、數據質量管理
指對數據全生命周期的每個階段(計劃、獲取、存儲、共享、維護、應用、消亡等)中可能引發的各類數據質量問題,進行識別、度量、監控、預警等操作,以提高數據質量的一系列管理活動。
以上是從大的方面來講,具體來說大數據的框架技術有很多,這里列舉其中一些:
文件存儲:Hadoop HDFS、Tachyon、KFS
離線計算:Hadoop MapRece、Spark
流式、實時計算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL資料庫:HBase、Redis、MongoDB
資源管理:YARN、Mesos
日誌收集:Flume、Scribe、Logstash、Kibana
消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式協調服務:Zookeeper
集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
數據挖掘、機器學習:Mahout、Spark MLLib
數據同步:Sqoop
任務調度:Oozie
Ⅱ 什麼是大數據技術
大數據技術是指大數據的應用技術,涵蓋各類大數據平台、大數據指數體系等大數據應用技術。大數據是指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合。是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
大數據技術能夠處理比較大的數據量。其次,能對不同類型的數據進行處理。大數據技術不僅僅對一些大量的、簡單的數據能夠進行處理,通能夠處理一些復雜的數據,例如,文本數據、聲音數據以及圖像數據等等。
另外,大數據技術的應用具有密度低和價值大的效果。一些零散的,各種類型的數據,如果不能在短時間內分析出來信息所表達的含義,那麼可以利用大數據分析技術,將信息中潛藏的價值挖掘出來,以便於工作研究或者其他用途的使用,便於政務的便捷化和深層次化。
大數據技術有哪些
跨粒度計算(In-DatabaseComputing)
Z-Suite支持各種常見的匯總,還支持幾乎全部的專業統計函數。得益於跨粒度計算技術,Z-Suite數據分析引擎將找尋出最優化的計算方案,繼而把所有開銷較大的、昂貴的計算都移動到數據存儲的地方直接計算,我們稱之為庫內計算(In-Database)。這一技術大大減少了數據移動,降低了通訊負擔,保證了高性能數據分析。
並行計算(MPP Computing)
Z-Suite是基於MPP架構的商業智能平台,她能夠把計算分布到多個計算節點,再在指定節點將計算結果匯總輸出。Z-Suite能夠充分利用各種計算和存儲資源,不管是伺服器還是普通的PC,她對網路條件也沒有嚴苛的要求。作為橫向擴展的大數據平台,Z-Suite能夠充分發揮各個節點的計算能力,輕松實現針對TB/PB級數據分析的秒級響應。
列存儲 (Column-Based)
Z-Suite是列存儲的。基於列存儲的數據集市,不讀取無關數據,能降低讀寫開銷,同時提高I/O 的效率,從而大大提高查詢性能。另外,列存儲能夠更好地壓縮數據,一般壓縮比在5 -10倍之間,這樣一來,數據佔有空間降低到傳統存儲的1/5到1/10 。良好的數據壓縮技術,節省了存儲設備和內存的開銷,卻大大了提升計算性能。
內存計算
得益於列存儲技術和並行計算技術,Z-Suite能夠大大壓縮數據,並同時利用多個節點的計算能力和內存容量。一般地,內存訪問速度比磁碟訪問速度要快幾百倍甚至上千倍。通過內存計算,CPU直接從內存而非磁碟上讀取數據並對數據進行計算。內存計算是對傳統數據處理方式的一種加速,是實現大數據分析的關鍵應用技術。
Ⅲ 大數據關鍵技術有哪些
大數據關鍵技術涵蓋數據存儲、處理、應用等多方面的技術,根據大數據的處理過程,可將其分為大數據採集、大數據預處理、大數據存儲及管理、大數據處理、大數據分析及挖掘、大數據展示等。
1、大數據採集技術
大數據採集技術是指通過 RFID 數據、感測器數據、社交網路交互數據及移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。
因為數據源多種多樣,數據量大,產生速度快,所以大數據採集技術也面臨著許多技術挑戰,必須保證數據採集的可靠性和高效性,還要避免重復數據。
2、大數據預處理技術
大數據預處理技術主要是指完成對已接收數據的辨析、抽取、清洗、填補、平滑、合並、規格化及檢查一致性等操作。
因獲取的數據可能具有多種結構和類型,數據抽取的主要目的是將這些復雜的數據轉化為單一的或者便於處理的結構,以達到快速分析處理的目的。
3、大數據存儲及管理技術
大數據存儲及管理的主要目的是用存儲器把採集到的數據存儲起來,建立相應的資料庫,並進行管理和調用。
4、大數據處理
大數據的應用類型很多,主要的處理模式可以分為流處理模式和批處理模式兩種。批處理是先存儲後處理,而流處理則是直接處理。
(3)網站自動推薦大數據的是什麼技術擴展閱讀:
大數據無處不在,大數據應用於各個行業,包括金融、汽車、餐飲、電信、能源、體能和娛樂等在內的社會各行各業都已經融入了大數據的印跡。
1、製造業,利用工業大數據提升製造業水平,包括產品故障診斷與預測、分析工藝流程、改進生產工藝,優化生產過程能耗、工業供應鏈分析與優化、生產計劃與排程。
2、金融行業,大數據在高頻交易、社交情緒分析和信貸風險分析三大金融創新領域發揮重大作用。
3、汽車行業,利用大數據和物聯網技術的無人駕駛汽車,在不遠的未來將走入我們的日常生活。
4、互聯網行業,藉助於大數據技術,可以分析客戶行為,進行商品推薦和針對性廣告投放。
5、電信行業,利用大數據技術實現客戶離網分析,及時掌握客戶離網傾向,出台客戶挽留措施。
Ⅳ 大數據技術有哪些
隨著大數據分析市場迅速擴展,哪些技術是最有需求和最有增長潛力的呢?在Forrester Research的一份最新研究報告中,評估了22種技術在整個數據生命周期中的成熟度和軌跡。這些技術都對大數據的實時、預測和綜合洞察有著巨大的貢獻。
1. 預測分析技術
這也是大數據的主要功能之一。預測分析允許公司通過分析大數據源來發現、評估、優化和部署預測模型,從而提高業務性能或降低風險。同時,大數據的預測分析也與我們的生活息息相關。淘寶會預測你每次購物可能還想買什麼,愛奇藝正在預測你可能想看什麼,百合網和其他約會網站甚至試圖預測你會愛上誰……
2. NoSQL資料庫
NoSQL,Not Only SQL,意思是「不僅僅是SQL」,泛指非關系型資料庫。NoSQL資料庫提供了比關系資料庫更靈活、可伸縮和更便宜的替代方案,打破了傳統資料庫市場一統江山的格局。並且,NoSQL資料庫能夠更好地處理大數據應用的需求。常見的NoSQL資料庫有HBase、Redis、MongoDB、Couchbase、LevelDB等。
3. 搜索和知識發現
支持來自於多種數據源(如文件系統、資料庫、流、api和其他平台和應用程序)中的大型非結構化和結構化數據存儲庫中自助提取信息的工具和技術。如,數據挖掘技術和各種大數據平台。
4. 大數據流計算引擎
能夠過濾、聚合、豐富和分析來自多個完全不同的活動數據源的數據的高吞吐量的框架,可以採用任何數據格式。現今流行的流式計算引擎有Spark Streaming和Flink。
5. 內存數據結構
通過在分布式計算機系統中動態隨機訪問內存(DRAM)、快閃記憶體或SSD上分布數據,提供低延遲的訪問和處理大量數據。
6. 分布式文件存儲
為了保證文件的可靠性和存取性能,數據通常以副本的方式存儲在多個節點上的計算機網路。常見的分布式文件系統有GFS、HDFS、Lustre 、Ceph等。
7. 數據虛擬化
數據虛擬化是一種數據管理方法,它允許應用程序檢索和操作數據,而不需要關心有關數據的技術細節,比如數據在源文件中是何種格式,或者數據存儲的物理位置,並且可以提供單個客戶用戶視圖。
8. 數據集成
用於跨解決方案進行數據編排的工具,如Amazon Elastic MapRece (EMR)、Apache Hive、Apache Pig、Apache Spark、MapRece、Couchbase、Hadoop和MongoDB等。
9. 數據准備
減輕采購、成形、清理和共享各種雜亂數據集的負擔的軟體,以加速數據對分析的有用性。
10. 數據質量
使用分布式數據存儲和資料庫上的並行操作,對大型高速數據集進行數據清理和充實的產品。
Ⅳ 什麼是大數據技術
大數據技術可以理解為在巨量的數據資源中提取到有價值的數據加以分析和處理,主要的表現特徵如下:
數據量大(Volume)。第一個特徵是數據量大,包括採集、存儲和計算的量都非常大。大數據的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。
類型繁多(Variety)。第二個特徵是種類和來源多樣化。包括結構化、半結構化和非結構化數據,具體表現為網路日誌、音頻、視頻、圖片、地理位置信息等等,多類型的數據對數據的處理能力提出了更高的要求。
價值密度低(Value)。第三個特徵是數據價值密度相對較低,或者說是浪里淘沙卻又彌足珍貴。隨著互聯網以及物聯網的廣泛應用,信息感知無處不在,信息海量,但價值密度較低,如何結合業務邏輯並通過強大的機器演算法來挖掘數據價值,是大數據時代最需要解決的問題。
速度快時效高(Velocity)。第四個特徵數據增長速度快,處理速度也快,時效性要求高。比如搜索引擎要求幾分鍾前的新聞能夠被用戶查詢到,個性化推薦演算法盡可能要求實時完成推薦。這是大數據區別於傳統數據挖掘的顯著特徵。
Ⅵ 大數據核心技術有哪些
大數據技術的體系龐大且復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、NoSQL資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。首先給出一個通用化的大數據處理框架,主要分為下面幾個方面:數據採集與預處理、數據存儲、數據清洗、數據查詢分析和數據可視化。
一、數據採集與預處理
對於各種來源的數據,包括移動互聯網數據、社交網路的數據等,這些結構化和非結構化的海量數據是零散的,也就是所謂的數據孤島,此時的這些數據並沒有什麼意義,數據採集就是將這些數據寫入數據倉庫中,把零散的數據整合在一起,對這些數據綜合起來進行分析。數據採集包括文件日誌的採集、資料庫日誌的採集、關系型資料庫的接入和應用程序的接入等。在數據量比較小的時候,可以寫個定時的腳本將日誌寫入存儲系統,但隨著數據量的增長,這些方法無法提供數據安全保障,並且運維困難,需要更強壯的解決方案。
Flume NG作為實時日誌收集系統,支持在日誌系統中定製各類數據發送方,用於收集數據,同時,對數據進行簡單處理,並寫到各種數據接收方(比如文本,HDFS,Hbase等)。Flume NG採用的是三層架構:Agent層,Collector層和Store層,每一層均可水平拓展。其中Agent包含Source,Channel和 Sink,source用來消費(收集)數據源到channel組件中,channel作為中間臨時存儲,保存所有source的組件信息,sink從channel中讀取數據,讀取成功之後會刪除channel中的信息。
NDC,Netease Data Canal,直譯為網易數據運河系統,是網易針對結構化資料庫的數據實時遷移、同步和訂閱的平台化解決方案。它整合了網易過去在數據傳輸領域的各種工具和經驗,將單機資料庫、分布式資料庫、OLAP系統以及下游應用通過數據鏈路串在一起。除了保障高效的數據傳輸外,NDC的設計遵循了單元化和平台化的設計哲學。
Logstash是開源的伺服器端數據處理管道,能夠同時從多個來源採集數據、轉換數據,然後將數據發送到您最喜歡的 「存儲庫」 中。一般常用的存儲庫是Elasticsearch。Logstash 支持各種輸入選擇,可以在同一時間從眾多常用的數據來源捕捉事件,能夠以連續的流式傳輸方式,輕松地從您的日誌、指標、Web 應用、數據存儲以及各種 AWS 服務採集數據。
Sqoop,用來將關系型資料庫和Hadoop中的數據進行相互轉移的工具,可以將一個關系型資料庫(例如Mysql、Oracle)中的數據導入到Hadoop(例如HDFS、Hive、Hbase)中,也可以將Hadoop(例如HDFS、Hive、Hbase)中的數據導入到關系型資料庫(例如Mysql、Oracle)中。Sqoop 啟用了一個 MapRece 作業(極其容錯的分布式並行計算)來執行任務。Sqoop 的另一大優勢是其傳輸大量結構化或半結構化數據的過程是完全自動化的。
流式計算是行業研究的一個熱點,流式計算對多個高吞吐量的數據源進行實時的清洗、聚合和分析,可以對存在於社交網站、新聞等的數據信息流進行快速的處理並反饋,目前大數據流分析工具有很多,比如開源的strom,spark streaming等。
Strom集群結構是有一個主節點(nimbus)和多個工作節點(supervisor)組成的主從結構,主節點通過配置靜態指定或者在運行時動態選舉,nimbus與supervisor都是Storm提供的後台守護進程,之間的通信是結合Zookeeper的狀態變更通知和監控通知來處理。nimbus進程的主要職責是管理、協調和監控集群上運行的topology(包括topology的發布、任務指派、事件處理時重新指派任務等)。supervisor進程等待nimbus分配任務後生成並監控worker(jvm進程)執行任務。supervisor與worker運行在不同的jvm上,如果由supervisor啟動的某個worker因為錯誤異常退出(或被kill掉),supervisor會嘗試重新生成新的worker進程。
當使用上游模塊的數據進行計算、統計、分析時,就可以使用消息系統,尤其是分布式消息系統。Kafka使用Scala進行編寫,是一種分布式的、基於發布/訂閱的消息系統。Kafka的設計理念之一就是同時提供離線處理和實時處理,以及將數據實時備份到另一個數據中心,Kafka可以有許多的生產者和消費者分享多個主題,將消息以topic為單位進行歸納;Kafka發布消息的程序稱為procer,也叫生產者,預訂topics並消費消息的程序稱為consumer,也叫消費者;當Kafka以集群的方式運行時,可以由一個服務或者多個服務組成,每個服務叫做一個broker,運行過程中procer通過網路將消息發送到Kafka集群,集群向消費者提供消息。Kafka通過Zookeeper管理集群配置,選舉leader,以及在Consumer Group發生變化時進行rebalance。Procer使用push模式將消息發布到broker,Consumer使用pull模式從broker訂閱並消費消息。Kafka可以和Flume一起工作,如果需要將流式數據從Kafka轉移到hadoop,可以使用Flume代理agent,將Kafka當做一個來源source,這樣可以從Kafka讀取數據到Hadoop。
Zookeeper是一個分布式的,開放源碼的分布式應用程序協調服務,提供數據同步服務。它的作用主要有配置管理、名字服務、分布式鎖和集群管理。配置管理指的是在一個地方修改了配置,那麼對這個地方的配置感興趣的所有的都可以獲得變更,省去了手動拷貝配置的繁瑣,還很好的保證了數據的可靠和一致性,同時它可以通過名字來獲取資源或者服務的地址等信息,可以監控集群中機器的變化,實現了類似於心跳機制的功能。
二、數據存儲
Hadoop作為一個開源的框架,專為離線和大規模數據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用於數據存儲。
HBase,是一個分布式的、面向列的開源資料庫,可以認為是hdfs的封裝,本質是數據存儲、NoSQL資料庫。HBase是一種Key/Value系統,部署在hdfs上,克服了hdfs在隨機讀寫這個方面的缺點,與hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用伺服器,來增加計算和存儲能力。
Phoenix,相當於一個Java中間件,幫助開發工程師能夠像使用JDBC訪問關系型資料庫一樣訪問NoSQL資料庫HBase。
Yarn是一種Hadoop資源管理器,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。Yarn由下面的幾大組件構成:一個全局的資源管理器ResourceManager、ResourceManager的每個節點代理NodeManager、表示每個應用的Application以及每一個ApplicationMaster擁有多個Container在NodeManager上運行。
Mesos是一款開源的集群管理軟體,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等應用架構。
Redis是一種速度非常快的非關系資料庫,可以存儲鍵與5種不同類型的值之間的映射,可以將存儲在內存的鍵值對數據持久化到硬碟中,使用復制特性來擴展性能,還可以使用客戶端分片來擴展寫性能。
Atlas是一個位於應用程序與MySQL之間的中間件。在後端DB看來,Atlas相當於連接它的客戶端,在前端應用看來,Atlas相當於一個DB。Atlas作為服務端與應用程序通訊,它實現了MySQL的客戶端和服務端協議,同時作為客戶端與MySQL通訊。它對應用程序屏蔽了DB的細節,同時為了降低MySQL負擔,它還維護了連接池。Atlas啟動後會創建多個線程,其中一個為主線程,其餘為工作線程。主線程負責監聽所有的客戶端連接請求,工作線程只監聽主線程的命令請求。
Ku是圍繞Hadoop生態圈建立的存儲引擎,Ku擁有和Hadoop生態圈共同的設計理念,它運行在普通的伺服器上、可分布式規模化部署、並且滿足工業界的高可用要求。其設計理念為fast analytics on fast data。作為一個開源的存儲引擎,可以同時提供低延遲的隨機讀寫和高效的數據分析能力。Ku不但提供了行級的插入、更新、刪除API,同時也提供了接近Parquet性能的批量掃描操作。使用同一份存儲,既可以進行隨機讀寫,也可以滿足數據分析的要求。Ku的應用場景很廣泛,比如可以進行實時的數據分析,用於數據可能會存在變化的時序數據應用等。
在數據存儲過程中,涉及到的數據表都是成千上百列,包含各種復雜的Query,推薦使用列式存儲方法,比如parquent,ORC等對數據進行壓縮。Parquet 可以支持靈活的壓縮選項,顯著減少磁碟上的存儲。
三、數據清洗
MapRece作為Hadoop的查詢引擎,用於大規模數據集的並行計算,」Map(映射)」和」Rece(歸約)」,是它的主要思想。它極大的方便了編程人員在不會分布式並行編程的情況下,將自己的程序運行在分布式系統中。
隨著業務數據量的增多,需要進行訓練和清洗的數據會變得越來越復雜,這個時候就需要任務調度系統,比如oozie或者azkaban,對關鍵任務進行調度和監控。
Oozie是用於Hadoop平台的一種工作流調度引擎,提供了RESTful API介面來接受用戶的提交請求(提交工作流作業),當提交了workflow後,由工作流引擎負責workflow的執行以及狀態的轉換。用戶在HDFS上部署好作業(MR作業),然後向Oozie提交Workflow,Oozie以非同步方式將作業(MR作業)提交給Hadoop。這也是為什麼當調用Oozie 的RESTful介面提交作業之後能立即返回一個JobId的原因,用戶程序不必等待作業執行完成(因為有些大作業可能會執行很久(幾個小時甚至幾天))。Oozie在後台以非同步方式,再將workflow對應的Action提交給hadoop執行。
Azkaban也是一種工作流的控制引擎,可以用來解決有多個hadoop或者spark等離線計算任務之間的依賴關系問題。azkaban主要是由三部分構成:Relational Database,Azkaban Web Server和Azkaban Executor Server。azkaban將大多數的狀態信息都保存在MySQL中,Azkaban Web Server提供了Web UI,是azkaban主要的管理者,包括project的管理、認證、調度以及對工作流執行過程中的監控等;Azkaban Executor Server用來調度工作流和任務,記錄工作流或者任務的日誌。
流計算任務的處理平台Sloth,是網易首個自研流計算平台,旨在解決公司內各產品日益增長的流計算需求。作為一個計算服務平台,其特點是易用、實時、可靠,為用戶節省技術方面(開發、運維)的投入,幫助用戶專注於解決產品本身的流計算需求。
四、數據查詢分析
Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數據映射為一張資料庫表,並提供 HQL(Hive SQL)查詢功能。Hive本身不存儲和計算數據,它完全依賴於HDFS和MapRece。可以將Hive理解為一個客戶端工具,將SQL操作轉換為相應的MapRece jobs,然後在hadoop上面運行。Hive支持標準的SQL語法,免去了用戶編寫MapRece程序的過程,它的出現可以讓那些精通SQL技能、但是不熟悉MapRece 、編程能力較弱與不擅長Java語言的用戶能夠在HDFS大規模數據集上很方便地利用SQL 語言查詢、匯總、分析數據。
Hive是為大數據批量處理而生的,Hive的出現解決了傳統的關系型資料庫(MySql、Oracle)在大數據處理上的瓶頸 。Hive 將執行計劃分成map->shuffle->rece->map->shuffle->rece…的模型。如果一個Query會被編譯成多輪MapRece,則會有更多的寫中間結果。由於MapRece執行框架本身的特點,過多的中間過程會增加整個Query的執行時間。在Hive的運行過程中,用戶只需要創建表,導入數據,編寫SQL分析語句即可。剩下的過程由Hive框架自動的完成。
Impala是對Hive的一個補充,可以實現高效的SQL查詢。使用Impala來實現SQL on Hadoop,用來進行大數據實時查詢分析。通過熟悉的傳統關系型資料庫的SQL風格來操作大數據,同時數據也是可以存儲到HDFS和HBase中的。Impala沒有再使用緩慢的Hive+MapRece批處理,而是通過使用與商用並行關系資料庫中類似的分布式查詢引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分組成),可以直接從HDFS或HBase中用SELECT、JOIN和統計函數查詢數據,從而大大降低了延遲。Impala將整個查詢分成一執行計劃樹,而不是一連串的MapRece任務,相比Hive沒了MapRece啟動時間。
Hive 適合於長時間的批處理查詢分析,而Impala適合於實時互動式SQL查詢,Impala給數據人員提供了快速實驗,驗證想法的大數據分析工具,可以先使用Hive進行數據轉換處理,之後使用Impala在Hive處理好後的數據集上進行快速的數據分析。總的來說:Impala把執行計劃表現為一棵完整的執行計劃樹,可以更自然地分發執行計劃到各個Impalad執行查詢,而不用像Hive那樣把它組合成管道型的map->rece模式,以此保證Impala有更好的並發性和避免不必要的中間sort與shuffle。但是Impala不支持UDF,能處理的問題有一定的限制。
Spark擁有Hadoop MapRece所具有的特點,它將Job中間輸出結果保存在內存中,從而不需要讀取HDFS。Spark 啟用了內存分布數據集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。
Nutch 是一個開源Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。
Solr用Java編寫、運行在Servlet容器(如Apache Tomcat或Jetty)的一個獨立的企業級搜索應用的全文搜索伺服器。它對外提供類似於Web-service的API介面,用戶可以通過http請求,向搜索引擎伺服器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。
Elasticsearch是一個開源的全文搜索引擎,基於Lucene的搜索伺服器,可以快速的儲存、搜索和分析海量的數據。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
還涉及到一些機器學習語言,比如,Mahout主要目標是創建一些可伸縮的機器學習演算法,供開發人員在Apache的許可下免費使用;深度學習框架Caffe以及使用數據流圖進行數值計算的開源軟體庫TensorFlow等,常用的機器學習演算法比如,貝葉斯、邏輯回歸、決策樹、神經網路、協同過濾等。
五、數據可視化
對接一些BI平台,將分析得到的數據進行可視化,用於指導決策服務。主流的BI平台比如,國外的敏捷BI Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數(可點擊這里免費試用)等。
在上面的每一個階段,保障數據的安全是不可忽視的問題。
基於網路身份認證的協議Kerberos,用來在非安全網路中,對個人通信以安全的手段進行身份認證,它允許某實體在非安全網路環境下通信,向另一個實體以一種安全的方式證明自己的身份。
控制許可權的ranger是一個Hadoop集群許可權框架,提供操作、監控、管理復雜的數據許可權,它提供一個集中的管理機制,管理基於yarn的Hadoop生態圈的所有數據許可權。可以對Hadoop生態的組件如Hive,Hbase進行細粒度的數據訪問控制。通過操作Ranger控制台,管理員可以輕松的通過配置策略來控制用戶訪問HDFS文件夾、HDFS文件、資料庫、表、欄位許可權。這些策略可以為不同的用戶和組來設置,同時許可權可與hadoop無縫對接。
Ⅶ 大數據的核心技術有哪些
大數據技術的體系龐大且復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、資料庫、數據倉庫、機器學習、並行計算、可視化等。
1、數據採集與預處理:
Flume NG實時日誌收集系統,支持在日誌系統中定製各類數據發送方,用於收集數據;
Zookeeper是一個分布式的,開放源碼的分布式應用程序協調服務,提供數據同步服務。
2、數據存儲:
Hadoop作為一個開源的框架,專為離線和大規模數據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用於數據存儲。
HBase,是一個分布式的、面向列的開源資料庫,可以認為是hdfs的封裝,本質是數據存儲、NoSQL資料庫。
3、數據清洗:MapRece作為Hadoop的查詢引擎,用於大規模數據集的並行計算
4、數據查詢分析:
Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數據映射為一張資料庫表,並提供 HQL(Hive SQL)查詢功能。
Spark 啟用了內存分布數據集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。
5、數據可視化:對接一些BI平台,將分析得到的數據進行可視化,用於指導決策服務。
Ⅷ 什麼是大數據及大數據技術
別再忽視大數據了,努力固然重要,但是把握住時代發展潮流,選擇好方向也必不可少,甚至更重要。
目前企業提供的大數據崗位按照工作內容要求,可以分為以下幾類:
①初級分析類,包括業務數據分析師、商務數據分析師等。②挖掘演算法類,包括數據挖掘工程師、機器學習工程師、深度學習工程師、演算法工程師、AI工程師、數據科學家等。③開發運維類,包括大數據開發工程師、大數據架構工程師、大數據運維工程師、數據可視化工程師、數據採集工程師、資料庫管理員等。④產品運營類,包括數據運營經理、數據產品經理、數據項目經理、大數據銷售等。
大數據本身是一個抽象的概念。從一般意義上講,大數據是指無法在有限時間內用常規軟體工具對其進行獲取、存儲、管理和處理的數據集合。
目前,業界對大數據還沒有一個統一的定義,但是大家普遍認為,大數據具備 Volume、Velocity、Variety 和 Value 四個特徵,簡稱「4V」,即數據體量巨大、數據速度快、數據類型繁多和數據價值密度低,如圖 1 所示。下面分別對每個特徵作簡要描述。
1)Volume:表示大數據的數據體量巨大。
數據集合的規模不斷擴大,已經從 GB 級增加到 TB 級再增加到 PB 級,近年來,數據量甚至開始以 EB 和 ZB 來計數。
例如,一個中型城市的視頻監控信息一天就能達到幾十 TB 的數據量。網路首頁導航每天需要提供的數據超過 1-5PB,如果將這些數據列印出來,會超過 5000 億張 A4 紙。圖 2 展示了每分鍾互聯網產生的各類數據的量。
2)Velocity:表示大數據的數據產生、處理和分析的速度在持續加快。
加速的原因是數據創建的實時性特點,以及將流數據結合到業務流程和決策過程中的需求。數據處理速度快,處理模式已經開始從批處理轉向流處理。
業界對大數據的處理能力有一個稱謂——「 1 秒定律」,也就是說,可以從各種類型的數據中快速獲得高價值的信息。大數據的快速處理能力充分體現出它與傳統的數據處理技術的本質區別。
3)Variety:表示大數據的數據類型繁多。
傳統 IT 產業產生和處理的數據類型較為單一,大部分是結構化數據。隨著感測器、智能設備、社交網路、物聯網、移動計算、在線廣告等新的渠道和技術不斷涌現,產生的數據類型無以計數。
現在的數據類型不再只是格式化數據,更多的是半結構化或者非結構化數據,如 XML、郵件、博客、即時消息、視頻、照片、點擊流、 日誌文件等。企業需要整合、存儲和分析來自復雜的傳統和非傳統信息源的數據,包括企業內部和外部的數據。
4)Value:表示大數據的數據價值密度低。
大數據由於體量不斷加大,單位數據的價值密 度在不斷降低,然而數據的整體價值在提高。以監控視頻為例,在一小時的視頻中,有用的數據可能僅僅只有一兩秒,但是卻會非常重要。現在許多專家已經將大數據等同於黃金和石油,這表示大數據當中蘊含了無限的商業價值。
通過對大數據進行處理,找出其中潛在的商業價值,將會產生巨大的商業利潤。
Ⅸ 大數據技術是什麼
大數據本身是一個抽象的概念。從一般意義上講,大數據是指無法在有限時間內用常規軟體工具對其進行獲取、存儲、管理和處理的數據集合。
目前,業界對大數據還沒有一個統一的定義,但是大家普遍認為,大數據具備 Volume、Velocity、Variety 和 Value 四個特徵,簡稱「4V」,即數據體量巨大、數據速度快、數據類型繁多和數據價值密度低,如圖 1 所示。下面分別對每個特徵作簡要描述。
1)Volume:表示大數據的數據體量巨大。
數據集合的規模不斷擴大,已經從 GB 級增加到 TB 級再增加到 PB 級,近年來,數據量甚至開始以 EB 和 ZB 來計數。
例如,一個中型城市的視頻監控信息一天就能達到幾十 TB 的數據量。網路首頁導航每天需要提供的數據超過 1-5PB,如果將這些數據列印出來,會超過 5000 億張 A4 紙。圖 2 展示了每分鍾互聯網產生的各類數據的量。
2)Velocity:表示大數據的數據產生、處理和分析的速度在持續加快。
加速的原因是數據創建的實時性特點,以及將流數據結合到業務流程和決策過程中的需求。數據處理速度快,處理模式已經開始從批處理轉向流處理。
業界對大數據的處理能力有一個稱謂——「 1 秒定律」,也就是說,可以從各種類型的數據中快速獲得高價值的信息。大數據的快速處理能力充分體現出它與傳統的數據處理技術的本質區別。
3)Variety:表示大數據的數據類型繁多。
傳統 IT 產業產生和處理的數據類型較為單一,大部分是結構化數據。隨著感測器、智能設備、社交網路、物聯網、移動計算、在線廣告等新的渠道和技術不斷涌現,產生的數據類型無以計數。
現在的數據類型不再只是格式化數據,更多的是半結構化或者非結構化數據,如 XML、郵件、博客、即時消息、視頻、照片、點擊流、 日誌文件等。企業需要整合、存儲和分析來自復雜的傳統和非傳統信息源的數據,包括企業內部和外部的數據。
4)Value:表示大數據的數據價值密度低。
大數據由於體量不斷加大,單位數據的價值密 度在不斷降低,然而數據的整體價值在提高。以監控視頻為例,在一小時的視頻中,有用的數據可能僅僅只有一兩秒,但是卻會非常重要。現在許多專家已經將大數據等同於黃金和石油,這表示大數據當中蘊含了無限的商業價值。
通過對大數據進行處理,找出其中潛在的商業價值,將會產生巨大的商業利潤