Hbase學(xué)習(xí)筆記(七) Hbase與Hive的整合

Hive和Hbase的區(qū)別

Hive:

1. 數(shù)據(jù)倉(cāng)庫(kù)

? Hive的本質(zhì)其實(shí)就相當(dāng)于將HDFS中已經(jīng)存儲(chǔ)的文件在Mysql中做了一個(gè)雙射關(guān)系,以方便使用HQL去管理查詢

2.用于數(shù)據(jù)分析、清洗

? Hive適用于離線的數(shù)據(jù)分析和清洗再榄,延遲較高

3. 基于HDFS,MapReduce

? Hive存儲(chǔ)的數(shù)據(jù)依舊在DataNode上咬摇,編寫的HQL語(yǔ)句終將是轉(zhuǎn)換為MapReduce代碼執(zhí)行陷谱。(不要鉆不需要執(zhí)行MapReduce代碼的情況的牛角尖)

Hbase:

1. 數(shù)據(jù)庫(kù)

? 是一種面向列存儲(chǔ)的非關(guān)系型數(shù)據(jù)庫(kù)迷扇。

2.用于存儲(chǔ)結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)

? 適用于單表非關(guān)系型數(shù)據(jù)的存儲(chǔ)惧浴,不適合做關(guān)聯(lián)查詢存和,類似JOIN等操作。

3. 基于HDFS

? 數(shù)據(jù)持久化存儲(chǔ)的體現(xiàn)形式是Hfile衷旅,存放于DataNode中捐腿,被ResionServer以region的形式進(jìn)行管理。

4.延遲較低柿顶,接入在線業(yè)務(wù)使用

? 面對(duì)大量的企業(yè)數(shù)據(jù)叙量,HBase可以直線單表大量數(shù)據(jù)的存儲(chǔ),同時(shí)提供了高效的數(shù)據(jù)訪問(wèn)速度九串。

總結(jié):

? Hive和Hbase是兩種基于Hadoop的不同技術(shù)绞佩,Hive是一種類SQL的引擎,并且運(yùn)行MapReduce任務(wù)猪钮,Hbase是一種在Hadoop之上的NoSQL 的Key/vale數(shù)據(jù)庫(kù)品山。這兩種工具是可以同時(shí)使用的。就像用Google來(lái)搜索烤低,用FaceBook進(jìn)行社交一樣肘交,Hive可以用來(lái)進(jìn)行統(tǒng)計(jì)查詢,HBase可以用來(lái)進(jìn)行實(shí)時(shí)查詢扑馁,數(shù)據(jù)也可以從Hive寫到HBase涯呻,或者從HBase寫回Hive。

?

整合:

需求一:將hive分析結(jié)果的數(shù)據(jù)腻要,保存到HBase當(dāng)中去

? HBase的五個(gè)jar包拷貝到hive的lib目錄下:

? hbase-client-1.2.0-cdh5.14.0.jar

? hbase-hadoop2-compat-1.2.0-cdh5.14.0.jar

? hbase-hadoop-compat-1.2.0-cdh5.14.0.jar

? hbase-it-1.2.0-cdh5.14.0.jar

? hbase-server-1.2.0-cdh5.14.0.jar

?

可以使用軟連接

ln -s /export/servers/hbase-1.2.0-cdh5.14.0/lib/hbase-client-1.2.0-cdh5.14.0.jar              /export/servers/hive-1.1.0-cdh5.14.0/lib/hbase-client-1.2.0-cdh5.14.0.jar             
ln -s /export/servers/hbase-1.2.0-cdh5.14.0/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.0.jar      /export/servers/hive-1.1.0-cdh5.14.0/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.0.jar             
ln -s /export/servers/hbase-1.2.0-cdh5.14.0/lib/hbase-hadoop-compat-1.2.0-cdh5.14.0.jar       /export/servers/hive-1.1.0-cdh5.14.0/lib/hbase-hadoop-compat-1.2.0-cdh5.14.0.jar            
ln -s /export/servers/hbase-1.2.0-cdh5.14.0/lib/hbase-it-1.2.0-cdh5.14.0.jar     /export/servers/hive-1.1.0-cdh5.14.0/lib/hbase-it-1.2.0-cdh5.14.0.jar               
ln -s /export/servers/hbase-1.2.0-cdh5.14.0/lib/hbase-server-1.2.0-cdh5.14.0.jar          /export/servers/hive-1.1.0-cdh5.14.0/lib/hbase-server-1.2.0-cdh5.14.0.jar  

