hadoop和hive的關(guān)系 怎樣將hive的數(shù)據(jù)同步到impala?
怎樣將hive的數(shù)據(jù)同步到impala?HBase是一個(gè)基于列的NoSQL數(shù)據(jù)庫,可以靈活地存儲(chǔ)數(shù)據(jù)。它本身就是一張大桌子。在一些應(yīng)用中,通過設(shè)計(jì)rowkey,可以實(shí)現(xiàn)海量數(shù)據(jù)的快速存儲(chǔ)和訪問。但是對(duì)
怎樣將hive的數(shù)據(jù)同步到impala?
HBase是一個(gè)基于列的NoSQL數(shù)據(jù)庫,可以靈活地存儲(chǔ)數(shù)據(jù)。它本身就是一張大桌子。在一些應(yīng)用中,通過設(shè)計(jì)rowkey,可以實(shí)現(xiàn)海量數(shù)據(jù)的快速存儲(chǔ)和訪問。
但是對(duì)于復(fù)雜的查詢統(tǒng)計(jì)需求,如果直接基于HBase API實(shí)現(xiàn),性能很差,或者可以通過實(shí)現(xiàn)MapReduce程序來分析,也繼承了MapReduce的延遲。
impala為什么比hive快?
Impala聲稱數(shù)據(jù)查詢的效率比hive快幾倍甚至幾十倍。為什么黑斑羚這么快的原因如下:
真正的MPP查詢引擎。
使用C開發(fā)而不是Java來減少運(yùn)行負(fù)載。
運(yùn)行時(shí)代碼生成(llvm IR)以提高效率。
新的執(zhí)行引擎(不是MapReduce)。
執(zhí)行SQL語句時(shí),impala不會(huì)將中間數(shù)據(jù)寫入磁盤,而是在內(nèi)存中完成所有處理。
使用impala時(shí),將立即執(zhí)行查詢?nèi)蝿?wù)而不是生產(chǎn)MapReduce任務(wù),這將節(jié)省大量初始化時(shí)間。
Impala查詢計(jì)劃解析器使用更智能的算法在多個(gè)節(jié)點(diǎn)上以分布式方式執(zhí)行每個(gè)查詢步驟,同時(shí)避免了排序和洗牌這兩個(gè)非常耗時(shí)的階段,這兩個(gè)階段通常是不必要的。
Impala在HDFS上有每個(gè)數(shù)據(jù)塊的信息。在處理查詢時(shí),impala可以在每個(gè)數(shù)據(jù)節(jié)點(diǎn)上更均勻地分布查詢。
另一個(gè)關(guān)鍵原因是impala為每個(gè)查詢生成程序集級(jí)代碼。當(dāng)impala在本地內(nèi)存中運(yùn)行時(shí),匯編代碼的執(zhí)行效率比任何其他代碼框架都要快,因?yàn)榇a框架會(huì)增加額外的延遲。
GreenPlum與hadoop什么關(guān)系?
Greenplum采用PostgreSQL框架,這是PostgreSQL系統(tǒng)的一個(gè)重要應(yīng)用。從這個(gè)角度來看,我們可以知道Greenplum是一個(gè)關(guān)系數(shù)據(jù)庫。
Hadoop框架是一個(gè)分布式平臺(tái)設(shè)計(jì)概念。它本身不是一個(gè)數(shù)據(jù)庫。Impala可以看作是一個(gè)非關(guān)系數(shù)據(jù)庫,hive相當(dāng)于SQL。
分布式,是一個(gè)多方面的,最重要的是存儲(chǔ)。Greenplum的分發(fā)主要體現(xiàn)在多機(jī)文件的存儲(chǔ)和授權(quán)上。Hadoop的文件管理也是分布式的,因?yàn)橹挥蟹植际讲渴鸩拍茏畲笙薅鹊靥岣甙l(fā)回Hadoop函數(shù)的效率。
因此,可以認(rèn)為Greenplum與Hadoop沒有直接關(guān)系。