一網打盡13款開源Java大數據工具,從理論到實踐的剖析

2020-12-25 CSDN技術社區

大數據幾乎已成為所有商業領域共有的最新趨勢,然而大數據究竟是什麼?是噱頭、泡沫,又或是真如傳言一樣的重要。

事實上,大數據是個非常簡單的術語——就像它所說的一樣,是非常大的數據集。那麼究竟有大多?真實的答案就是「如你所想的那麼大」!

那麼為什麼會產生如此之大的數據集?因為當今的數據已經無所不在並且存在著巨大的回報:收集通信數據的RFID傳感器,收集天氣信息的傳感器,行動裝置給社交網站發送的GPRS數據包,圖片視頻,在線購物產生的交易記錄,應有盡有!大數據是一個巨大的數據集,包含了任何數據源產生的信息,當然前提是這些信息是我們感興趣的。

然而大數據的含義絕不只與體積相關,因為大數據還可以用於尋找新的真知、形成新的數據和內容;我們可以使用從大數據中提取的真知、數據和內容去使商業更加靈活,以及回答那些之前被認為遠超當前範疇的問題。這也是大數據被從以下4個方面定義的原因:Volume(體積)、Variety(多樣)、Velocity(效率)以及Veracity(Value,價值),也就是大數據的4V。下面將簡述每個特性以及所面臨的挑戰:

1. Volume

Volume說的是一個業務必須捕獲、存儲及訪問的數據量,僅僅在過去兩年內就生產了世界上所有數據的90%。現今的機構已完全被數據的體積所淹沒,輕易的就會產生TB甚至是PB級不同類型的數據,並且其中有些數據需要被組織、防護(竊取)以及分析。

2. Variety

世界上產生的數據有80%都是半結構化的,傳感器、智能設備和社交媒體都是通過Web頁面、網絡日誌文件、社交媒體論壇、音頻、視頻、點擊流、電子郵件、文檔、傳感系統等生成這些數據。傳統的分析方案往往只適合結構化數據,舉個例子:存儲在關係型資料庫中的數據就有完整的結構模型。數據類型的多樣化同樣意味著為支持當下的決策制定及真知處理,我們需要在數據儲存和分析上面進行根本的改變。Variety代表了在傳統關係資料庫中無法輕易捕獲和管理的數據類型,使用大數據技術卻可以輕鬆的儲存和分析。

3. Velocity

Velocity則需要對數據進行近實時的分析,亦稱「sometimes 2 minutes is too late!」。獲取競爭優勢意味著你需要在幾分鐘,甚至是幾秒內識別一個新的趨勢或機遇,同樣還需要儘可能的快於你競爭對手。另外一個例子是時間敏感性數據的處理,比如說捕捉罪犯,在這裡數據必須被收集後就完成被分析,這樣才能獲取最大價值。對時間敏感的數據保質期往往都很短,這就需求組織或機構使用近實時的方式對其分析。

4. Veracity

通過分析數據我們得出如何的抓住機遇及收穫價值,數據的重要性就在於對決策的支持;當你著眼於一個可能會對你企業產生重要影響的決策,你希望獲得儘可能多的信息與用例相關。單單數據的體積並不能決定其是否對決策產生幫助,數據的真實性和質量才是獲得真知和思路最重要的因素,因此這才是制定成功決策最堅實的基礎。

然而當下現有的商業智能和數據倉庫技術並不完全支持4V理論,大數據解決方案的開發正是針對這些挑戰。

下面將介紹大數據領域支持Java的主流開源工具

1. HDFS

HDFS是Hadoop應用程式中主要的分布式儲存系統, HDFS集群包含了一個NameNode(主節點),這個節點負責管理所有文件系統的元數據及存儲了真實數據的DataNode(數據節點,可以有很多)。HDFS針對海量數據所設計,所以相比傳統文件系統在大批量小文件上的優化,HDFS優化的則是對小批量大型文件的訪問和存儲。

2. MapReduce

Hadoop MapReduce是一個軟體框架,用以輕鬆編寫處理海量(TB級)數據的並行應用程式,以可靠和容錯的方式連接大型集群中上萬個節點(商用硬體)。

3. HBase

Apache HBase是Hadoop資料庫,一個分布式、可擴展的大數據存儲。它提供了大數據集上隨機和實時的讀/寫訪問,並針對了商用伺服器集群上的大型表格做出優化——上百億行,上千萬列。其核心是Google Bigtable論文的開源實現,分布式列式存儲。就像Bigtable利用GFS(Google File System)提供的分布式數據存儲一樣,它是Apache Hadoop在HDFS基礎上提供的一個類Bigatable。

4. Cassandra

Apache Cassandra是一個高性能、可線性擴展、高有效性資料庫,可以運行在商用硬體或雲基礎設施上打造完美的任務關鍵性數據平臺。在橫跨數據中心的複製中,Cassandra同類最佳,為用戶提供更低的延時以及更可靠的災難備份。通過log-structured update、反規範化和物化視圖的強支持以及強大的內置緩存,Cassandra的數據模型提供了方便的二級索引(column indexe)。

5. Hive

Apache Hive是Hadoop的一個數據倉庫系統,促進了數據的綜述(將結構化的數據文件映射為一張資料庫表)、即席查詢以及存儲在Hadoop兼容系統中的大型數據集分析。Hive提供完整的SQL查詢功能——HiveQL語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,HiveQL還允許傳統的Map/Reduce程式設計師使用自己定製的Mapper和Reducer。

6. Pig

Apache Pig是一個用於大型數據集分析的平臺,它包含了一個用於數據分析應用的高級語言以及評估這些應用的基礎設施。Pig應用的閃光特性在於它們的結構經得起大量的並行,也就是說讓它們支撐起非常大的數據集。Pig的基礎設施層包含了產生Map-Reduce任務的編譯器。Pig的語言層當前包含了一個原生語言——Pig Latin,開發的初衷是易於編程和保證可擴展性。

7. Chukwa

Apache Chukwa是個開源的數據收集系統,用以監視大型分布系統。建立於HDFS和Map/Reduce框架之上,繼承了Hadoop的可擴展性和穩定性。Chukwa同樣包含了一個靈活和強大的工具包,用以顯示、監視和分析結果,以保證數據的使用達到最佳效果。

8. Ambari

Apache Ambari是一個基於web的工具,用於配置、管理和監視Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同樣還提供了集群狀況儀錶盤,比如heatmaps和查看MapReduce、Pig、Hive應用程式的能力,以友好的用戶界面對它們的性能特性進行診斷。

9. ZooKeeper

Apache ZooKeeper是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、命名服務、分布式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

10. Sqoop

Sqoop是一個用來將Hadoop和關係型資料庫中的數據相互轉移的工具,可以將一個關係型資料庫中數據導入Hadoop的HDFS中,也可以將HDFS中數據導入關係型資料庫中。

11. Oozie

Apache Oozie是一個可擴展、可靠及可擴充的工作流調度系統,用以管理Hadoop作業。Oozie Workflow作業是活動的Directed Acyclical Graphs(DAGs)。Oozie Coordinator作業是由周期性的Oozie Workflow作業觸發,周期一般決定於時間(頻率)和數據可用性。Oozie與餘下的Hadoop堆棧結合使用,開箱即用的支持多種類型Hadoop作業(比如:Java map-reduce、Streaming map-reduce、Pig、 Hive、Sqoop和Distcp)以及其它系統作業(比如Java程序和Shell腳本)。

12. Mahout

Apache Mahout是個可擴展的機器學習和數據挖掘庫,當前Mahout支持主要的4個用例:

  • 推薦挖掘:搜集用戶動作並以此給用戶推薦可能喜歡的事物。
  • 聚集:收集文件並進行相關文件分組。
  • 分類:從現有的分類文檔中學習,尋找文檔中的相似特徵,並為無標籤的文檔進行正確的歸類。
  • 頻繁項集挖掘:將一組項分組,並識別哪些個別項會經常一起出現。

13. HCatalog

Apache HCatalog是Hadoop建立數據的映射表和存儲管理服務,它包括:

  • 提供一個共享模式和數據類型機制。
  • 提供一個抽象表,這樣用戶就不需要關注數據存儲的方式和地址。
  • 為類似Pig、MapReduce及Hive這些數據處理工具提供互操作性。

原文連結: What is Big Data – Theory to Implementation (編譯/仲浩 審校/包研)

