亚洲精品美女在线观看,亚洲级αV无码毛片久久精品,亚洲AV无码久久精品色欲http://www.tkk7.com/jackiesmith/java程序愛好者zh-cnSun, 11 May 2025 00:23:00 GMTSun, 11 May 2025 00:23:00 GMT60大數據入門:各種大數據技術介紹http://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.html龍旋風龍旋風Sun, 05 May 2019 01:24:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.htmlhttp://www.tkk7.com/jackiesmith/comments/433748.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433748.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433748.html轉自:http://www.aboutyun.com/thread-7569-1-1.html

大數據我們都知道hadoop,可是還會各種各樣的技術進入我們的視野:Spark,Storm,impala,讓我們都反映不過來。為了能夠更好的架構大數據項目,這里整理一下,供技術人員,項目經理,架構師選擇合適的技術,了解大數據各種技術之間的關系,選擇合適的語言。
我們可以帶著下面問題來閱讀本文章:
1.hadoop都包含什么技術
2.Cloudera公司與hadoop的關系是什么,都有什么產品,產品有什么特性
3.Spark與hadoop的關聯是什么?
4.Storm與hadoop的關聯是什么?






hadoop家族
創始人:Doug Cutting
整個Hadoop家族由以下幾個子項目組成:

Hadoop Common:
Hadoop體系最底層的一個模塊,為Hadoop各子項目提供各 種工具,如:配置文件和日志操作等。詳細可查看
Hadoop技術內幕 深入解析HADOOP COMMON和HDFS架構設計與實現原理大全1-9章

HDFS:

是Hadoop應用程序中主要的分布式儲存系統, HDFS集群包含了一個NameNode(主節點),這個節點負責管理所有文件系統的元數據及存儲了真實數據的DataNode(數據節點,可以有很多)。HDFS針對海量數據所設計,所以相比傳統文件系統在大批量小文件上的優化,HDFS優化的則是對小批量大型文件的訪問和存儲。下面為詳細資料:
什么是HDFS及HDFS架構設計
HDFS+MapReduce+Hive快速入門
Hadoop2.2.0中HDFS為何具有高可用性
Java創建hdfs文件實例

MapReduce:

是一個軟件框架,用以輕松編寫處理海量(TB級)數據的并行應用程序,以可靠和容錯的方式連接大型集群中上萬個節點(商用硬件)。
詳細可查看:
Hadoop簡介(1):什么是Map/Reduce
Hadoop MapReduce基礎
MapReduce工作原理講解
手把手交你寫Mapreduce程序實例并部署在Hadoop2.2.0上運行

Hive:

Apache Hive是Hadoop的一個數據倉庫系統,促進了數據的綜述(將結構化的數據文件映射為一張數據庫表)、即席查詢以及存儲在Hadoop兼容系統中的大型數據集分析。Hive提供完整的SQL查詢功能——HiveQL語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,HiveQL還允許傳統的Map/Reduce程序員使用自己定制的Mapper和Reducer。hive類似CloudBase,基于hadoop分布式計算平臺上的提供data warehouse的sql功能的一套軟件。使得存儲在hadoop里面的海量數據 的匯總,即席查詢簡單化。
詳細可查看:
Hive的起源及詳細介紹
hive詳解視頻


Pig:

Apache Pig是一個用于大型數據集分析的平臺,它包含了一個用于數據分析應用的高級語言以及評估這些應用的基礎設施。Pig應用的閃光特性在于它們的結構經得起大量的并行,也就是說讓它們支撐起非常大的數據集。Pig的基礎設施層包含了產生Map-Reduce任務的編譯器。Pig的語言層當前包含了一個原生語言——Pig Latin,開發的初衷是易于編程和保證可擴展性。
Pig是SQL-like語言,是在MapReduce上構建的一種高級查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,并且用戶可以定義自己的功能。Yahoo網格運算部門開發的又一個克隆Google的項目Sawzall。
詳細可查看:
pig入門簡單操作及語法包括支持數據類型、函數、關鍵字、操作符等
hadoop家族Pig和Hive有什么不同?



HBase:

Apache HBase是Hadoop數據庫,一個分布式、可擴展的大數據存儲。它提供了大數據集上隨機和實時的讀/寫訪問,并針對了商用服務器集群上的大型表格做出優化——上百億行,上千萬列。其核心是Google Bigtable論文的開源實現,分布式列式存儲。就像Bigtable利用GFS(Google File System)提供的分布式數據存儲一樣,它是Apache Hadoop在HDFS基礎上提供的一個類Bigatable。
詳細可查看:
hbase與傳統數據的區別
HBASE分布式安裝視頻下載分享

ZooKeeper:

Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。
詳細可查看:
什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具體作用是什么

Avro:

Avro是doug cutting主持的RPC項目,有點類似Google的protobuf和Facebook的thrift。avro用來做以后hadoop的RPC,使hadoop的RPC模塊通信速度更快、數據結構更緊湊。


