導航:首頁 > 網路數據 > 自己動手做大數據系統

自己動手做大數據系統

發布時間:2023-06-04 20:17:23

『壹』 大數據量的系統資料庫結構如何設計

1、把你表中經常查詢的和不常用的分開幾個表,也就是橫向切分
2、把不同類型的分成幾個表,縱向切分
3、常用聯接的建索引
4、伺服器放幾個硬碟,把數據、日誌、索引分盤存放,這樣可以提高IO吞吐率
5、用優化器,優化你的查詢
6、考慮冗餘,這樣可以減少連接
7、可以考慮建立統計表,就是實時生成總計表,這樣可以避免每次查詢都統計一次
mrzxc 等說的好,考慮你的系統,注意負載平衡,查詢優化,25 萬並不大,可以建一個表,然後按mrzxc 的3 4 5 7 優化。 速度,影響它的因數太多了,且數據量越大越明顯。
1、存儲 將硬碟分成NTFS格式,NTFS比FAT32快,並看你的數據文件大小,1G以上你可以採用多資料庫文件,這樣可以將存取負載分散到多個物理硬碟或磁碟陣列上。
2、tempdb tempdb也應該被單獨的物理硬碟或磁碟陣列上,建議放在RAID 0上,這樣它的性能最高,不要對它設置最大值讓它自動增長
3、日誌文件 日誌文件也應該和數據文件分開在不同的理硬碟或磁碟陣列上,這樣也可以提高硬碟I/O性能。
4、分區視圖 就是將你的數據水平分割在集群伺服器上,它適合大規模OLTP,SQL群集上,如果你資料庫不是訪問特別大不建議使用。
5、簇索引 你的表一定有個簇索引,在使用簇索引查詢的時候,區塊查詢是最快的,如用between,應為他是物理連續的,你應該盡量減少對它的updaet,應為這可以使它物理不連續。
6、非簇索引 非簇索引與物理順序無關,設計它時必須有高度的可選擇性,可以提高查詢速度,但對表update的時候這些非簇索引會影響速度,且佔用空間大,如果你願意用空間和修改時間換取速度可以考慮。
7、索引視圖 如果在視圖上建立索引,那視圖的結果集就會被存儲起來,對與特定的查詢性能可以提高很多,但同樣對update語句時它也會嚴重減低性能,一般用在數據相對穩定的數據倉庫中。
8、維護索引 你在將索引建好後,定期維護是很重要的,用dbcc showcontig來觀察頁密度、掃描密度等等,及時用dbcc indexdefrag來整理表或視圖的索引,在必要的時候用dbcc dbreindex來重建索引可以受到良好的效果。 不論你是用幾個表1、2、3點都可以提高一定的性能,5、6、8點你是必須做的,至於4、7點看你的需求,我個人是不建議的。打了半個多小時想是在寫論文,希望對你有幫助。

『貳』 想從零開始自學大數據,請問有哪些書籍推薦

在人人高呼的大數據時代,你是想繼續做一個月薪6K+的碼農,還是想要翻身學習成為炙手可熱名企瘋搶的大數據工程師呢?
隨著互聯網技術的發展,大數據行業前景非常被看好,有很多朋友對大數據行業心嚮往之,卻苦於不知道該如何下手,或者說學習大數據不知道應該看些什麼書。作為一個零基礎大數據入門學習者該看哪些書?今天就給大家分享幾本那些不容錯過的大數據書籍。