修改hive的配置文件

cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml
        <property>
                <name>hive.zookeeper.quorum</name>
                <value>hadoop01,hadoop02,hadoop03</value>
        </property>

         <property>
                <name>hbase.zookeeper.quorum</name>
                <value>hadoop01,hadoop02,hadoop03</value>
        </property>

修改hive-env.sh下的配置

export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HBASE_HOME=/export/servers/hbase-1.2.0-cdh5.14.0
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf

在hive中建表加載數(shù)據(jù)

create database course;
use course;
create external table if not exists course.score(id int,cname string,score int) row format delimited fields terminated by '\t' stored as textfile ;

準(zhǔn)備數(shù)據(jù)

1       zhangsan        80
2       lisi    60
3       wangwu  30
4       zhaoliu 70

進(jìn)行加載

hive (course)> load data local inpath '/export/hive-hbase.txt' into table score;
hive (course)> select * from score;

創(chuàng)建一個(gè)hive管理表與Hbase進(jìn)行映射

create table course.hbase_score(id int,cname string,score int)  
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
with serdeproperties("hbase.columns.mapping" = "cf:name,cf:score") 
tblproperties("hbase.table.name" = "hbase_score");

通過(guò)insert overwrite select 進(jìn)行插入

insert overwrite table course.hbase_score select id,cname,score from course.score;

在hbase中查看表

hbase(main):024:0> scan 'hbase_score'

需求二:創(chuàng)建hive外部表复罐,映射Hbase當(dāng)中已有的表模型,直接通過(guò)

進(jìn)入Hbase中創(chuàng)建表并手動(dòng)加載一些數(shù)據(jù)

進(jìn)入Hbase客戶端雄家,手動(dòng)創(chuàng)建一張表效诅,并插入數(shù)據(jù)

create 'hbase_hive_score',{ NAME =>'cf'}

put 'hbase_hive_score','1','cf:name','zhangsan'
put 'hbase_hive_score','1','cf:score', '95'

put 'hbase_hive_score','2','cf:name','lisi'
put 'hbase_hive_score','2','cf:score', '96'

put 'hbase_hive_score','3','cf:name','wangwu'
put 'hbase_hive_score','3','cf:score', '97'

建立hive外部表,映射Hbase當(dāng)中的字段

CREATE external TABLE course.hbase2hive(id int, name string, score int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:name,cf:score") TBLPROPERTIES("hbase.table.name" ="hbase_hive_score");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市乱投,隨后出現(xiàn)的幾起案子咽笼,更是在濱河造成了極大的恐慌,老刑警劉巖戚炫,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剑刑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡双肤,警方通過(guò)查閱死者的電腦和手機(jī)叛甫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杨伙,“玉大人,你說(shuō)我怎么就攤上這事萌腿∠尴唬” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵毁菱,是天一觀的道長(zhǎng)米死。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贮庞,這世上最難降的妖魔是什么峦筒? 我笑而不...
    開(kāi)封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮窗慎,結(jié)果婚禮上物喷,老公的妹妹穿的比我還像新娘。我一直安慰自己遮斥,他們只是感情好峦失,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著术吗,像睡著了一般尉辑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上较屿,一...
    開(kāi)封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天隧魄,我揣著相機(jī)與錄音,去河邊找鬼隘蝎。 笑死购啄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘱么。 我是一名探鬼主播闸溃,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了辉川?” 一聲冷哼從身側(cè)響起表蝙,我...
    開(kāi)封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乓旗,沒(méi)想到半個(gè)月后府蛇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屿愚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年汇跨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妆距。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡穷遂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娱据,到底是詐尸還是另有隱情蚪黑,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布中剩,位于F島的核電站忌穿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏结啼。R本人自食惡果不足惜掠剑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郊愧。 院中可真熱鬧朴译,春花似錦、人聲如沸属铁。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)红选。三九已至澜公,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喇肋,已是汗流浹背坟乾。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝶防,地道東北人甚侣。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像间学,于是被迫代替她去往敵國(guó)和親殷费。 傳聞我的和親對(duì)象是個(gè)殘疾皇子印荔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354