大數據查詢分析是雲計算中核心問題之一,自從Google在2006年之前的幾篇論文奠定雲計算領域基礎,尤其是GFS、Map-Rece、 Bigtable被稱為雲計算底層技術三大基石。GFS、Map-Rece技術直接支持了Apache Hadoop項目的誕生。Bigtable和Amazon Dynamo直接催生了NoSQL這個嶄新的資料庫領域,撼動了RDBMS在商用資料庫和數據倉庫方面幾十年的統治性地位。FaceBook的Hive項 目是建立在Hadoop上的數據倉庫基礎構架,提供了一系列用於存儲、查詢和分析大規模數據的工具。當我們還浸淫在GFS、Map-Rece、 Bigtable等Google技術中,並進行理解、掌握、模仿時,Google在2009年之後,連續推出多項新技術,包括:Dremel、 Pregel、Percolator、Spanner和F1。其中,Dremel促使了實時計算系統的興起,Pregel開辟了圖數據計算這個新方 向,Percolator使分布式增量索引更新成為文本檢索領域的新標准,Spanner和F1向我們展現了跨數據中心資料庫的可能。在Google的第 二波技術浪潮中,基於Hive和Dremel,新興的大數據公司Cloudera開源了大數據查詢分析引擎Impala,Hortonworks開源了 Stinger,Fackbook開源了Presto。類似Pregel,UC Berkeley AMPLAB實驗室開發了Spark圖計算框架,並以Spark為核心開源了大數據查詢分析引擎Shark。
⑵ java開源框架有哪些
Spring MVC
Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的SpringMVC框架或集成其他MVC開發框架,如Struts1,Struts2等。
2. Struts 2
為了更詳細的闡述現代軟體工程師廣泛使用的現有Java框架,我們決定參考Apache的Struts 1後繼版本Struts 2。這個Java框架對於使用構建當代Java EE Web應用程序的工程師來說是一個很好的選擇。Apache軟體基金會為開發人員提供了一個廣泛的工具,用於創建企業級的面向Web的應用程序,開發過程的優化從開始貫徹到結束,還提供後期的維護。如果你還在為高負載系統(如廣播門戶)發愁,這個框架將是你的不二之選。
3. Hibernate
這個 Java 映射框架藉助於將持續存在的資料庫訪問操作替換為高層次的對象處理功能,來解決對象-關系的不匹配問題。每一個企業應用程序的情況都不同,而Hibernate則擁有功能強大的工具套件來幫助後台開發人員對其數據訪問層進行微調。這是一個高級的 ORM 框架,你可以用它來在 Java 對象(實體)上進行資料庫操作。利用 Hibernate 緩存來將 Java 環境中的數據持久化到資料庫是一個持久化的概念、
4. JSF
作為java EE的一部分,JavaServer Faces被Oracle所支持。雖然這不是一個可以進行快速java開發的最好框架,但它很容易使用,因為Oracle提供了大量文檔。此外,除非你離開java EE環境,JSF不需要任何的外部依賴,而功能非常強大。它擁有豐富的庫和工具(包括一個簡單的用戶界面生成工具),使之成為了一個神奇的魔法棒,無論應用程序可能看起來有多麼復雜,它都可以給予你支持與幫助。
5. Vaadin
當現代開發者創建商業應用程序,並使用GWT渲染終端網頁時,Vaadin稱得上是一個超級流行的框架。Vaadin利用一個眾所周知的基於組件的方法,能夠適應瀏覽器的變化,從而減輕了開發商的負擔。它擁有一套擴展的用戶界面組件,以及各種不同的部件和控制項,可以讓程序員在任何時候都可以建立一個很酷的應用程序。
6. Google Web Toolkit
GWT是另一個免費的java框架,它允許程序員創建和優化復雜的網路應用程序。GWT的軟體開發工具包包括核心的java API和小部件,構建隨後可以編譯成JavaScript的應用程序。
7. Grails
這個獨特的框架被視為是提升工程師生產效率的動態工具,因為其乾脆的API設計,合理的默認值以及約定架構。與java的無縫集成使得這個框架成為世界上眾多框架中的首選。一系列強大的特性,如基於sping的依賴注入和各式各樣的插件,可以提供創建現代基於web的app的所有需要的東西。
⑶ java開源的其它
Java世界中存在許多工具,從Eclipse,NetBeans和IntelliJ IDEA等著名的開始到Java開發人員應該知道的JVM分析和監視工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。
如果你是一位經驗豐富的Java開發人員,你可能對這些工具很熟悉,但如果不是,現在就是是開始學習這些工具的好時機。就來介紹下程序員都知道的10款Java開源工具,你知道幾個呢?
1. JIRA
Atlassian的JIRA是當前敏捷開發領域最重要的工具之一。它用於錯誤跟蹤,問題跟蹤和項目管理。如果你遵循敏捷開發方法,例如Sprint和Scrum,那麼你必須了解JIRA。它允許您創建Spring循環並跟蹤軟體開發的進度。
JIRA 是目前比較流行的基於Java架構的管理系統,由於Atlassian公 司對很多開源項目實行免費提供缺陷跟蹤服務,因此在開源領域,其認知度比其他的產品要高得多,而且易用性也好一些。
2. Git
Git是Java程序員的另一個必備工具,它是一個免費的開源分布式版本控制系統,旨在快速高效地處理從很小到非常大的項目版本管理。Git易於學習,佔用空間小,具有超強的性能。最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是發現已經在很多其他自由軟體項目中也使用了 Git。
3. Jenkins
Jenkins是一個用Java編寫的開源自動化伺服器。它有助於自動化軟體開發,例如編譯項目,運行單元測試,集成測試,生成文檔以及在本地和遠程存儲庫上載工件。
4. Selenium
Selenium是Web應用程序最好的軟體測試框架之一。它提供了一種用於創作測試的回放工具,而無需學習測試腳本語言。Java開發人員可以使用Selenium來測試他們的HTML和JSP文件。
5. Groovy
Groovy 是一種基於 JVM 的敏捷開發語言,它結合了 Python、Ruby 和 Smalltalk 的許多強大的特性。你可以使用它編寫構建腳本,測試腳本,甚至可以使用像Gradle和Spock這樣的流行框架。
6、Spock
Spock 是適合 Java 和 Groovy 應用程序的一個測試框架。由於其JUnit運行程序,Spock與大多數IDE,構建工具和持續集成伺服器兼容。如果你想提高你的單元測試技能,那麼多花點時間在學習Spock上總是沒錯的。
7. Maven
如果你是一位經驗豐富的Java開發人員,那麼你一定非常了解Maven了,Apache Maven是一個構建和項目管理工具,基於項目對象模型(POM)的概念,Maven可用於管理項目的生成、報告和文檔記錄。
Maven的另一個有用特性是依賴關系管理,由於我們在Java項目中使用了大量第三方庫,因此手動管理每個JAR及其依賴項可能非常麻煩,Maven通過自動為你下載正確的JAR來幫助你解決問題。
8. Gradle
Gradle 是一個基於 Apache Ant 和 Apache Maven 概念的項目自動化構建工具。為什麼選擇Gradle在Ant或Maven?因為它結合了其他構建工具的最佳特性,例如它具有Ant的靈活性和控制,Ivy的依賴管理,Maven的配置和插件的約定,以及可以在Ant上使用Groovy DSL。這使它成為Java項目的最佳構建工具。
9. Docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架或包裝系統。
10. Linux
初學Linux最好從Linux命令行基礎知識開始,Linux是一種自由和開放源碼的類Unix操作系統,在你的職業生涯中起到重要的作用,每一個Java開發者都應該學Linux。如果以上工具還有你沒學會的,那就不要再錯過了趕緊學起來。
⑷ Java連接多個資料庫有什麼開源實現嗎
1. 如果是 MySQL 中的多個數據據實例的話,你操作資料庫時,使用 schema.table 就可以了
2. 如果是 MySQL 資料庫內和其他資料庫同時使容用的話,需要在 Spring 中配置多個 datasource
⑸ java開源的項目
Sotacs 【Java開源 未分類開源項目】
Tapestry4 web框架組件:
SpringContracts 【Java開源 未分類開源項目】
SpringContracts是契約式設計(Design by Contract)的一個Java解決方案,能夠無縫地集成到Spring框架中。基於Annotations,AOP並且支持EL表達式語言。
Jettison 【Java開源 未分類開源項目】
Jettison是一組StAX parser與writer用於讀寫JSON。這就使得可以在像CXF,XFire這樣的service框架中實現基於JSON的web service。
jEdit - Plugin Central 【Java開源 未分類開源項目】
jEdit Plugin Central是JEdit文本編輯器最主要的在線插件庫。可以結合該插件庫,通過jEdit的插件管理器來安裝,更新和刪除插件。所有插件列表
JCL 【Java開源 未分類開源項目】
JCL提供一個類庫用於從JARs中載入classe。它特別適用於在一個應用程序中有區別地載入多個版本中相同的class。
JXTA 【Java開源 未分類開源項目】
Sun微系統公司公開了旨在建立P2P(Peer to Peer)通用技術基礎的JXTA計劃。JXTA技術是網路編程和計算的平台,用以解決現代分布計算尤其是點對點(P2P)計算中出現的問題。。
jOrgan 【Java開源 未分類開源項目】
jOrgan是一個Java開發的虛擬管風琴。
JOnbAS 【Java開源 未分類開源項目】
基於NetBeans平台的JOnAS插件。
RoX 【Java開源 未分類開源項目】
RoX(RPC over XML)是構建在Java1.4 NIO之上一個完整XML-RPC實現。
Spring-Dashboard 【Java開源 未分類開源項目】
利用Spring-Dashboard開發人員和測試人員能夠監測spring web應用程序中的流程並收集在應用程序中資源使用情況的統計信息。
jUploadr 【Java開源 未分類開源項目】
jUploadr是一個跨平台,跨站點的照片上傳工具。當前jUploadr可運行在Windows、Linux和OS X平台之上並支持包括Flickr與Zooomr。它可以讓你在上傳之前設置好照片的屬性。jUploadr還支持批處理。
Bottomline 【Java開源 未分類開源項目】
Bottomline是一套利用JCL直接從JAR 文檔載入資料庫驅動的JDBC Bridge API。Bottomline使用jdbc:bottomline bridge從各自的JAR文件載入多個驅動。與JDBC的不同之處在於, Bottomline使用自定義的class loaders來裝載驅動完全獨立於JVM的bootstrap class loader.
BackupEasy 【Java開源 未分類開源項目】
BackupEasy是一個按日期/時間設定自動備份文件夾和文件的軟體。它採用Java開發,界面簡單,支持FTP備份,支持簡體中文。
SubEtha 【Java開源 未分類開源項目】
SubEtha是一個成熟的郵件列表管理系統,它是一個採用EJB3與JMS開發的三層J2EE應用程序。 SubEtha非常容易安裝在Windows與Unix平台上,一個友好的web界面可用於管理所有配置,支持虛擬域名,支持用戶擁有多個email地址,智能附件處理,可配置的消息處理過濾器,基於per-list 的角色許可權控制等等。
JIExplorer 【Java開源 未分類開源項目】
JIExplorer是一個採用Java開發的看圖工具。支持幻燈片,放大/縮小,全屏等功能。此外還支持按關鍵字進行圖片分類管理,把圖片保存到HSQLDB與MySQL資料庫中。
j-Interop 【Java開源 未分類開源項目】
j-Interop是實現DCOM wire protocol (MSRPC)的一個開源類包。可用於開發雙向,Non-Native,能夠與任何COM組件交互的純Java應用程序。該項目全部採用純Java實現並且沒有使用JNI(Java Native Interface)來提供對COM的訪問。
QALab 【Java開源 未分類開源項目】
QALab這個工具能夠收集,整理來自一些QA工具的數據如:pmd,checkstyle,FindBugs,Cobertura和Simian,並跟蹤它們的overtime。這可以幫助開發人員,架構師與項目管理者掌握項目QA的趨勢。
SOJO 【Java開源 未分類開源項目】
SOJO提供一個類庫用於把POJOs轉換成指定的格式可以是CSV、XML、JSON等,以便與非Java的程序進行通信。這些轉換都是可插拔的,所以可以自定義自己想要轉換的格式。
Subsonic 【Java開源 未分類開源項目】
Subsonic是一個在線媒體播放系統。它能夠將指定路徑下的音樂(mp3,aac,ogg,wma等)和視頻轉換播放流。需要Java5.0。
Glyph 【Java開源 未分類開源項目】
Glyph是一組用於加快開發基於Jini應用程序的工具類與J2SE5.0注釋。
nbtapestrysupport 【Java開源 未分類開源項目】
nbtapestrysupport該項目是一個NetBeans插件主要是為用Tapestry框架進行的web開發提供支持。功能包括:在Tapestry配置文件中為class name,file和librarie提供超鏈接支持。只需按拄CTRL然後選中類名就能夠轉到相應的類。提供向導來創建一個新的Tapestry項目所需要的頁面,組件和類庫等。一個組件面板允許用拖放的方式來設計頁面與組件。為不同的配置文件定製編輯器。集成Tapestry的開發文檔。
DContract 【Java開源 未分類開源項目】
該項目提供一個用於處理數字合同(digital contract)的Java工具箱。
GenericRCP 【Java開源 未分類開源項目】
GenericRCP是一個基於SpringRCP開發的胖客戶端,它能夠根據hibernate domain模型自動生成一個GUI用於修改/刪除/新增將被持久化的Java對象。