1、《數據挖掘》
這是一本關於數據挖掘領域的綜合概述,本書前版曾被KDnuggets的讀者評選為最受歡迎的數據挖掘專著,是一本可讀性極佳的教材。它從資料庫角度全面系統地介紹數據挖掘的概念、方法和技術以及技術研究進展,並重點關注近年來該領域重要和最新的課題——數據倉庫和數據立方體技術,流數據挖掘,社會化網路挖掘,空間、多媒體和其他復雜數據挖掘。
2、《Big Data》
這是一本在大數據的背景下,描述關於數據建模,數據層,數據處理需求分析以及數據架構和存儲實現問題的書。這本書提供了令人耳目一新的全面解決方案。但不可忽略的是,它也引入了大多數開發者並不熟悉的、困擾傳統架構的復雜性問題。本書將教你充分利用集群硬體優勢的Lambda架構,以及專門用來捕獲和分析網路規模數據的新工具,來創建這些系統。
3、《Mining of Massive Datasets》
這是一本書是關於數據挖掘的。但是本書主要關注極大規模數據的挖掘,也就是說這些數據大到無法在內存中存放。由於重點強調數據的規模,所以本書的例子大都來自Web本身或者Web上導出的數據。另外,本書從演算法的角度來看待數據挖掘,即數據挖掘是將演算法應用於數據,而不是使用數據來「訓練」某種類型的機器學習引擎。

『叄』 大數據學習路線是什麼

主要分為 7 個階段:入門知識 → java 基礎 → Scala 基礎 → Hadoop 技術模塊 → Hadoop 項目實戰 → Spark 技術模塊 → 大數據項目實戰。

階段一:學習入門知識

這一部分主要針對的是新手,在學習之前需要先掌握基本的資料庫知識。MySQL 是一個 DBMS(資料庫管理系統),是最流行的關系型資料庫管理系統(關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據)。

MongoDB 是 IT 行業非常流行的一種非關系型資料庫(NoSQL),其靈活的數據存儲方式備受當前 IT 從業人員的青睞。

而 Redis 是一個開源、支持網路、基於內存、鍵值對存儲資料庫。兩者都非常有必要了解。

1、Linux 基礎入門(新版)

2、Vim編輯器

3、Git 實戰教程

4、MySQL 基礎課程

5、MongoDB 基礎教程

6、Redis基礎教程

階段二:Java基礎

Java 是目前使用最為廣泛的編程語言,它具有的眾多特性,特別適合作為大數據應用的開發語言。

Java 語言具有功能強大和簡單易用兩個特徵,跨平台應用能力比 C、C++ 更易用,更容易上手。同時還具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。最重要的一點是 Hadoop 是用 Java 編寫的。

1、Java編程語言(新版)

2、Java進階之設計模式

3、J2SE核心開發實戰

4、JDK 核心 API

5、JDBC 入門教程

6、Java 8 新特性指南

階段三:Scala基礎

Scala 是一種多範式的編程語言,其設計的初衷是要集成面向對象編程和函數式編程的各種特性。由於 Scala 運行於 Java 平台(Java 虛擬機),並兼容現有的Java 程序,所以 Scala 可以和大數據相關的基於 JVM 的系統很好的集成。

1、Scala 開發教程

2、Scala 專題教程 - Case Class和模式匹配

3、Scala 專題教程 - 隱式變換和隱式參數

4、Scala 專題教程 - 抽象成員

5、Scala 專題教程 - Extractor

6、Scala 開發二十四點游戲

階段四:Hadoop技術模塊

Hadoop 是一款支持數據密集型分布式應用並以 Apache 2.0 許可協議發布的開源軟體框架,它能搭建大型數據倉庫,PB 級別數據的存儲、處理、分析、統計等業務。編程語言你可以選,但 Hadoop 一定是大數據必學內容。

1、Hadoop入門進階課程

2、Hadoop部署及管理

3、HBASE 教程

4、Hadoop 分布式文件系統--導入和導出數據

5、使用 Flume 收集數據

階段五:Hadoop項目實戰

當然,學完理論就要進行動手實戰了,Hadoop 項目實戰可以幫助加深對內容的理解,並鍛煉動手能力。

1、Hadoop 圖處理--《hadoop應用框架》

階段六:Spark技術模塊

Spark 和 Hadoop 都是大數據框架。Hadoop 提供了 Spark 所沒有的功能特性,比如分布式文件系統,而 Spark 為需要它的那些數據集提供了實時內存處理。所以學習 Spark 也非常必要。

1、Spark

2、x 快速入門教程

