99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代Hbase是什么?與Hive有哪些區(qū)別?
Hbase是什么?與Hive有哪些區(qū)別?
2020-07-14
收藏

HbaseE是一個具有高可靠性、高性能特點、面向列、可伸縮的分布式存儲系統(tǒng)。利用Hbase技術(shù)能夠在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。Hbase的目標(biāo)為:存儲并處理大型的數(shù)據(jù)。更進一步說就是僅需通過普通的硬件配置,處理由成千上萬的行和列所組成的大型數(shù)據(jù)。

一、Hbase基本概念

RowKey:是Byte array,是表中每條記錄的“主鍵”,方便迅速查找,Rowkey的設(shè)計非常重要。

Column Family:列族,擁有一個名稱(string),包含一個或者多個相關(guān)列

Column:屬于某一個columnfamily,familyName:columnName,每條記錄能夠動態(tài)添加

Version Number:類型為Long,默認(rèn)值是系統(tǒng)時間戳,可由用戶自定義

Value(Cell):Byte array

二、HbaseHive異同點

相同點

HBase 和 Hive 都是架構(gòu)在 Hadoop 之上,用 HDFS 做底層的數(shù)據(jù)存儲,用 MapReduce 做數(shù)據(jù)計算

不同點

1、Hive 是建立在 Hadoop 之上為了降低 MapReduce 編程復(fù)雜度的 ETL 工具。

HBase 是為了彌補 Hadoop 對實時操作的缺陷

2、Hive 表是純邏輯表,因為 Hive 的本身并不能做數(shù)據(jù)存儲和計算,而是完全依賴 Hadoop

HBase 是物理表,提供了一張超大的內(nèi)存 Hash 表來存儲索引,方便查詢

3、Hive數(shù)據(jù)倉庫工具,需要全表掃描,就用 Hive,因為 Hive 是文件存儲

HBase 是數(shù)據(jù)庫,需要索引訪問,則用 HBase,因為 HBase 是面向列的 NoSQL 數(shù)據(jù)庫

4、Hive 表中存入數(shù)據(jù)(文件)時不做校驗,屬于讀模式存儲系統(tǒng)

HBase 表插入數(shù)據(jù)時,會和 RDBMS 一樣做 Schema 校驗,所以屬于寫模式存儲系統(tǒng)

5、Hive 不支持單行記錄操作,數(shù)據(jù)處理依靠 MapReduce,操作延時高

HBase 支持單行記錄的 CRUD,并且是實時處理,效率比 Hive 高得多

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }