Hadoop生態上幾個技術的關系與區別:hive、pig、hbase 關系與區別

初接觸Hadoop技術的朋友肯定會對它體系下寄生的個個開源項目糊涂了,我敢保證Hive,Pig,HBase這些開源技術會把你搞的有些糊涂,不要緊糊涂的不止你一個,如某個菜鳥的帖子的疑問,when to use Hbase and when to use Hive?....請教了^_^沒關系這里我幫大家理清每個技術的原理和思路。

Pig

一種操作hadoop的輕量級腳本語言,最初又雅虎公司推出,不過現在正在走下坡路了。當初雅虎自己慢慢退出pig的維護之后將它開源貢獻到開源社區由所有愛好者來維護。不過現在還是有些公司在用,不過我認為與其使用pig不如使用hive。:)

Pig是一種數據流語言,用來快速輕松的處理巨大的數據。

Pig包含兩個部分:Pig Interface,Pig Latin。

Pig可以非常方便的處理HDFS和HBase的數據,和Hive一樣,Pig可以非常高效的處理其需要做的,通過直接操作Pig查詢可以節省大量的勞動和時間。當你想在你的數據上做一些轉換,并且不想編寫MapReduce jobs就可以用Pig.

Hive

不想用程序語言開發MapReduce的朋友比如DB們,熟悉SQL的朋友可以使用Hive開離線的進行數據處理與分析工作。

注意Hive現在適合在離線下進行數據的操作,就是說不適合在掛在真實的生產環境中進行實時的在線查詢或操作,因為一個字“慢”。相反

起源于FaceBook,Hive在Hadoop中扮演數據倉庫的角色。建立在Hadoop集群的最頂層,對存儲在Hadoop群上的數據提供類SQL的接口進行操作。你可以用 HiveQL進行select,join,等等操作。

如果你有數據倉庫的需求并且你擅長寫SQL并且不想寫MapReduce jobs就可以用Hive代替。

HBase

HBase作為面向列的數據庫運行在HDFS之上,HDFS缺乏隨即讀寫操作,HBase正是為此而出現。HBase以Google BigTable為藍本,以鍵值對的形式存儲。項目的目標就是快速在主機內數十億行數據中定位所需的數據并訪問它。

HBase是一個數據庫,一個NoSql的數據庫,像其他數據庫一樣提供隨即讀寫功能,Hadoop不能滿足實時需要,HBase正可以滿足。如果你需要實時訪問一些數據,就把它存入HBase。

你可以用Hadoop作為靜態數據倉庫,HBase作為數據存儲,放那些進行一些操作會改變的數據。

Pig VS Hive

Hive更適合于數據倉庫的任務,Hive主要用于靜態的結構以及需要經常分析的工作。Hive與SQL相似促使 其成為Hadoop與其他BI工具結合的理想交集。

Pig賦予開發人員在大數據集領域更多的靈活性,并允許開發簡潔的腳本用于轉換數據流以便嵌入到較大的 應用程序。

Pig相比Hive相對輕量,它主要的優勢是相比于直接使用Hadoop Java APIs可大幅削減代碼量。正因為如此,Pig仍然是吸引大量的軟件開發人員。

Hive和Pig都可以與HBase組合使用,Hive和Pig還為HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單

Hive VS HBase

Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統,HBase是為了支持彌補Hadoop對實時操作的缺陷的項目 。

想象你在操作RMDB數據庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop 。

Hive query就是MapReduce jobs可以從5分鐘到數小時不止,HBase是非常高效的,肯定比Hive高效的多。

?

轉自:http://www.linuxidc.com/Linux/2014-03/98978.htm

轉載于:https://www.cnblogs.com/catWang/p/4367344.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273330.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可變形參