「  第五屆中國雲計算大會 」將於2013年6月5-7日在北京國家會議中心隆重舉行。猛擊報名!

相關活動已經火熱啟動:

2013中國雲計算大調查,每周大獎等你拿! 「

Innovation Cloud 2013雲創新產品與應用項目徵集,歡迎研發者、團隊和創業企業參加!

相關焦點

  • 玩大數據一定用得到的19款 Java 開源 Web 爬蟲
    今天將為大家介紹19款Java開源Web爬蟲,需要的小夥伴們趕快收藏吧。WebLech是一個功能強大的Web站點下載與鏡像免費開源工具。它支持按功能需求來下載web站點並能夠儘可能模仿標準Web瀏覽器的行為。WebLech有一個功能控制臺並採用多線程操作。這款爬蟲足夠簡單,如果初學如果編寫爬蟲,可做入門參考。所以我選擇了用這個爬蟲開始我的研究。如果只是做要求不高的應用,也可試試。如果想找一款功能強大,就別在WebLech上浪費時間了。
  • 1小時搞定BI數據可視化——Metabase開源大數據BI工具簡介
    若能將數據進行可視化,可視化的數據更方便管理者了解自己的企業,做出合理的決策;其次大數據的統計和分析會為管理者提供人力所不能統計得出的數據,幫助企業優化。雖然對於擁有大量數據的企業,仍舊建議商業化的BI工具,因為對於軟體而言,其有很大一部分報價在於服務,不過研究開源BI工具對於思路的開拓和功能的探索也有很重要意義。
  • 為什麼入門大數據選擇Python而不是Java?
    java和python,都可以運行於linux作業系統,但很多linux可以原生支持python,java需要自行安裝。java和python強於c#的原因大於支持linux,支持osx,支持unix,支持arm。java和python比c++受歡迎的原因在於不需要指針。不少想學習大數據的零基礎學員都知道,學大數據部分課程之前要先學習一種計算機程式語言。
  • 專題:Java開源工具匯總,一個都不能少!_51CTO.COM
    推薦5個提高Java開發效率的工具 本文介紹了5個能夠提高Java開發效率的工具,對於新手要記得收藏好哦。詳細請看下文。 TeamCity 7 TeamCity是一款功能強大的持續集成工具,包括伺服器端和客戶端,目前支持Java,.Net項目開發。
  • Java程式設計師常用的10大構建工具
    近期,我做了一個調查,關於Java程式設計師使用的20幾個大數據工具。
  • 25個Java機器學習工具&庫
    這些算法可以直接應用於一個數據集上或者你可以自己編寫代碼來調用。Weka包括一系列的工具,如數據預處理、分類、回歸、聚類、關聯規則以及可視化。2.Massive Online Analysis(MOA)是一個面向數據流挖掘的流行開源框架,有著非常活躍的成長社區。它包括一系列的機器學習算法(分類、回歸、聚類、異常檢測、概念漂移檢測和推薦系統)和評估工具。
  • GitHub上非常實用的40個開源JAVA項目
    GitHub:http://h5ip.cn/g6DH6.phishman3579/java-algorithms-implementation:Java數據結構和算法實現。GitHub:http://h5ip.cn/MwYC7.aaberg/sql2o:小而美的資料庫操作框架,性能略屌。
  • 學習Java 從這些書開始吧
    ,API的設計方式,各大網站的設計架構,理解各個環節的作用。本書是根據學習理論所設計的,可以從學習程序語言的基礎開始一直到包括線程、網絡與分布式程序等項目。而且不只是讀死書,你還會玩遊戲、拼圖、解謎題以及以意想不到的方式與java交互。在這些活動中,你會寫出一堆真正的java程序,包括了一個船艦炮戰遊戲和一個網絡聊天程序。
  • 八款卓越開源工具幫你搞定數據可視化難題
    八款卓越開源工具幫你搞定數據可視化難題 數據可視化是指將表格或者空間數據轉化為人類友好且直觀可視形式的處理機制。目前市面上的多款開源工具能夠幫助大家創建出實用且信息豐富的圖形成果。在今天的文章中,我們將一同了解其中八種開源數據可視化工具。
  • 20個免費和開源數據可視化工具
    數據可視化正在幫助全球的公司識別模式,預測結果並提高業務回報。可視化是數據分析的一個重要方面。簡而言之,數據可視化以可視格式傳達表格或空間數據的結果。圖像有能力清晰地捕捉注意力並傳達想法。這有助於決策並推動改進行動。通過使用正確的工具,您可以從原始數據中勾勒出令人信服的視覺故事。以下是一些用於數據可視化的免費和開源工具。
  • 大數據涉及的技術理論和資源工具
    大數據涉及的技術理論和資源工具 北方數據中心 發表於 2020-03-22 17:40:00 大數據涉及的技術領域 1 研究業務的技術特性要求
  • 大數據下Python的三款大數據分析工具
    導讀:Python在大數據領域中被常用已經不是什麼稀奇事。現在讓我們了解三個Python工具/庫來處理自己的大數據。
  • Java 程式設計師必須掌握的 10 款開源工具!
    如果你是一位經驗豐富的Java開發人員,你可能對這些工具很熟悉,但如果不是,現在就是是開始學習這些工具的好時機。Java世界中存在許多工具,從Eclipse,NetBeans和IntelliJ IDEA等著名的IDE開始到Java開發人員應該知道的JVM分析和監視工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。
  • 全球100款大數據工具匯總
    DataSimp」文章分類頁(關注後右下角菜單項)簡介:全球100款大數據工具匯總(9100字)從數據的獲取、爬取、存儲、處理、分析、BI、組件、框架、資源管理、集群、調度、性能已經在全球各大企業大量應用,非常適合數據科學與技術夥伴使用,部分開源產品在GitHub有對應項目,祝大家學習愉快~來源:豆瓣網、
  • GitHub 上那些值得一試的 Java 開源庫 - OSCHINA - 中文開源技術...
    我一直使用JAVA來寫後端應用,平時也會關注一些國外技術大牛的博客(來自Tapki、DZone、Google Developer等技術博客),從而注意到了一些新的而且很有意思Java開源庫,它們有些能給你的項目帶來幫助,有些是以遊戲的形式幫你提高Java的編程水平,而另一些則能夠幫助你識別JAVA程序中的常見問題 。
  • 15個開源的頂級人工智慧工具
    考慮到人們對此感興趣的程度,我們將不會驚訝於斯坦福的專家在人工智慧報告中得出的結論:「越來越強大的人工智慧應用,可能會對我們的社會和經濟產生深遠的積極影響,這將出現在從現在到 2030 年的時間段裡。」 在最近的一篇文章中,我們概述了 45 個十分有趣或有前途的人工智慧項目。在本文中,我們將聚焦於開源的人工智慧工具,詳細的了解下最著名的 15 個開源人工智慧項目。
  • Top 7大開源數據可視化分析工具!
    Top 7大開源數據可視化分析工具! Top 7大開源數據可視化分析工具!關鍵詞: 開源 數據   目前,我們可以在市場上找到很多用於網絡分析和數據可視化的開源工具,例如NetworkX,R和Gephi中的iGraph包等。
  • 推薦5款開源報表工具
    推薦5款開源報表工具 小編最近發現幾款不錯的開源報表,還提供源碼,現在給大家分享一下,希望能給你帶來幫助!1、項目名稱: 積木報表項目簡介:積木報表,免費的企業級WEB報表工具。專注於「專業、 易用 、優質」的報表設計器和大屏設計器。
  • JAVA上百實例源碼以及開源項目
    Java 源碼包Applet鋼琴模擬程序java源碼2個目標文件,提供基本的音樂編輯功能。編輯音樂軟體的朋友,這款實例會對你有所幫助。>Java加密解密工具集 JCT v1.0源碼包內容索引:JAVA源碼,綜合應用,JCT,加密解密  WDSsoft的一款免費原始碼 JCT 1.0,它是一個Java加密解密常用工具包。
  • 介紹一款好用的java反編譯工具 - jd-gui
    二方包是公司內部其它部門的產出物,雖然折騰些但協調下一般還是能查看到源碼的;三方包如果是開源的項目,也能找到源碼;但對於非開源項目的 jar 包,如果想查看源碼,就不得不用到反編譯工具了。/其中 jd-gui是 jd project 名下的產品,jd project名下包括了3款具體產品,如下圖所示:除此之外,IntelliJ IDEA 也有自己的反編譯插件 java bytecode decompiler,如下如所示: