Hadoop本質(zhì)上是:分布式文件系統(tǒng)(HDFS) + 分布式計算框架(Mapreduce) + 調(diào)度系統(tǒng)Yarn搭建起來的分布式大數(shù)據(jù)處理框架所森。
Hive:是一個基于Hadoop的數(shù)據(jù)倉庫夯接,適用于一些高延遲性的應(yīng)用(離線開發(fā))焕济,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表晴弃,并提供簡單的sql查詢功能。Hive可以認為是MapReduce的一個包裝上鞠,把好寫的HQL轉(zhuǎn)換為的MapReduce程序芯丧,本身不存儲和計算數(shù)據(jù),它完全依賴于HDFS和MapReduce缨恒,Hive中的表是純邏輯表。hive需要用到hdfs存儲文件骗露,需要用到MapReduce計算框架。
HBase:是一個Hadoop的數(shù)據(jù)庫萧锉,一個分布式、可擴展叶洞、大數(shù)據(jù)的存儲。hbase是物理表衩辟,不是邏輯表,提供一個超大的內(nèi)存hash表惭婿,搜索引擎通過它來存儲索引叶雹,方便查詢操作。HBase可以認為是HDFS的一個包裝折晦。他的本質(zhì)是數(shù)據(jù)存儲,是個NoSql數(shù)據(jù)庫满着;HBase部署于HDFS之上贯莺,并且克服了hdfs在隨機讀寫方面的缺點宁改,提高查詢效率。
對HBASE數(shù)據(jù)結(jié)構(gòu)的簡單說明:
假設(shè)HBASE表內(nèi)容如上还蹲,一般將personal data 和 professional data稱為column family,而name潭兽、city、designation和salary則稱為各個column family下面的qualifier山卦。每一個column family都可以認為是一個字典結(jié)構(gòu)诵次,其里面的qualifier則為key,如下:
{
"row1": {
"personal_data": {
"name": "raju",
"city": "hyderabad"
},
"professional_data": {
"designation": "manager",
"salary": 5000
}
},
"row2": {...}
}
其中藻懒,對于每一行,每個qualifier其實并不是必須存在的嬉荆,可以缺失。除了上面的column family汪茧,qualifier之外,還有timestamp信息舱污,即每個字段數(shù)據(jù)保留多久(TTL)。
參考:
https://www.zhihu.com/question/403840156/answer/1308998199
https://www.yiibai.com/hbase/hbase_create_data.html#article-start