用什么做flash游戲下載網(wǎng)站優(yōu)化防疫措施
hdfs
hbase
NoSQL數(shù)據(jù)庫(kù) 支持海量數(shù)據(jù)的增刪改查 基于Rowkey查詢效率特別高
kudu
介于hdfs和hbase之間
hbase依賴hadoop+zookeeper,同時(shí)整合框架phoenix(擅長(zhǎng)讀寫(xiě)),hive(分析數(shù)據(jù))
k,v 儲(chǔ)存結(jié)構(gòu)
稀疏的(為空的不存儲(chǔ))、分布式的、持久地、多維排序map-》映射:行鍵、列鍵、時(shí)間戳,未解釋的(序列化的,存儲(chǔ)效率高)
數(shù)據(jù)存儲(chǔ)整體有序? 列 、 列族 、 rowkey按字典序排序,然后將一個(gè)“表格”切分出一個(gè)Region,對(duì)應(yīng)有rowkey的范圍,每個(gè)Region的rowkey范圍都不重疊。豎行切分store,按列族為單位進(jìn)行。
?
?
?使用timestamp實(shí)現(xiàn)數(shù)據(jù)修改,version確認(rèn)版本,操作類型type
namespace=database
cell唯一確定的單元
架構(gòu)
master通過(guò)zookeeper管理region server,region server向zookeeper注冊(cè)自己的信息
操作表格的命令是有master進(jìn)行的,修改和刪除
loadBalancer均衡負(fù)載器
預(yù)寫(xiě)日志處理器:容錯(cuò)機(jī)制
master backup server 高可用信息
hbase shell 常用命令: list_namespace
DDL:
create_namespace 'bigdata'
create 't1',? {NAME=>'F1',VERSION=>5}
?????????? 表名?? 列族 名 ? ? ? ? ? ? 指定維護(hù)的時(shí)間戳版本數(shù),例子中的版本數(shù)為5 ???????
describe 't1'
alter 't1' ,'delete'=>'info1'? 刪除列族
刪除表: disable 't1'?????? drop 't1'
DML:
插入數(shù)據(jù): put 'bigdata:t1'???????? ,'r1'???????? ,'c1'?????????????????? ,'value'??? ts1
????????????????????????? '庫(kù)名 :表名'?? rowkey??? 列族:列名?????????? 列值?? 時(shí)間戳
讀取數(shù)據(jù):
get 一行數(shù)據(jù)? 和scan 多行數(shù)據(jù)
scan 'bigdata:t1' {startrow=>'',stoprow=>''}
??????????????????????????? 前開(kāi)后閉
刪除數(shù)據(jù):
delete 刪除一行數(shù)據(jù),一個(gè)cell。 默認(rèn)是刪除給定時(shí)間戳之前的第一個(gè)遇到的時(shí)間戳的數(shù)據(jù)。實(shí)際是在插入一條delete記錄。
delete all 刪除所有版本的數(shù)據(jù),即多個(gè)cell。
API
涉及java建造者 Builder模式: 命名空間建造者=》設(shè)計(jì)師
集成phoenix? 針對(duì)hbase上面還沒(méi)有數(shù)據(jù),需要寫(xiě)入數(shù)據(jù)? 不適合復(fù)雜SQL查詢
開(kāi)源hbase的sql皮膚? 標(biāo)準(zhǔn)jdbc API 自帶sql優(yōu)化器 如謂詞下推
phoenix的primarykey對(duì)應(yīng)hbase的rowkey??? 官網(wǎng)查詢語(yǔ)法,與sql類似
!table
?
已經(jīng)存在于hbase的表,phoenix需要進(jìn)行視圖映射或表映射才能使用。
create view? drop view 只能看,無(wú)法操作數(shù)據(jù)
表映射可以修改刪除數(shù)據(jù)
phoenix二級(jí)索引-將 全表掃描優(yōu)化為范圍掃描
默認(rèn) 全局索引:專門(mén)創(chuàng)建一張索引表,給非rowkey列去做rowkey排序(如字典序)。寫(xiě)的時(shí)候需要寫(xiě)兩張表,故適合多讀少寫(xiě)的場(chǎng)景。
explain 查看執(zhí)行計(jì)劃
?
全局索引的局限,不能包含非索引字段
全局索引的補(bǔ)充:包含索引
?
?
本地索引
hbase參數(shù)優(yōu)化:
zookeeper timeout優(yōu)化?
rpc監(jiān)聽(tīng)數(shù)量 :put、get
?
多個(gè)寫(xiě)緩存加起來(lái)大小大于40%
JVM調(diào)優(yōu)
?并發(fā)垃圾回收:一邊讀寫(xiě)一邊垃圾回收
?
?
?
?
集成hive 針對(duì)hbase上面已經(jīng)存好數(shù)據(jù),需要分析數(shù)據(jù)
hbase的數(shù)據(jù)其實(shí)也是存儲(chǔ)在hdfs上面的
?HQL創(chuàng)建hbase表
?
load data 只是將數(shù)據(jù)上傳到文件系統(tǒng)指定目錄中,而insert into 才能把格式對(duì)應(yīng)上,因?yàn)樗苌逃?jì)算程序(如mr);
?rowkey設(shè)計(jì)原則
TSDB 將時(shí)間戳加入rowkey中,增量抽取數(shù)據(jù)變化的部分
目的是讓數(shù)據(jù)均勻地分布在region中,3中方法:
?