2、Spark 大數據動手實驗

3、Spark 基礎之 GraphX 圖計算框架學習

4、Spark 基礎之 DataFrame 基本概念學習

5、Spark 基礎之 DataFrame 高階應用技巧

6、Spark 基礎之 Streaming 快速上手

7、Spark 基礎之 SQL 快速上手

8、Spark 基礎之使用機器學習庫 MLlib

9、Spark 基礎之 SparkR 快速上手

10、流式實時日誌分析系統--《Spark 最佳實踐》

11、使用 Spark 和 D3.js 分析航班大數據

階段七:大數據項目實戰

最後階段提供了大數據實戰項目,這是對常用技能的系統運用,例如使用常用的機器學習進行建模、分析和運算,這是成為大數據工程師過程中的重要一步。

1、Ebay 在線拍賣數據分析

2、流式實時日誌分析系統--《Spark 最佳實踐》

3、大數據帶你挖掘打車的秘籍

4、Twitter數據情感分析

5、使用 Spark 進行流量日誌分析

6、Spark流式計算電商商品關注度

7、Spark的模式挖掘-FPGrowth演算法

(3)自己動手做大數據系統擴展閱讀:

大數據技術的具體內容:

分布式存儲計算架構(強烈推薦:Hadoop)

分布式程序設計(包含:Apache Pig或者Hive)

分布式文件系統(比如:Google GFS)

多種存儲模型,主要包含文檔,圖,鍵值,時間序列這幾種存儲模型(比如:BigTable,Apollo,DynamoDB等)

數據收集架構(比如:Kinesis,Kafla)

集成開發環境(比如:R-Studio)

程序開發輔助工具(比如:大量的第三方開發輔助工具)

調度協調架構工具(比如:Apache Aurora)

機器學習(常用的有Apache Mahout 或 H2O)

託管管理(比如:Apache Hadoop Benchmarking)

安全管理(常用的有Gateway)

大數據系統部署(可以看下Apache Ambari)

搜索引擎架構(學習或者企業都建議使用Lucene搜索引擎)

多種資料庫的演變(MySQL/Memcached)

商業智能(大力推薦:Jaspersoft)

數據可視化(這個工具就很多了,可以根據實際需要來選擇)

大數據處理演算法(10大經典演算法)



『肆』 大數據開發難不難學

大數據開發,難點有以下4個階段:

1、數據採集

數據採集有線上和線下兩種方式,線上一般通過爬蟲、通過抓取,或者通過已有應用系統的採集,在這個階段,我們可以做一個大數據採集平台,依託自動爬蟲(使用python或者nodejs製作爬蟲軟體),ETL工具、或者自定義的抽取轉換引擎,從文件中、資料庫中、網頁中專項爬取數據,如果這一步通過自動化系統來做的話,可以很方便的管理所有的原始數據,並且從數據的開始對數據進行標簽採集,可以規范開發人員的工作。並且目標數據源可以更方便的管理。

數據採集的難點在於多數據源,例如mysql、postgresql、sqlserver 、 mongodb 、sqllite。還有本地文件、excel統計文檔、甚至是doc文件。如何將他們規整的、有方案的整理進我們的大數據流程中也是必不可缺的一環。

2、數據匯聚

數據的匯聚是大數據流程關鍵的一步,你可以在這里加上數據標准化,你也可以在這里做數據清洗,數據合並,還可以在這一步將數據存檔,將確認可用的數據經過可監控的流程進行整理歸類,這里產出的所有數據就是整個公司的數據資產了,到了一定的量就是一筆固定資產。

數據匯聚的難點在於如何標准化數據,例如表名標准化,表的標簽分類,表的用途,數據的量,是否有數據增量?,數據是否可用? 需要在業務上下很大的功夫,必要時還要引入智能化處理,例如根據內容訓練結果自動打標簽,自動分配推薦表名、表欄位名等。還有如何從原始數據中導入數據等。

3、數據轉換和映射