Sqoop:
Sqoop是一個用來將Hadoop和關系型數據庫中的數據相互轉移的工具,可以將一個關系型數據庫中數據導入Hadoop的HDFS中,也可以將HDFS中數據導入關系型數據庫中。
詳細可查看:
Sqoop詳細介紹包括:sqoop命令,原理,流程

Mahout:

Apache Mahout是個可擴展的機器學習和數據挖掘庫,當前Mahout支持主要的4個用例:
推薦挖掘:搜集用戶動作并以此給用戶推薦可能喜歡的事物。
聚集:收集文件并進行相關文件分組。
分類:從現有的分類文檔中學習,尋找文檔中的相似特征,并為無標簽的文檔進行正確的歸類。
頻繁項集挖掘:將一組項分組,并識別哪些個別項會經常一起出現。


Cassandra:

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

Chukwa:

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

Ambari:

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



HCatalog

Apache HCatalog是Hadoop建立數據的映射表和存儲管理服務,它包括:
提供一個共享模式和數據類型機制。
提供一個抽象表,這樣用戶就不需要關注數據存儲的方式和地址。
為類似Pig、MapReduce及Hive這些數據處理工具提供互操作性。

------------------------------------------------------------------------------------------------------------------------------------------------

Chukwa:

Chukwa是基于Hadoop的大集群監控系統,由yahoo貢獻。


------------------------------------------------------------------------------------------------------------------------------------------------

Cloudera系列產品:
創始組織:Cloudera公司
1.Cloudera Manager:
有四大功能
(1)管理
(2)監控
(3)診斷
(4)集成
Cloudera Manager四大功能

2.Cloudera CDH:英文名稱:CDH (Cloudera's Distribution, including Apache Hadoop)
Cloudera對hadoop做了相應的改變。
Cloudera公司的發行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。
詳細可以查看
Cloudera Hadoop什么是CDH及CDH版本介紹
相關資料
CDH3實戰Hadoop(HDFS) , HBase , Zookeeper , Flume , Hive
CDH4安裝實踐HDFS、HBase、Zookeeper、Hive、Oozie、Sqoop
Hadoop CDH四種安裝方式總結及實例指導
hadoop的CDH4及CDH5系列文檔下載分享


3.Cloudera Flume
Flume是Cloudera提供的日志收集系統,Flume支持在日志系統中定制各類數據發送方,用于收集數據;
Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支持在日志系統中定制各類數據發送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制)的能力。


Flume最早是Cloudera提供的日志收集系統,目前是Apache下的一個孵化項目,Flume支持在日志系統中定制各類數據發送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制)的能力 Flume提供了從console(控制臺)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統,支持TCP和UDP等2種模式),exec(命令執行)等數據源上收集數據的能力。
Flume采用了多Master的方式。為了保證配置數據的一致性,Flume[1]引入了ZooKeeper,用于保存配置數據,ZooKeeper本身可保證配置數據的一致性和高可用,另外,在配置數據發生變化時,ZooKeeper可以通知Flume Master節點。Flume Master間使用gossip協議同步數據。
詳細可查看:
什么是 flume 日志收集,flume的特性
什么是 flume 日志收集,flume的原理是什么,flume會遇到什么問題

4.Cloudera Impala

Cloudera Impala對你存儲在Apache Hadoop在HDFS,HBase的數據提供直接查詢互動的SQL。除了像Hive使用相同的統一存儲平臺,Impala也使用相同的元數據,SQL語法(Hive SQL),ODBC驅動程序和用戶界面(Hue Beeswax)。Impala還提供了一個熟悉的面向批量或實時查詢和統一平臺。
詳細可查看:

什么是impala,如何安裝使用Impala
5.Cloudera   hue
Hue是cdh專門的一套web管理器,它包括3個部分hue ui,hue server,hue db。hue提供所有的cdh組件的shell界面的接口。你可以在hue編寫mr,查看修改hdfs的文件,管理hive的元數據,運行Sqoop,編寫Oozie工作流等大量工作。
詳細可查看:
cloudera hue安裝及Oozie的安裝
什么是Oozie?Oozie簡介
Cloudera Hue 使用經驗分享,遇到的問題及解決方案


------------------------------------------------------------------------------------------------------------------------------------------------

Spark

創始組織:加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發


Spark 是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。

Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。

盡管創建 Spark 是為了支持分布式數據集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoo 文件系統中并行運行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。

可以詳細了解
科普Spark,Spark是什么,如何使用Spark(1)
科普Spark,Spark核心是什么,如何使用Spark(2)
優酷土豆用Spark完善大數據分析
Hadoop新成員Hadoop-Cloudera公司將Spark加入Hadoop




Storm

創始人:Twitter
Twitter將Storm正式開源了,這是一個分布式的、容錯的實時計算系統,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType開發的實時處理系統,BackType現在已在Twitter麾下。GitHub上的最新版本是Storm 0.5.2,基本是用Clojure寫的。

詳細可以了解:
storm入門介紹
Storm-0.9.0.1安裝部署 指導
總體認識storm包括概念,場景,組成
大數據架構師:hadoop、Storm改選哪一個?
大數據架構:flume-ng+Kafka+Storm+HDFS 實時系統組合



龍旋風 2019-05-05 09:24 發表評論
]]>
2019年前端比較流行的框架http://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.html龍旋風龍旋風Sun, 05 May 2019 01:20:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.htmlhttp://www.tkk7.com/jackiesmith/comments/433747.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433747.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433747.html如今的前端已經不再像以前一樣就是簡單的寫寫頁面和調調樣式而已,現在的前端越來越復雜,知識點越來越豐富。
要做WEB前端,就需要知道前端到底是什么,需要學習那些知識;前端至少要懂的三個部分:HTML,CSS,JavaScript(簡稱JS),那首先先明確這三個概念:
HTML負責結構,網頁想要表達的內容由html書寫。
CSS負責樣式,網頁的美與丑由它來控制
JS負責交互,用戶和網頁產生的互動由它來控制。
web前端發展至今,演變出了無數的庫和框架;說到庫第一時間想到的是不是jquery?在小編剛接觸庫的時候也是從jQuery開始的;今天我們就來說說前端發展到現在都有哪些好用的庫框架;
1.Bootstrap中文網
先分享下,如果有想一起學習web前端,HTML5及JavaScript的可以來一下我的前端群733581373,好友都會在里面交流,分享一些學習的方法和需要注意的小細節,每天也會準時的講一些前端的炫酷特效,及前端直播課程學習
Bootstrap,讓你的頁面更簡潔、直觀、強悍、移動設備優先的前端開發框架,讓web開發更迅速、更簡單。它還提供了更優雅的HTML和CSS規范,它即是由動態CSS語言Less寫成。有著豐富的網格布局系統以及豐富的可重用組件,還有強大的支持十幾的JavaScript、jQuery插件以及組件定制等。
Bootstrap中文網地址:http://www.bootcss.com/
2. Layui
layer是一款口碑極佳的web彈層組件,是一款采用自身模塊規范編寫的前端 UI 框架,遵循原生 HTML/CSS/JS 的書寫與組織形式,門檻極低,拿來即用。layui 首個版本發布于2016年秋,她區別于那些基于 MVVM 底層的 UI 框架,從核心代碼到 API 的每一處細節都經過精心雕琢,非常適合界面的快速開發。
Layui官網地址:https://www.layui.com/
3.ElementUI
Element-Ul是餓了么前端團隊推出的一款基于Vue.js 2.0 的桌面端UI框架,手機端有對應框架是Mint UI 。適合于Vue的UI框架;
官網地址:http://element-cn.eleme.io/#/zh-CN
4.Mint UI
Mint UI 是 由餓了么前端團隊推出的 一個基于 Vue.js 的移動端組件庫,Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動端開發需要。通過它,可以快速構建出風格統一的頁面,提升開發效率。
官網地址:http://mint-ui.github.io/
5.angular
AngularJS誕生于2009年,由Misko Hevery 等人創建,后為Google所收購。是一款優秀的前端JS框架,已經被用于Google的多款產品當中。AngularJS有著諸多特性,最為核心的是MVW(Model-View-Whatever)、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等。
官網地址:http://www.angularjs.net.cn/
6.React
React 可以非常輕松地創建用戶交互界面。為你應用的每一個狀態設計簡潔的視圖,在數據改變時 React 也可以高效地更新渲染界面。React 起源于 Facebook 的內部項目,因為該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套,用來架設Instagram 的網站。做出來以后,發現這套東西很好用,就在2013年5月開源了。
官網地址:http://react-china.org/
7.vue.js
近幾年最火的前端框架當屬Vue.js了,Vue.js是一個構建數據驅動的 web 界面的漸進式框架。Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件。很多使用過vue的程序員這樣評價它,“vue.js兼具angular.js和react.js的優點,并剔除了它們的缺點”。授予了這么高的評價的vue.js,也是開源世界華人的驕傲,因為它的作者是位中國人--尤雨溪
--------------------- 
作者:前端入門到精通 
來源:CSDN 
原文:https://blog.csdn.net/zwjweb/article/details/86073841 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


龍旋風 2019-05-05 09:20 發表評論
]]>
幾款主流 NoSql 數據庫的對比http://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.html龍旋風龍旋風Sun, 05 May 2019 01:14:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.htmlhttp://www.tkk7.com/jackiesmith/comments/433746.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433746.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433746.html閱讀全文

龍旋風 2019-05-05 09:14 發表評論
]]>
常見的NoSQL數據庫http://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.html龍旋風龍旋風Sun, 05 May 2019 01:12:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.htmlhttp://www.tkk7.com/jackiesmith/comments/433745.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433745.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433745.htmlNoSQL數據庫發展迅猛,據說現在已經有上百種NoSQL數據庫了,下面來了解下常見的一些NoSQL數據庫

