Time of Update: 2018-12-05
LocalStrategy (org.apache.cassandra.locator.LocalStrategy):只在本地節點中保持一個副本。 public Set<InetAddress> calculateNaturalEndpoints(Token token, TokenMetadata metadata) { Set<InetAddress> endpoints = new HashSet<InetAddress>(1)
Time of Update: 2018-12-05
---畢玄關於晉陞----如果是技術方向發展的人員,我們要看技術方面的專業性;然後是看你這些技術對公司的業務發展有多少貢獻;還有一點我比較看重的是,也許你不在其位,但能夠跳出自己的範圍,想到公司未來到底會面臨什麼問題,用什麼方法來解決。當然光想是不夠的,如果你能夠落地就最好了,我們是不管你落地的技術含量是有多高的,關鍵是你解決了什麼樣的問題。如果你能夠做到這些的話,你這個人對公司就非常重要。---畢玄關於校招----其實校招的時候,我比較欣賞的學生往往是那些很“不務正業”的類型的。我經常會問他們
Time of Update: 2018-12-05
(1)Cassandra的用戶端http://wiki.apache.org/cassandra/CassandraCli0_7http://jonathanhui.com/cassandra-cli-clienthttp://www.datastax.com/docs/0.8/dml/using_cli(2)Cassandra的索引http://www.datastax.com/docs/0.7/data_model/supercolumnshttp://www.datastax.com/do
Time of Update: 2018-12-05
用一個ColumnFamily來儲存資料,用一個或者多個ColumnFamily來為這些資料提供索引服務,是一個常見的資料存放區策略。索引策略主要依賴需要被索引的資料。記住,索引中的每一行都儲存在單一的節點上,所以當一個單行索引被大量使用的時候,這個節點的負載會比平均負載大一些。以下為一些常見使用的索引策略。一對一這種情況對應於關聯式資料庫的唯一索引,被索引的值不存在重複,每一個被索引的值都對應於一條記錄,可以使用Cassandra的寬表方式來儲存索引資訊,ColumnFamily的一行資料表示
Time of Update: 2018-12-05
怎麼去給一個Row的Column建立二級索引是Cassandra中一個常見擬題。下面的這個文章來講一個實現方式,當然不是只有這一種才能實現。對於有經驗的Cassandra使用者來講,這個文章應該會提起興趣哦,這裡描述的實現方式根本不用Super Column,也就不會有使用Super
Time of Update: 2018-12-05
BTrace實際案例分析問題表象問題描述1.最近有項目組的童鞋反饋,web頁面頻繁出現假死的狀態。2.web頁面的假死出現是機率事件,且無法確定假死的引發原因。3.是在一定的操作之後出現的,但是無法確定究竟是哪些操作引發這些操作。問題分析初步分析我們都知道web容器一般都是單一實例多線程的方式工作的,當頁面發起請求後,tomcat發分配一個線程進行當前請求的處理,當出現頁面假死,說明是由於某種原因導致了線程在等待某種資源,可以是IO、網路響應、資料庫連接、等待鎖等等,所以需要首先確定該線程是在
Time of Update: 2018-12-05
BTrace工具使用簡介“Hello World”案例描述使用test方法接收一個int型別參數,根據參數放入map中兩個字串。現代碼中沒有列印出任何的日誌,導致產生的int值無法確定,以及執行路徑無法確定,這個時候可以使用BTrace來跟蹤、剖析器路徑。Java代碼import java.util.HashMap; import java.util.Map; import java.util.Random; public class TestHello {
Time of Update: 2018-12-05
CloudKick:http://www.360doc.com/relevant/45799301_more.shtml應用情境,監控與即時資料分析,主要用於儲存三種類型的資料:數字和文本表示的度量資料;按時間段累計的摘要資料;時間片段的狀態資料。CloudKick主要利用了cassandra的良好的寫入特點,不過儲存的資料結構很簡單,不涉及從RDBMS的模型轉換為NOsql的模式變遷。DIgg:http://www.360doc.com/relevant/45799301_more.shtml
Time of Update: 2018-12-05
BTrace工具簡介What is Btrace?Java進程診斷分析工具安全的工具 無侵入性 不修改應用任何應用資料 限制跟蹤行為,沒能有迴圈相依元件 使用OjbectWeb ASM組件來完成位元組碼層面上的跟蹤分析開源組件 項目首頁:http://btrace.dev.java.netGPLv2 + CLASSPATH ExceptionVisualVM 外掛程式和開發時外掛程式
Time of Update: 2018-12-05
在實際的生產環境營運一個Hadoop叢集有一些必須要關注的事情。1、Namenode的高可靠性2、節點配置與管理3、Mapreduce的記憶體配置4、啟用trash首要的是保證資料安全可靠,其次再去考慮儲存效率、計算效率、營運效率的最佳化與提高,當你覺得Hadoop叢集的效能太差太差的時候,其實是你對Hadoop的瞭解太少,Hadoop的效率沒有被發揮出來。資料的可靠性,可以通過高可用、高可靠的NameNode,以及具體資料多副本來實現。啟用Trash可以讓你在誤刪除資料之後快要絕望的時候給你反
Time of Update: 2018-12-05
一、HFile結構介紹 為了支援資料的隨機查詢,HFile結構分為六個部分:1、資料區塊–儲存表中的資料,每一個資料區塊由塊頭和一些keyValue(record)組成,key的值是嚴格按照順序儲存的。塊大小預設為64K(由建表時建立cf時指定或者HColumnDescriptor.setBlockSize(size)),這一部分可以壓縮儲存。在查詢資料時,是以資料區塊為單位從硬碟load到記憶體。尋找資料時,是順序的遍曆該塊中的keyValue對。2、中繼資料塊 (可選的)–儲存使用者自訂的
Time of Update: 2018-12-05
(一)Gossip的作用Cassandra叢集沒有中心節點,各個節點的地位完全相同,它們通過一種叫做gossip的協議維護叢集的狀態。 通過gossip,每個節點都能知道叢集中包含哪些節點,以及這些節點的狀態,這使得Cassandra叢集中的任何一個節點都可以完成任意key的路由,任意一個節點不可用都不會造成災難性的後果。
Time of Update: 2018-12-05
Java很神秘,有一層紙沒有被捅破的話真的有很多東西貌似是解釋不通,仔細探究之後就真相大白了。這裡收集幾個典型的案例。(1)字串的那些事public class StringTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString a1 = "a"+1;String b1 = "a1";String c1 = new String("a1")
Time of Update: 2018-12-05
對於曆史資料的查詢,在資料規模不大的情況下,可以用傳統的關係型資料庫,如oracle,mysql等,可以利用他們提供的索引功能,實現高效的查詢。但是當資料上升到一定規模後,用傳統的關係型資料庫就不太合適了,當然可以把資料存到分散式資料庫HBase中。HBase目前只支援對rowkey的一級索引,對於二級索引還不支援,當然可以把所有要索引的欄位都拼接到rowkey中,根據hbase的filter功能進行查詢,如按照尋找一個使用者的一段時間的訂單,rowkey可以這樣設計,rowkey="10002
Time of Update: 2018-12-05
最近一段時間沒有工作,為此也有大把的時間,可以做一些平時沒有時間做的事情,借事情來重建自己的知識體系,查漏補缺。決定要利用這一段時間來實現一個服務化架構,實現得七七八八的時候再在github上開源。(一)服務化架構特徵1、支援無狀態、多版本2、支援熱部署、自發現、fail
Time of Update: 2018-12-05
Hbase的最佳化總結 上面這張圖不是一太清晰,我後面給個單獨的串連 這裡的HBase的最佳化主要從三個大的維度來進行分析1、系統硬體 採用普通的PC Server即可,Master要求高一點(比如8 CPU,48G記憶體,SAS raid),Regionserver(如8CPU,24G記憶體,1T*12 SATA JBOD) 對於儲存regionserver節點採用JBOD,master採用sas raid1+0
Time of Update: 2018-12-05
最近我一直在考慮一個問題,華為的BME架構與裸奔的Struts2整合Spring到底差別在哪裡呢?由於多次直接使用BME架構來開發MTV
Time of Update: 2018-12-05
最近由於業務上的考慮,把內容的點擊數、播放數等變化頻換(每日1000W-2000w次)但是對於業務沒有太大即時意義的計數,由即時操作DB變更為只記錄動作記錄,每晚匯總各機器的動作記錄,計算各內容點擊與播放的總數一次性更新DB,將DB的操作降低到百萬層級以內了。這個過程中使用rsync來進行動作記錄的同步,為避免遺忘特記錄下配置rsync服務以及進行記錄檔傳輸的過程。機器以及配置過程如下:192.168.1.100作為rsync伺服器,提供rsync服務;192.168.1.101 、192.16
Time of Update: 2018-12-05
業務系統中的核心業務資料變化比較少,但是讀取量卻巨大無比,目前不超過30W條資料,但是每日的讀取量都在3000W+以上,整個業務資料直接使用Java序列化緩衝起來佔用的記憶體總量不超過175MB,如果採用Redis/memcache等集中式緩衝的話,對儲存空間和並發量來講都可以接受,只是需要實現非常可靠的高可用性,至少要雙機(主備、雙寫等方式都可以接受),並且要有良好的單點失敗處理機制(如果Cache掛5秒,串連Cache使用1秒逾時的話估計系統整個會被拖垮)。鑒於這樣的特徵,我考慮使用本機快取
Time of Update: 2018-12-05
Google App Engine for Java 這裡看GAE支援的java架構/技術/語言 列表https://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine 然後是讓Struts2運行在gae上的方法這裡有2個相關資料https://groups.google.com/group/google-appengine-java/browse_thread/thread/19018b03