經過數據匯聚的數據資產如何提供給具體的使用方使用?在這一步,主要就是考慮數據如何應用,如何將兩個?三個?數據表轉換成一張能夠提供服務的數據。然後定期更新增量。

經過前面的那幾步,在這一步難點並不太多了,如何轉換數據與如何清洗數據、標准數據無二,將兩個欄位的值轉換成一個欄位,或者根據多個可用表統計出一張圖表數據等等。

4、數據應用

數據的應用方式很多,有對外的、有對內的,如果擁有了前期的大量數據資產,通過restful API提供給用戶?或者提供流式引擎 KAFKA 給應用消費? 或者直接組成專題數據,供自己的應用查詢?這里對數據資產的要求比較高,所以前期的工作做好了,這里的自由度很高。

大數據開發的難點主要是監控,怎麼樣規劃開發人員的工作?開發人員隨隨便便採集了一堆垃圾數據,並且直連資料庫。 短期來看,這些問題比較小,可以矯正。 但是在資產的量不斷增加的時候,這就是一顆定時炸彈,隨時會引爆,然後引發一系列對數據資產的影響,例如數據混亂帶來的就是數據資產的價值下降,客戶信任度變低。

『伍』 大數據如何入門

聽說你想要學大數據?你確定你搞清楚概念了嗎?我們來做個小測驗吧:
數據分析師在公司是干什麼的?
大數據和普通數據最大的區別是什麼?
你的日常工作中根本接觸不到大數據,你真正想學的是大數據嗎?
有點蒙圈了吧。魚君正是要幫你在最短的時間內理清這些概念,找准自己前進的方向。
大數據之「大」數據,大家會陌生嗎?不會。我們每天的日常生活都會接觸到數據。淘寶購物時貨比三家的價格,年終考核之後發給我們的獎金,發表在知乎上的文章的評論數量,這些都是數據。
從人們會計數開始,數據就有了,數據分析也是。那麼大數據呢?
說到大數據,你就繞不開互聯網。在互聯網出現之前,雖然政府部門和一些公共事業單位通過日積月累獲得了較大量的數據,但並沒有形成足夠的影響力。直到互聯網產品的出現,由於它收集用戶數據的便利性,通常在一天之內就能夠累計其他行業可能一年才能獲取的數據量。
數據量的升級造成演算法和硬體都必須要升級,操作起來的技術難度也就會提高很多。這個時候,就需要專業的技術和平台來完成存儲,處理和分析大數據的工作。比如說,大家都聽過的Hadoop平台,MapRece演算法。都是大數據時代的產物。
因此,我認為,大數據的核心,就在於大。
有一定規模的互聯網公司都會成立專門的大數據部門來管理自己產品所收集到的大數據。數據量越大,處理難度就越高,相應的,可能挖掘到的內涵也會更多。於是,大數據就成了一個產業,一個火熱的產業。
大數據圈子裡的人在大數據行業這個圈子裡,公司提供的職位大致分為三類:數據分析師,數據產品經理,數據工程師。他們緊密合作,共同驅動公司的數據決策文化。
那麼,著三種職位都是做什麼的?又該怎麼入行呢?
數據分析師
數據分析師,是使用大數據的人。核心是掌握各種數據分析工具和數據分析技能,目標是為公司管理層和產品團隊提供分析報告,幫助他們做決策。
實際工作中,數據會被處理成各種不同的類型提供給數據分析師使用,有比較原始的,有比較簡單好用的。因此,數據分析師需要掌握R, SQL,Excel, Python基礎編程等多種技能,以及熟練掌握常用的數據分析方法。
如果你立志於成為一個數據分析師甚至數據科學家,那麼我強烈建議你進行系統的學習。
數據產品經理
數據產品經理是設計數據產品的人。核心技能是數據需求分析和數據產品的設計,和其他的互聯網產品經理並沒有本質的不同。實際工作中,數據產品經理需要收集不同用戶的數據需求並且設計出好用的數據產品提供給大家,幫助他們「用數據做決定」。
怎麼入門呢?關於具體的進階流程,我希望你聽一下我在一塊聽聽上做的講座《4步讓你成為大數據產品經理》,會為你提供非常全面的介紹。
常見的推薦入門書籍有《人人都是產品經理》,《The DatawareHouse Toolkit》,《Lean Analytics》等等。
數據工程師
數據工程師,簡單分兩種,一類是數據挖掘工程師,另外一類是大數據平台工程師。工程師的基本技能當然是寫代碼,寫高質量的代碼。
數據挖掘工程師主要工作是開發大數據流水線以及和數據分析師一起完成數據挖掘項目,而數據平台工程師主要工作是維護大數據平台。
因此,理工科背景出身,掌握C, C#, Python等編程/腳本語言,熟悉各種基礎演算法即可以勝任。
如何用數據做決策
對於那些並不想轉行進入大數據圈子的人,我們要學的究竟是什麼?
我相信,在我們的日常工作中,特別是業績不佳,找不到突破口的時候,都曾想過能否用數據來幫助自己。因為我們都曾或多或少聽過一些牛逼的數據案例,比如紙尿布與啤酒之類。
舉一個簡單的例子,你經營的餐館現在狀況不佳。你可以自己拍腦袋想一堆的新點子來嘗試改善現狀。你也可以,收集整理數據,通過分析找出根本原因,並提出對應解決方案,從而扭轉局面。後者聽起來似乎更加靠譜一些。
那麼,你該收集什麼數據,做什麼分析,這就是你需要學習的:「如何用數據做決策」。從這個角度講,我認為:
人人都應該是數據分析師
學習系統的數據決策和數據分析思維,我們可以從這篇文章開始:從0到1搭建數據分析知識體系。我自己工作中常用的數據分析方法都被囊括在裡面,如果趨勢分析,多維分解,用戶分群,漏斗分析等等。請不要小看一篇文章,知識在精不在多。
你還可以從一本簡單好讀的《誰說菜鳥不會數據分析》開始搭建你的數據分析思維。
關於數據分析的書籍太多了,眾口難調,隨便一搜就有一大堆推薦。而其中所講的知識和理論其實都是類似的。最終要讓他們發揮作用,還是要和實踐結合起來。
因此,我認為,在自己的生意和工作中多實踐數據分析,多思考,遇到問題多在社群中提問和大家探討,是最好的學習辦法。我自己也一直是這樣踐行的。
帶著問題去學習,是最好的方式。
在這個過程中,隨著你對數據的深入了解,掌握更多的數據分析語言和工具。從Excel到SQL,甚至到R和Python。你所能使用的數據量也會越來越大。但你大可不必一開始就扎入這些工具的學習中,那樣會收效甚微。

『陸』 大數據系統體系建設規劃包括哪些內容是什麼

大數據系統體系建設規劃包括的內容是:強化大數據技術產品研發,深化工業內大數據創新應用,促進行容業大數據應用發展,加快大數據產業主體培育,推進大數據標准體系建設,完善大數據產業支撐體系,提升大數據安全保障能力。

指以數據生產、採集、存儲、加工、分析、服務為主,進行的相關經濟活動稱為大數據產業,目前我國的大數據產業體系已初具雛形,大數據系統體系的發展建設有利於全面提升我國大數據的資源掌控、技術支撐和價值挖掘各方面的能力,加快我國稱為數據強國的步伐,同時有利支撐著我國成為製造強國、網路強國的建設工作。

(6)自己動手做大數據系統擴展閱讀

大數據系統體系建設規劃發展原則:

創新驅動、應用引領、開放共享、統籌協調、安全規范。

大數據系統體系建設規劃發展目標:

技術產品先進可控、應用能力顯著增強、生態體系繁榮發展、支撐能力不斷增強、數據安全保障有力。

『柒』 大數據怎麼學

大數據零基礎系統學習,這里給你分享一條入門學習路線——
第一步:培養對於大數據的基本認知
大數據是什麼,大數據未來的發展方向和應用場景有哪些,想要入行做大數據,先對培養其基本的行業背景知識是很有必要的。推薦可以看一些相關書籍,例如《大數據時代》、《數據之美》等。
第二步:大數據技術理論知識學習
零基礎小白能不能學懂大數據,能不能形成系統的技術體系,這一步很關鍵。
1、Java:主要為Java的標准版JavaSE。另外,JDBC是一定要掌握的,因為它關繫到Java與資料庫的連接。
2、Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,大數據軟體的運行環境和網路環境配置會常常用到。
3、Hadoop:這個是必學的,核心組件HDFS、MapRece和YARN,還有生態圈的常用組件。
4、Oozie:用於管理你的Hive或者MapRece、Spark腳本,還能檢查你的程序是否執行正確。
5、python:用於編寫網路爬蟲。
6、Kafka:比較好用的消息隊列工具,數據吞吐量很大。
7、Spark:用來彌補基於Hadoop中MapRece處理數據速度上的缺點,特別適合做迭代運算。
學完這些技術框架之後,最好還要有相應的項目來做實戰練習,鞏固對理論知識的掌握,能夠實際去完成一個大數據項目周期當中的所有環節,這樣才能在就業市場上獲得更大的競爭優勢。