先來看張表,了解下典型的NoSQL數據庫的分類

臨時性鍵值存儲永久性鍵值存儲面向文檔的數據庫面向列的數據庫
MemcachedTokyo TyrantMangoDBCassandra
RedisFlareCouchDBHBase
 ROMA HyperTable
 Redis  

 

 

 

 

 

1. CouchDB

  • 所用語言: Erlang
  • 特點:DB一致性,易于使用
  • 使用許可: Apache
  • 協議: HTTP/REST
  • 雙向數據復制,
  • 持續進行或臨時處理,
  • 處理時帶沖突檢查,
  • 因此,采用的是master-master復制(見編注2)
  • MVCC – 寫操作不阻塞讀操作
  • 可保存文件之前的版本
  • Crash-only(可靠的)設計
  • 需要不時地進行數據壓縮
  • 視圖:嵌入式 映射/減少
  • 格式化視圖:列表顯示
  • 支持進行服務器端文檔驗證
  • 支持認證
  • 根據變化實時更新
  • 支持附件處理
  • 因此, CouchApps(獨立的 js應用程序)
  • 需要 jQuery程序庫

 

最佳應用場景:適用于數據變化較少,執行預定義查詢,進行數據統計的應用程序。適用于需要提供數據版本支持的應用程序。

例如: CRM、CMS系統。 master-master復制對于多站點部署是非常有用的。

(編注2:master-master復制:是一種數據庫同步方法,允許數據在一組計算機之間共享數據,并且可以通過小組中任意成員在組內進行數據更新。)

 

2. Redis

  • 所用語言:C/C++
  • 特點:運行異常快
  • 使用許可: BSD
  • 協議:類 Telnet
  • 有硬盤存儲支持的內存數據庫,
  • 但自2.0版本以后可以將數據交換到硬盤(注意, 2.4以后版本不支持該特性!)
  • Master-slave復制(見編注3)
  • 雖然采用簡單數據或以鍵值索引的哈希表,但也支持復雜操作,例如 ZREVRANGEBYSCORE。
  • INCR & co (適合計算極限值或統計數據)
  • 支持 sets(同時也支持 union/diff/inter)
  • 支持列表(同時也支持隊列;阻塞式 pop操作)
  • 支持哈希表(帶有多個域的對象)
  • 支持排序 sets(高得分表,適用于范圍查詢)
  • Redis支持事務
  • 支持將數據設置成過期數據(類似快速緩沖區設計)
  • Pub/Sub允許用戶實現消息機制

 

最佳應用場景:適用于數據變化快且數據庫大小可遇見(適合內存容量)的應用程序。

例如:股票價格、數據分析、實時數據搜集、實時通訊。

(編注3:Master-slave復制:如果同一時刻只有一臺服務器處理所有的復制請求,這被稱為 Master-slave復制,通常應用在需要提供高可用性的服務器集群。)

 

3. MongoDB

  • 所用語言:C++
  • 特點:保留了SQL一些友好的特性(查詢,索引)。
  • 使用許可: AGPL(發起者: Apache)
  • 協議: Custom, binary( BSON)
  • Master/slave復制(支持自動錯誤恢復,使用 sets 復制)
  • 內建分片機制
  • 支持 javascript表達式查詢
  • 可在服務器端執行任意的 javascript函數
  • update-in-place支持比CouchDB更好
  • 在數據存儲時采用內存到文件映射
  • 對性能的關注超過對功能的要求
  • 建議最好打開日志功能(參數 –journal)
  • 在32位操作系統上,數據庫大小限制在約2.5Gb
  • 空數據庫大約占 192Mb
  • 采用 GridFS存儲大數據或元數據(不是真正的文件系統)

 

最佳應用場景:適用于需要動態查詢支持;需要使用索引而不是 map/reduce功能;需要對大數據庫有性能要求;需要使用 CouchDB但因為數據改變太頻繁而占滿內存的應用程序。

例如:你本打算采用 MySQL或 PostgreSQL,但因為它們本身自帶的預定義欄讓你望而卻步。

 

4. Riak

  • 所用語言:Erlang和C,以及一些Javascript
  • 特點:具備容錯能力
  • 使用許可: Apache
  • 協議: HTTP/REST或者 custom binary
  • 可調節的分發及復制(N, R, W)
  • 用 JavaScript or Erlang在操作前或操作后進行驗證和安全支持。
  • 使用JavaScript或Erlang進行 Map/reduce
  • 連接及連接遍歷:可作為圖形數據庫使用
  • 索引:輸入元數據進行搜索(1.0版本即將支持)
  • 大數據對象支持( Luwak)
  • 提供“開源”和“企業”兩個版本
  • 全文本搜索,索引,通過 Riak搜索服務器查詢( beta版)
  • 支持Masterless多站點復制及商業許可的 SNMP監控

 

最佳應用場景:適用于想使用類似 Cassandra(類似Dynamo)數據庫但無法處理 bloat及復雜性的情況。適用于你打算做多站點復制,但又需要對單個站點的擴展性,可用性及出錯處理有要求的情況。

例如:銷售數據搜集,工廠控制系統;對宕機時間有嚴格要求;可以作為易于更新的 web服務器使用。

5. Membase

  • 所用語言: Erlang和C
  • 特點:兼容 Memcache,但同時兼具持久化和支持集群
  • 使用許可: Apache 2.0
  • 協議:分布式緩存及擴展
  • 非常快速(200k+/秒),通過鍵值索引數據
  • 可持久化存儲到硬盤
  • 所有節點都是唯一的( master-master復制)
  • 在內存中同樣支持類似分布式緩存的緩存單元
  • 寫數據時通過去除重復數據來減少 IO
  • 提供非常好的集群管理 web界面
  • 更新軟件時軟無需停止數據庫服務
  • 支持連接池和多路復用的連接代理

 

最佳應用場景:適用于需要低延遲數據訪問,高并發支持以及高可用性的應用程序

例如:低延遲數據訪問比如以廣告為目標的應用,高并發的 web 應用比如網絡游戲(例如 Zynga)

 

6. Neo4j

  • 所用語言: Java
  • 特點:基于關系的圖形數據庫
  • 使用許可: GPL,其中一些特性使用 AGPL/商業許可
  • 協議: HTTP/REST(或嵌入在 Java中)
  • 可獨立使用或嵌入到 Java應用程序
  • 圖形的節點和邊都可以帶有元數據
  • 很好的自帶web管理功能
  • 使用多種算法支持路徑搜索
  • 使用鍵值和關系進行索引
  • 為讀操作進行優化
  • 支持事務(用 Java api)
  • 使用 Gremlin圖形遍歷語言
  • 支持 Groovy腳本
  • 支持在線備份,高級監控及高可靠性支持使用 AGPL/商業許可

 

最佳應用場景:適用于圖形一類數據。這是 Neo4j與其他nosql數據庫的最顯著區別

例如:社會關系,公共交通網絡,地圖及網絡拓譜

 

7. Cassandra

  • 所用語言: Java
  • 特點:對大型表格和 Dynamo支持得最好
  • 使用許可: Apache
  • 協議: Custom, binary (節約型)
  • 可調節的分發及復制(N, R, W)
  • 支持以某個范圍的鍵值通過列查詢
  • 類似大表格的功能:列,某個特性的列集合
  • 寫操作比讀操作更快
  • 基于 Apache分布式平臺盡可能地 Map/reduce
  • 我承認對 Cassandra有偏見,一部分是因為它本身的臃腫和復雜性,也因為 Java的問題(配置,出現異常,等等)

 

最佳應用場景:當使用寫操作多過讀操作(記錄日志)如果每個系統組建都必須用 Java編寫(沒有人因為選用 Apache的軟件被解雇)

例如:銀行業,金融業(雖然對于金融交易不是必須的,但這些產業對數據庫的要求會比它們更大)寫比讀更快,所以一個自然的特性就是實時數據分析

 

8. HBase

(配合 ghshephard使用)

  • 所用語言: Java
  • 特點:支持數十億行X上百萬列
  • 使用許可: Apache
  • 協議:HTTP/REST (支持 Thrift,見編注4)
  • 在 BigTable之后建模
  • 采用分布式架構 Map/reduce
  • 對實時查詢進行優化
  • 高性能 Thrift網關
  • 通過在server端掃描及過濾實現對查詢操作預判
  • 支持 XML, Protobuf, 和binary的HTTP
  • Cascading, hive, and pig source and sink modules
  • 基于 Jruby( JIRB)的shell
  • 對配置改變和較小的升級都會重新回滾
  • 不會出現單點故障
  • 堪比MySQL的隨機訪問性能

 

最佳應用場景:適用于偏好BigTable:)并且需要對大數據進行隨機、實時訪問的場合。

例如: Facebook消息數據庫(更多通用的用例即將出現)

編注4:Thrift 是一種接口定義語言,為多種其他語言提供定義和創建服務,由Facebook開發并開源