public class TestVarargs {/*** param args* YiXian* 2015-3-11*/public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("the program starting>>>>>>>>>>>");test(2,"java權威指…

解決android中Layout文件下的xml文件配好后,R類中不能自動生成相應代碼

不能更新的原因: 1.在xml文件中代碼錯誤或者格式錯誤 2.eclipse 編譯器是老版本 3.布局文件的文件名有大寫字母 4.含有相同文件名、格式的xml文件解決方法: 1.找到出錯的xml文件中的錯誤代碼格式改正,并執行project —clean 操作 2.eclipse 選擇Project--Bu…

邏輯運算與位移運算

異或運算True ⊕ False TrueFalse ⊕ True TrueFalse ⊕ False FalseTrue ⊕ True False同或運算True ⊙ False FalseFalse ⊙ True FalseFalse ⊙ False TureTrue ⊙ True Ture或運算True || False TrueFalse || True TrueFalse || False FalseTrue || True Tru…

log4net 日志框架的配置

log4net 日志框架的簡單配置 添加對log4net程序集的引用 選擇程序集文件添加引用即可,需要注意的是需要添加相應程序版本的程序集,如果你的應用是基于.netFramework2.0,則應選擇net 2.0版本的程序集 修改配置文件,配置log4net相…

原碼 反碼 補碼

一.機器數和真值 機器數: 由于一些硬件的限制計算機只能識別二進制數據,因此在計算機中只會存儲二進制數據;機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數為0, 負數為1. 比如,十進制中的數 7&#xff0…

CSS 設計指南(第3版) 初讀筆記

第1章 HTML標記與文檔結構 關于<title>標簽&#xff1a;搜索引擎會給<title>標簽中的文字內容賦予很高的權重。而且這些文字也會作為網頁標題出現在搜索結果列表中。 無論你想了解哪個HTML元素&#xff0c;第一個要問的問題都應該是&#xff1a;它是塊元素&#xf…

win7安裝python開發環境,運行python

在win7上安裝python的開發環境是非常簡單的事情 Step1&#xff1a;下載python安裝文件 url&#xff1a;https://www.python.org/download 去這里找到你想要下載的文件 Step2&#xff1a;安裝 windows上當然是傻瓜式安裝了&#xff0c;你還在糾結什么呢 Step3&#xff1a;…

HC-05藍牙模塊基本使用

1.進入AT模式 EN輸入高電平按住按鍵不放,然后上電,進入AT模式,不過AT指令只能輸入一次,下次再輸入AT需要重新進入 2.串口波特率設為38400,進行AT模式下的指令操作 3.基本AT指令 ATORGL   恢復出廠設置 ATNAME newName  修改藍牙名字 ATROLE0/1/2  0:從模式 1:主模式 2:回…

Objective-C中的@property和@synthesize用法

代表“Objective-C”的標志&#xff0c;證明您正在使用Objective-C語言 Objective-C語言關鍵詞&#xff0c;property與synthesize配對使用。 功能&#xff1a;讓編譯好器自動編寫一個與數據成員同名的方法聲明來省去讀寫方法的聲明。 如&#xff1a; 1、在頭文件中&#xff1a;…

c++11編碼規范 NULL還是nullptr

0和nullptr/NULL 至于指針&#xff08;地址值&#xff09;&#xff0c;根據實際選擇用0、NULL還是nullptr。對使用了C11特性的項目&#xff0c;選用nullptr&#xff1b;對于C03項目&#xff0c;推薦NULL&#xff0c;因為它像是一個指針轉載于:https://www.cnblogs.com/JD85/p/4…

Android用戶界面程序設計示例

[例1]按鈕和Toast彈出對話框 1 [例2] TextView文本框 &#xff08;1&#xff09; 3 [例3]TextView文本框 &#xff08;2&#xff09; 4 [例4]編輯框EditText 4 [例5]單選RadioButton 6 [例6]Toast的用法簡介 8 [例7]多選checkbox 12 [例8]菜單Menu 14 …

innerText,outerText,innerHTML,outerHTML區別

document.body.innerHTML&#xff1b; innerText&#xff0c;outerText&#xff0c;innerHTML&#xff0c;outerHTML資料outerHTML&#xff1a;標簽對象外部的HTML文本(包括該標簽) innerHTML&#xff1a;標簽對象內部的HTML文本(不包括該標簽) innerText: 標簽對象內部的…

Ubuntu安裝adobe字體

Ubuntu的字體目錄存放在/usr/share/fonts目錄下&#xff0c;可以看到該目錄下有4個目錄&#xff0c; 12$ ls /usr/share/fonts/cmap truetype type1 X11我們在truetype目錄下新建一個adobe的目錄來存放需要安裝的Adobe中文字體&#xff0c;并把已經下載好的字體復制到該目錄…

Spring Thread Pool 線程池的應用

Spring and Java Thread example 掃掃關注“茶爸爸”微信公眾號堅持最初的執著&#xff0c;從不曾有半點懈怠&#xff0c;為優秀而努力&#xff0c;為證明自己而活。Download it – Spring-Thread-Example.zip (22 KB)轉自&#xff1a;http://www.mkyong.com/spring/spring-and…

數據庫操作類型簡介

SQL語言大體上可以分為四大類&#xff1a; 數據查詢語言&#xff08;DQL&#xff09;&#xff0c;數據操縱語言&#xff08;DML&#xff09;&#xff0c;數據定義語言&#xff08;DDL&#xff09;&#xff0c;數據控制語言&#xff08;DCL&#xff09;。 1. 數據查詢語言DQL數…

Emule使用Upnp,解決Lowid和port not reachable的問題

路由器上鉤選開啟Upnp Emule->選擇->擴展選項->Upnp&#xff0c; 服務器&#xff1a;【從URL更新】http://upd.emule-security.org/server.met轉載于:https://www.cnblogs.com/zhyong/p/4422139.html

Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 題目描述很簡單&#xff0c;就是尋找一個字符串的最大回文。 1.暴力搜索 窮舉所有的可能…

Integer 中的緩存類IntegerCache

2014年去某公司筆試的時候遇到這么一道題&#xff1a; public class Test {public static void main(String[] args) {Integer int1 Integer.valueOf("100");Integer int2 Integer.valueOf("100");System.out.println(int1 int2);} } 問打印的結果的多少…

Android動畫及滑動事件沖突解決(轉載)

原文鏈接&#xff1a;http://blog.csdn.net/singwhatiwanna/article/details/38168103 Android開發中動畫和事件處理是程序員邁向高手的必經之路&#xff0c;也是重點和難點。 此篇轉載文章思路清晰&#xff0c;結構合理&#xff0c;用圖文混合的方式完美的講解了動畫和事件沖突…

在main函數前后執行的函數之 C語言

在gcc中&#xff0c;可以使用attribute關鍵字&#xff0c;聲明constructor和destructor&#xff0c;來指定了函數在main之前或之后運行,代碼如下&#xff1a; 1 #include <stdio.h>2 3 __attribute((constructor)) void before_main()4 {5 printf("%s/n",_…