『捌』 如何進行大數據分析及處理

探碼科技大數據分析及處理過程


聚雲化雨的處理方式

『玖』 中小企業要怎麼搭建自己的大數據系統平台

中小企業自己開發大數據系統是有難度的,不過可以使用現場的大數據現場成平台,我們公司就是有的,同時也可以提供大數據系統軟體開發。
搭建大數據系統平台一般的流程為:
(1)操作系統的選擇。
操作系統一般使用開源版的RedHat、Centos或者Debian作為底層的構建平台,要根據大數據平台所要搭建的數據分析工具可以支持的系統,正確的選擇操作系統的版本
(2)搭建Hadoop集群。
(3)選擇數據接入和預處理工具面對各種來源的數據。
(4)數據存儲。
(5)選擇數據挖掘工具。
(6)數據的可視化以及輸出。

『拾』 做大數據分析系統Hadoop需要用哪些軟體

1、ApacheMesos

代碼託管地址:ApacheSVN

Mesos提供了高效、跨分布式應用程序和框架的資源隔離和共享,支持Hadoop、MPI、Hypertable、Spark等。

Mesos是Apache孵化器中的一個開源項目,使用ZooKeeper實現容錯復制,使用LinuxContainers來隔離任務,支持多種資源計劃分配(內存和CPU)。提供Java、Python和C++APIs來開發新的並行應用程序,提供基於Web的用戶界面來提查看集群狀態。

2、HadoopYARN

代碼託管地址:ApacheSVN

YARN又被稱為MapRece2.0,借鑒Mesos,YARN提出了資源隔離解決方案Container,但是目前尚未成熟,僅僅提供Java虛擬機內存的隔離。

對比MapRece1.x,YARN架構在客戶端上並未做太大的改變,在調用API及介面上還保持大部分的兼容,然而在YARN中,開發人員使用ResourceManager、ApplicationMaster與NodeManager代替了原框架中核心的JobTracker和TaskTracker。其中ResourceManager是一個中心的服務,負責調度、啟動每一個Job所屬的ApplicationMaster,另外還監控ApplicationMaster的存在情況;NodeManager負責Container狀態的維護,並向RM保持心跳。ApplicationMaster負責一個Job生命周期內的所有工作,類似老的框架中JobTracker。

Hadoop上的實時解決方案

前面我們有說過,在互聯網公司中基於業務邏輯需求,企業往往會採用多種計算框架,比如從事搜索業務的公司:網頁索引建立用MapRece,自然語言處理用Spark等。

3、ClouderaImpala

代碼託管地址:GitHub

Impala是由Cloudera開發,一個開源的MassivelyParallelProcessing(MPP)查詢引擎。與Hive相同的元數據、SQL語法、ODBC驅動程序和用戶介面(HueBeeswax),可以直接在HDFS或HBase上提供快速、互動式SQL查詢。Impala是在Dremel的啟發下開發的,第一個版本發布於2012年末。