當然,所有的系統都不只具有上面列出的這些特性。這里我僅僅根據自己的觀點列出一些我認為的重要特性。與此同時,技術進步是飛速的,所以上述的內容肯定需要不斷更新。我會盡我所能地更新這個列表。

 



    龍旋風 2019-05-05 09:12 發表評論
    ]]>
    java替換Excel字符http://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.html龍旋風龍旋風Fri, 23 Mar 2018 12:42:00 GMThttp://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.htmlhttp://www.tkk7.com/jackiesmith/comments/433128.htmlhttp://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433128.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433128.html
  • //模板路徑

    String modelPath="D:\Excel.xls" 

    //sheet的名字

    String sheetName="sheet1";

    獲取Excel模板對象

     try {  

                File file = new File(modelPath);  

                if(!file.exists()){  

                    System.out.println("模板文件:"+modelPath+"不存在!");  

                }  

                fs = new POIFSFileSystem(new FileInputStream(file));  

                wb = new HSSFWorkbook(fs);  

                sheet = wb.getSheet(sheetName);  

            } catch (FileNotFoundException e) {  

                e.printStackTrace();  

            } catch (IOException e) {  

                e.printStackTrace();  

            }

  • //從heet中獲取行數

    int rowNum = sheet.getLastRowNum();

  • //獲取行里面的總列數

    row = sheet.getRow(i); //i:第I行

    // 獲取行里面的總列數

    int columnNum = 0;

    if(row!=null){

    columnNum = row.getPhysicalNumberOfCells();

    }

  • //獲取單元格的值 

    HSSFCell cell = sheet.getRow(i).getCell(j); //第i行,第j列

    String cellValue = cell.getStringCellValue();

  • //替換數據   本人的數據存放在Map中

    for (Entry<String, Object> entry : param.entrySet()) {

            String key = entry.getKey();

            if(key.equals(cellValue)){

                    String value = entry.getValue().toString();

                    setCellStrValue(i, j, value);//設置第i行,第j列的值為Value

            }

    }

  • 完整代碼:

        /**

         * 替換Excel模板中的數據

         * @param sheetName Sheet名字

         * @param modelPath 模板路徑

         * @param param 需要替換的數據

         * @return

         * @author 劉澤中

         * @Date: 2015年12月11日

         */

        public HSSFWorkbook replaceExcel(String sheetName,String modelPath,Map<String, Object> param){

        //獲取所讀取excel模板的對象

            try {  

                File file = new File(modelPath);  

                if(!file.exists()){  

                    System.out.println("模板文件:"+modelPath+"不存在!");  

                }  

                fs = new POIFSFileSystem(new FileInputStream(file));  

                wb = new HSSFWorkbook(fs);  

                sheet = wb.getSheet(sheetName);  

            } catch (FileNotFoundException e) {  

                e.printStackTrace();  

            } catch (IOException e) {  

                e.printStackTrace();  

            } 

        replaceExcelDate(param);

        return wb;

        }

        /**

         * 根據 Map中的數據替換Excel模板中指定數據

         * @param param 

         * @author 劉澤中

         * @Date: 2015年12月11日

         */

        public void replaceExcelDate(Map<String, Object> param){

    // 獲取行數

    int rowNum = sheet.getLastRowNum();

    for (int i = 0; i < rowNum; i++) {

    row = sheet.getRow(i);

    // 獲取行里面的總列數

    int columnNum = 0;

    if(row!=null){

    columnNum = row.getPhysicalNumberOfCells();

    }

    for (int j = 0; j < columnNum; j++) {

    HSSFCell cell = sheet.getRow(i).getCell(j);

    String cellValue = cell.getStringCellValue();

    for (Entry<String, Object> entry : param.entrySet()) {

    String key = entry.getKey();

    if(key.equals(cellValue)){

    String value = entry.getValue().toString();

    setCellStrValue(i, j, value);

    }

    }

    }

    }

        }

        /** 

         * 設置字符串類型的數據 

         * @param rowIndex--行值 從0開始

         * @param cellnum--列值  從0開始

         * @param value--字符串類型的數據 

         * 

         * @author 劉澤中

         * @Date: 2015年12月11日

         */  

        public void setCellStrValue(int rowIndex, int cellnum, String value) {  

            HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);  

            cell.setCellValue(value);  

        }



  • 龍旋風 2018-03-23 20:42 發表評論
    ]]>
    HttpClient調用Web工程的Spring @Controller方法http://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.html龍旋風龍旋風Sun, 06 Sep 2015 08:16:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.htmlhttp://www.tkk7.com/jackiesmith/comments/427140.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/427140.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/427140.html
    package com.acce.server.order.controller;
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import com.acce.server.core.controller.BaseController;
    import com.acce.server.pcOrder.service.PcBillService;
    import com.alibaba.fastjson.JSONObject;
    @Controller()
    public class TestController extends BaseController {
    @Resource(name = "PcBillService")
    private PcBillService pcBillService;
    /**
    * 獲取tabFirster表中屬于該用戶的信息。
    * @param json
    * @param response
    */
    @RequestMapping("/api/order/querryTabHeadByPC.html")
    public void querryTabHead(@RequestParam String json,
    HttpServletResponse response) {
    System.out.println("/api/order/querryTabHead.html 接口獲取到json:" + json);
    String rstString = pcBillService.querryTabHead(
    JSONObject.parseObject(json)).toString();
    response.setContentType("text/html; charset=utf-8");
    this.wirteJsonToResponse(response, rstString);
    }
    }

    2、將響應結果返回:
    package com.acce.server.core.controller;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.log4j.Logger;
    public class BaseController {
    protected Logger LOGGER = Logger.getLogger(this.getClass());
    /**
    * 將json寫到servlet輸出流
    * @param response
    * @param json
    */
    protected void wirteJsonToResponse(HttpServletResponse response,String json) {
    PrintWriter writer = null;
    try {
    writer = response.getWriter();
    writer.println(json);
    writer.flush();
    } catch (IOException e) {
    LOGGER.error("服務端寫json報錯:"+json,e);
    } finally {
    if(null != writer) {
    writer.close();
    }
    }
    }
    }
    3、新起一個JavaProject,導入HttpClient相關jar包:httpclient-4.3.6.jar、httpclient-cache-4.2.jar、httpcore-4.3.3.jar、httpcore-ab-4.2.1.jar、httpcore-nio-4.2.1.jar、httpmime-4.2.jar
    package acce;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.protocol.HTTP;
    public class TestHttpClient {
    public static void main(String[] args) {
    // \"{\"tabCorpFirst\":\"快來大酒店\",\"syncing\":\"1\"}\"
    String url = "http://localhost:8080/acce-server/api/order/querryKingdomFromFirster.html";
    try {
    HttpClient httpClient = new DefaultHttpClient();
    // HttpPost 實現 HttpUriRequest 接口,HttpUriRequest接口 繼承 HttpRequest
    HttpPost httpPostReq = new HttpPost(url);
    ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>();
    String json = "{\"tabCorpFirst\":\"快來大酒店\",\"syncing\":\"1\"}";
    NameValuePair param1 = new BasicNameValuePair("json", json);
    paramList.add(param1);
    UrlEncodedFormEntity aa = new UrlEncodedFormEntity(paramList,
    HTTP.UTF_8);
    httpPostReq.setEntity(aa);
    HttpResponse resp = httpClient.execute(httpPostReq);
    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    BufferedReader reader = new BufferedReader(
    new InputStreamReader(resp.getEntity().getContent()));
    StringBuffer result = new StringBuffer();
    String inputLine = null;
    while ((inputLine = reader.readLine()) != null) {
    result.append(inputLine);
    }
    System.out.println("結果: " + result.toString());
    } else {
    System.out.println("結果: "
    + resp.getStatusLine().getStatusCode());
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    測試調用接口正確,并能獲取到正確的值;
    注:由于項目是UTF-8,需要轉碼。


    龍旋風 2015-09-06 16:16 發表評論
    ]]>
    linux環境下Apache安裝及整合Apache和Tomcathttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.html龍旋風龍旋風Fri, 07 Aug 2015 06:50:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.htmlhttp://www.tkk7.com/jackiesmith/comments/426617.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/426617.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/426617.htmlApache和tomcat-connector下載地址:
    http://httpd.apache.org/
    http://tomcat.apache.org/download-connectors.cgi
    參考URL:
    http://blog.csdn.net/wubai250/article/details/8533968

    下載解壓tar.gz,使用命令tar -zxvf *.tar.gz解壓http和tomcat-connector
    注:jdk、Tomcat安裝不再此處描述,可在網上搜索。
    1、安裝Apache2(httpd-2.2.31)
        $cd httpd-2.2.31
       $./configure --prefix=/env/web/apache/
       $make
       $make install
       安裝成功后,進入
      $ cd /env/web/apache/bin
       $ 
    ./apachectl -k start
       打開httpd.conf之后查找Listen這行
        改成Listen 80

        注:80端口要是被占用了就啟動不了的,如果被占用可以改成7160之類的
        再查找ServerName
        改成
        ServerName localhost:80
        就修改這2個地方就完成了,可以啟動了

    2、安裝tomcat-connectors-1.2.40-src
    CentOS環境下整合Apache和Tomcat
    轉載:http://www.aiplaypc.com/111.html

    1、先去apache官網下載tomcat與apache關聯的相關應用,地址
    http://tomcat.apache.org/download-connectors.cgi
    2、解壓下載的
     tar -xzvf tomcat-connectors-1.2.40-src.tar.gz 
    3、進入cd /
    tomcat-connectors-1.2.40-src/native ,輸入命令:./configure --with-apxs=/env/web/apache/bin/apxs(注:此處為apache安裝路徑)
         $make
         $make install
      注意:安裝完成tomcat-connectors之后,查看apache目錄下的modules目錄,是否多出一些.so文件。這些文件即jk的配置信息文件
    3、配置負載均衡
    A)、修改http.conf配置文件
    <VirtualHost *:80>
    ServerName test.XXX.com
    ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=on
    ProxyPassReverse / balancer://cluster
    ErrorLog logs/test.XXX.com-error_log
    CustomLog logs/test.XXX.com-access_log common
    </VirtualHost>

    ProxyRequests Off
    <Proxy balancer://cluster>
            #注此處端口不是8080那個端口,而是負載均衡使用的端口
    BalancerMember ajp://127.0.0.1:8089 loadfactor=1 route=jvm1
    BalancerMember ajp://127.0.0.1:9099 loadfactor=1 route=jvm2
    </Proxy>
    注:參考
    http://www.cnblogs.com/fx2008/p/4086555.html
    B)、配置tomcat
    修改端口,具體詳見上述鏈接描述



    龍旋風 2015-08-07 14:50 發表評論
    ]]>
    【cenos】apache安裝及配置(同一端口分靜態html和動態tomcat頁面)http://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.html龍旋風龍旋風Mon, 03 Aug 2015 08:20:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.htmlhttp://www.tkk7.com/jackiesmith/comments/426561.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/426561.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/426561.html     cenos 環境、httpd 2.2.3、tomcat 7、jdk 1.7、mysql 5.5
        注:jdk、tomcat安裝不再描述
    2、安裝apache httpd
        查看是否有安裝httpd :rpm -qa httpd
        安裝httpd : yum install httpd
        卸載httpd : yum remove httpd
    3、默認安裝路徑:/etc/httpd
        啟動httpd: cd /etc/init.d/   ./httpd start
        停止httpd: cd /etc/init.d/   ./httpd stop
    4、修改/etc/httpd/conf/httpd.conf
         #同一端口,不同域名配置必須下一行
         NameVirtualHost *:80
        <VirtualHost *:80>
            ServerName XX.XXX.com
            DocumentRoot "/env/www/html"
            ErrorLog logs/XX.XXX.com-error_log
            CustomLog logs/XX.XXX.com-access_log common
        </VirtualHost>
        <VirtualHost *:80>
    ServerName YY.YYY.com
            ProxyPass / http://YY.YYY.com:8080/
            ProxyPassReverse / http://YY.YYY.com:8080/
            ErrorLog logs/hbseed.accedeal.com-error_log
            CustomLog logs/hbseed.accedeal.com-access_log common
        </VirtualHost>
    5、在瀏覽器中分別輸入XX.XXX.com和YY.YYY.com分別訪問了html和tomcat的jsp項目



    龍旋風 2015-08-03 16:20 發表評論
    ]]>
    Tomcat配置域名和多域名映射同一IP(Windows環境)http://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.html龍旋風龍旋風Wed, 27 May 2015 03:02:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.htmlhttp://www.tkk7.com/jackiesmith/comments/425325.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/425325.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/425325.html 1、硬件配置:Win7、Tomcat7.0;

    2、修改 C:\Windows\System32\drivers\etc\hosts 文件
        增加域名映射本服務器地址(可換成IP地址):
        127.0.0.1 heyj.net
        127.0.0.1 www.test.net
        127.0.0.1 www.run.net
    3、tomcat目錄下的conf文件夾, server.xml
        修改8080端口,改為80
        <
    Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
        <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
        修改Host端口對應的配置
        <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
           <Alias>heyj.net</Alias>
           <Alias>www.test.net</Alias>
           <Alias>www.run.net</Alias>
        </Host>
    4、輸入localhost、heyj.net、www.test.net、www.run.net后,IE頁面均能顯示如圖所示:
      



        




    龍旋風 2015-05-27 11:02 發表評論
    ]]>
    Input Text 的事件及方法http://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.html龍旋風龍旋風Sat, 12 Jul 2014 03:06:00 GMThttp://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.htmlhttp://www.tkk7.com/jackiesmith/comments/415722.htmlhttp://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/415722.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/415722.html閱讀全文

    龍旋風 2014-07-12 11:06 發表評論
    ]]>
    主站蜘蛛池模板: 一级毛片免费毛片一级毛片免费| 最刺激黄a大片免费网站| 亚洲精品白浆高清久久久久久| 国产情侣久久久久aⅴ免费| 亚洲AV无码国产精品色| 91天堂素人精品系列全集亚洲| 国产又黄又爽又猛免费app| 精品一区二区三区无码免费直播| 亚洲精品乱码久久久久久中文字幕| 999国内精品永久免费视频| 永久免费精品影视网站| 亚洲av乱码一区二区三区| 亚洲一区二区三区在线播放 | 成人免费无码H在线观看不卡| 色拍自拍亚洲综合图区| 免费人妻无码不卡中文字幕18禁| 日本一道本不卡免费| 亚洲av无码专区在线观看下载 | 亚洲女久久久噜噜噜熟女| 日韩电影免费在线| 午夜免费福利小电影| 青青草97国产精品免费观看| 亚洲无成人网77777| 亚洲欧洲美洲无码精品VA| 国产嫩草影院精品免费网址| 59pao成国产成视频永久免费| 一区二区三区免费精品视频| 亚洲性线免费观看视频成熟| 久久青青成人亚洲精品| 亚洲人成网站色在线入口| 免费无码肉片在线观看| 亚欧日韩毛片在线看免费网站| 日日摸夜夜添夜夜免费视频| 亚洲香蕉在线观看| 亚洲色图黄色小说| 婷婷久久久亚洲欧洲日产国码AV| 亚洲精品97久久中文字幕无码| 日韩免费高清视频| 青娱分类视频精品免费2| 999久久久免费精品播放| 国产做国产爱免费视频|