背景:
公司核心業務庫現存在mongodb中,分布在6臺mongodb節點。現面臨如下問題:
1.最大的一張表有10多個g,mongodb在查詢方面尚能勝任,但是涉及到複雜計算時會比較吃力。
2.mongodb中有三張表,分別記錄了終端使用者在三個不同系統(**,遊戲,桌牌等)的行為,需要按使用者匯聚成一張表。
考慮到mongodb整合hadoop來獲得計算能力,先要讓hadoop能訪問到mongodb中資料,下面討論各個方案:
一)乙個不安全的方案--mongodb-connector
for hadoop
支援通過hive建表直接訪問mongodb中的資料:
create問題:table
default
.caller_intent
( id string
merchantid
int,
effective boolean,
level
string,
status string,
canceled boolean,
levelid
int,
sendmsg boolean
)stored by'
com.mongodb.hadoop.hive.mongostoragehandler
'with serdeproperties(''=
'')tblproperties(
'mongo.uri'=
'mongodb:
');
1)mongo資料庫需要暴露密碼給hadoop平台,兩個平台是不同團隊維護。
2)hadoop對mongo的操作是難以預料的,在不當時間內做不當操作可能會影響mongodb負載。如果你的團隊沒有這樣的問題,可以考慮這個方案。
二)乙個好想法,但只是「想法」--mongodb-oplog同步到hadoop
通過oplog來同步資料是乙個好想法,不過目前沒有好的工具包支援同步到hive(倒是有同步到solr和elasticsearch的),自己開發成本太高,作罷。
三)乙個可行方案:寫入mongodb的同時寫入到kafka,然後通過flume到hdfs。
問題:
在這個方案施行以前的歷史資料需要手動匯入。四)另乙個想法:另建乙個備mongodb集群同步主集群資料,hadoop平台擁有該備mongo集群許可權。問題:增加一台伺服器資源,卻只是為了安全的考慮,成本-效益不高。
ApplicationContext的四個實現類
context的實現類有很多,但是 ci 是唯一做具體工作的,其他實現都是對 ci 做 ci 中有一些成員物件,先來看看這些物件的用處 1.mresources resources 獲取 apk 中 res 資源的物件。2.moutercontext context 用於指向 本物件的 contex...
走過四年 無言的大四
大四,不知道該記述那現實歲月裡的那一點。前三年,有夢想的人可以盡情地追夢 沒有夢的人,還可以忘我地醉生夢死。然而,大四。所有人都被拉回現實,面臨選擇 工作還是創業 考研,還是出國留學。現實非常的現實。生活還是照常,但每個人都改變著。臥談會的內容也不再只有遊戲 女生,會加進工作 工資,未來。大四上,提...
四元數,四叉樹的理解
四元數是複數向三維的擴充擴充套件,使用複數乘法來實現旋轉。具體參考如下 understanding quaternions understanding quaternions 中文翻譯 其實就是將二維空間使用矩形大小來表示,每個結點分為0 leftup,1 leftdown,2 rightup,3 ...