Impala不再使用緩慢的Hive+MapRece批處理,而是通過與商用並行關系資料庫中類似的分布式查詢引擎(由QueryPlanner、QueryCoordinator和QueryExecEngine三部分組成),可以直接從HDFS或者HBase中用SELECT、JOIN和統計函數查詢數據,從而大大降低了延遲。

4、Spark

代碼託管地址:Apache

Spark是個開源的數據分析集群計算框架,最初由加州大學伯克利分校AMPLab開發,建立於HDFS之上。Spark與Hadoop一樣,用於構建大規模、低延時的數據分析應用。Spark採用Scala語言實現,使用Scala作為應用框架。

Spark採用基於內存的分布式數據集,優化了迭代式的工作負載以及互動式查詢。與Hadoop不同的是,Spark和Scala緊密集成,Scala像管理本地collective對象那樣管理分布式數據集。Spark支持分布式數據集上的迭代式任務,實際上可以在Hadoop文件系統上與Hadoop一起運行(通過YARN、Mesos等實現)。

5、Storm

代碼託管地址:GitHub

Storm是一個分布式的、容錯的實時計算系統,由BackType開發,後被Twitter捕獲。Storm屬於流處理平台,多用於實時計算並更新資料庫。Storm也可被用於「連續計算」(continuouscomputation),對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。它還可被用於「分布式RPC」,以並行的方式運行昂貴的運算。

Hadoop上的其它解決方案

就像前文說,基於業務對實時的需求,各個實驗室發明了Storm、Impala、Spark、Samza等流實時處理工具。而本節我們將分享的是實驗室基於性能、兼容性、數據類型研究的開源解決方案,其中包括Shark、Phoenix、ApacheAccumulo、ApacheDrill、ApacheGiraph、ApacheHama、ApacheTez、ApacheAmbari。

6、Shark

代碼託管地址:GitHub

Shark,代表了「HiveonSpark」,一個專為Spark打造的大規模數據倉庫系統,兼容ApacheHive。無需修改現有的數據或者查詢,就可以用100倍的速度執行HiveQL。

Shark支持Hive查詢語言、元存儲、序列化格式及自定義函數,與現有Hive部署無縫集成,是一個更快、更強大的替代方案。

7、Phoenix

代碼託管地址:GitHub

Phoenix是構建在ApacheHBase之上的一個SQL中間層,完全使用Java編寫,提供了一個客戶端可嵌入的JDBC驅動。Phoenix查詢引擎會將SQL查詢轉換為一個或多個HBasescan,並編排執行以生成標準的JDBC結果集。直接使用HBaseAPI、協同處理器與自定義過濾器,對於簡單查詢來說,其性能量級是毫秒,對於百萬級別的行數來說,其性能量級是秒。Phoenix完全託管在GitHub之上。

Phoenix值得關注的特性包括:1,嵌入式的JDBC驅動,實現了大部分的java.sql介面,包括元數據API;2,可以通過多個行鍵或是鍵/值單元對列進行建模;3,DDL支持;4,版本化的模式倉庫;5,DML支持;5,通過客戶端的批處理實現的有限的事務支持;6,緊跟ANSISQL標准。

8、ApacheAccumulo

代碼託管地址:ApacheSVN

ApacheAccumulo是一個可靠的、可伸縮的、高性能、排序分布式的鍵值存儲解決方案,基於單元訪問控制以及可定製的伺服器端處理。使用GoogleBigTable設計思路,基於ApacheHadoop、Zookeeper和Thrift構建。Accumulo最早由NSA開發,後被捐獻給了Apache基金會。

對比GoogleBigTable,Accumulo主要提升在基於單元的訪問及伺服器端的編程機制,後一處修改讓Accumulo可以在數據處理過程中任意點修改鍵值對。

9、ApacheDrill

代碼託管地址:GitHub

本質上,ApacheDrill是GoogleDremel的開源實現,本質是一個分布式的mpp查詢層,支持SQL及一些用於NoSQL和Hadoop數據存儲系統上的語言,將有助於Hadoop用戶實現更快查詢海量數據集的目的。當下Drill還只能算上一個框架,只包含了Drill願景中的初始功能。

Drill的目的在於支持更廣泛的數據源、數據格式及查詢語言,可以通過對PB位元組數據的快速掃描(大約幾秒內)完成相關分析,將是一個專為互動分析大型數據集的分布式系統。

10、ApacheGiraph

代碼託管地址:GitHub

ApacheGiraph是一個可伸縮的分布式迭代圖處理系統,靈感來自BSP(bulksynchronousparallel)和Google的Pregel,與它們區別於則是是開源、基於Hadoop的架構等。

Giraph處理平台適用於運行大規模的邏輯計算,比如頁面排行、共享鏈接、基於個性化排行等。Giraph專注於社交圖計算,被Facebook作為其OpenGraph工具的核心,幾分鍾內處理數萬億次用戶及其行為之間的連接。

11、ApacheHama

代碼託管地址:GitHub

ApacheHama是一個建立在Hadoop上基於BSP(BulkSynchronousParallel)的計算框架,模仿了Google的Pregel。用來處理大規模的科學計算,特別是矩陣和圖計算。集群環境中的系統架構由BSPMaster/GroomServer(ComputationEngine)、Zookeeper(DistributedLocking)、HDFS/HBase(StorageSystems)這3大塊組成。

12、ApacheTez

代碼託管地址:GitHub

ApacheTez是基於HadoopYarn之上的DAG(有向無環圖,DirectedAcyclicGraph)計算框架。它把Map/Rece過程拆分成若干個子過程,同時可以把多個Map/Rece任務組合成一個較大的DAG任務,減少了Map/Rece之間的文件存儲。同時合理組合其子過程,減少任務的運行時間。由Hortonworks開發並提供主要支持。

13、ApacheAmbari

代碼託管地址:ApacheSVN

ApacheAmbari是一個供應、管理和監視ApacheHadoop集群的開源框架,它提供一個直觀的操作工具和一個健壯的HadoopAPI,可以隱藏復雜的Hadoop操作,使集群操作大大簡化,首個版本發布於2012年6月。

ApacheAmbari現在是一個Apache的頂級項目,早在2011年8月,Hortonworks引進Ambari作為ApacheIncubator項目,制定了Hadoop集群極致簡單管理的願景。在兩年多的開發社區顯著成長,從一個小團隊,成長為Hortonworks各種組織的貢獻者。Ambari用戶群一直在穩步增長,許多機構依靠Ambari在其大型數據中心大規模部署和管理Hadoop集群。

目前ApacheAmbari支持的Hadoop組件包括:HDFS、MapRece、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig及Sqoop。

閱讀全文

與自己動手做大數據系統相關的資料

熱點內容
win7看不見刻錄的光碟文件夾 瀏覽:244
觀影清單app 瀏覽:50
谷歌地球搜索時候連接網路失敗 瀏覽:938
n是什麼網站 瀏覽:149
win10提示卸載更新補丁 瀏覽:783
windowsxp幫助文件下載 瀏覽:546
linuxapache並發 瀏覽:455
怎麼建立網路映射 瀏覽:635
大數據除了運營商還會有哪些領域 瀏覽:509
idea配置文件中文變成了十六進制 瀏覽:704
買圖書上什麼網站便宜 瀏覽:644
犀牛保存的文件名 瀏覽:768
vmade是什麼app 瀏覽:927
word文件的大綱怎麼看 瀏覽:473
什麼app可以實景圖 瀏覽:335
ios代碼比較工具 瀏覽:511
技嘉b85bios教程 瀏覽:523
ps矩形直線工具 瀏覽:558
常州應急app的文件名叫什麼 瀏覽:544
通用汽車編程系統怎麼進入 瀏覽:485

友情鏈接