亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        hbase與hive整合研究

        2022-02-28 05:40:26田燕軍
        山西電子技術 2022年1期
        關鍵詞:PC機結(jié)構化語句

        田燕軍,王 玥

        (山西經(jīng)濟管理干部學院,山西 太原 030024)

        1 為什么要整合hbase和hive

        hive是基于hadoop的數(shù)倉工具,它用于將結(jié)構化的數(shù)據(jù)文件"映射"為一張數(shù)據(jù)庫表,并提供一個被稱為Hive查詢語言(簡稱HiveQL或HQL)的SQL語言[1],來查詢數(shù)據(jù)。Hive中的表是純邏輯表,只有表的定義, 它本身不存儲數(shù)據(jù),數(shù)據(jù)放在hdfs中,也不存儲元數(shù)據(jù),元數(shù)據(jù)都放在MySql中,hive本身也不執(zhí)行具體的查詢工作,會由yarn執(zhí)行??梢詫ive理解為一個客戶端工具,其接收SQL語句,將其轉(zhuǎn)換為相應的MapReduce[2]程序,然后在yarn上面運行。Hive是基于hadoop的,就具有與hadoop一樣的特點,能夠處理高吞吐量的數(shù)據(jù),數(shù)據(jù)越多,hive的優(yōu)勢就越明顯, 但延遲也高。故一般用于ETL清洗數(shù)據(jù)、網(wǎng)絡日志分析、構建數(shù)據(jù)倉庫、數(shù)據(jù)挖掘。hive中的表模型如表1。

        表1 hive表模型

        hbase: Hadoop Database 的簡稱,Hadoop 的數(shù)據(jù)庫,屬于NoSQL[2], 基于hdfs而實現(xiàn)的列式數(shù)據(jù)庫,數(shù)據(jù)最終存儲在hdfs上面,主要用來存儲結(jié)構化和半結(jié)構化的數(shù)據(jù), 可達到PB級; 在查詢hbase中數(shù)據(jù)的時候, 只能通過rowkey(行鍵)或者rang(范圍)的查詢方案,即簡單的基于key的快速查詢,hbase不支持SQL語句操作,故不能進行復雜的條件查詢,hbase僅支持單行事務,不支持多行事務。hase中的表模型如表2。

        表2 hbase表模型

        由上述可以看出,hbase不支持SQL語句,在實際的業(yè)務中查詢數(shù)據(jù)很不方便,但hive就不一樣了,hive提供類SQL語句,查詢數(shù)據(jù)很方便; 我們可以整合hive與hbase,通過hive這個客戶端對hbase中的數(shù)據(jù)用SQL進行查詢,讓hbase也支持GROUP BY、CLUSTER BY、ORDER BY等SQL語法,后續(xù)相應的數(shù)據(jù)分析就會很方便。另一方面,hive中因數(shù)據(jù)實際上都存儲在hdfs中,數(shù)據(jù)存儲不是很方便,但hbase中卻可以存儲PB級數(shù)據(jù),通過整合hive與hbase,我們可以把hive中經(jīng)過分析出的大量數(shù)據(jù)映射存儲到hbase中。示意圖如圖1。

        圖1 hive與hbase整合示意圖

        2 實驗環(huán)境

        使用三臺PC機搭建分布式計算平臺,3臺PC機分別都安裝CentOS6.8 64位操作系統(tǒng),并按下邊2.1進行大數(shù)據(jù)集群環(huán)境準備,再按2.2進行大數(shù)據(jù)平臺軟件安裝。

        2.1 大數(shù)據(jù)集群環(huán)境準備

        修改/etc/sysconfig/network文件,分別設置三臺PC機的主機名為:node01、node02、node03;

        修改/etc/hosts文件,分別綁定三臺PC機的主機名與IP地址;使用service iptables stop臨時關閉防火墻,使用chkconfig iptables off永久關閉防火墻;使用setenforce 0臨時關閉selinux,修改/etc/selinux/config文件永久關閉selinux;三臺PC機分別使用yum源安裝ntp(網(wǎng)絡時間服務),并進行配置,使三臺PC機時間同步;使用ssh-keygen-t rsa,ssh-copy-id node01對三臺PC機互相做免密登錄。

        2.2 安裝大數(shù)據(jù)平臺軟件

        在三臺PC機分別新建/export/softwares目錄用于存放軟件安裝包,新建/export/servers目錄用于存放安裝程序; 接下來三臺PC機分別安裝jdk(版本為jdk-8u144-linux-x64.tar.gz),安裝mysql(版本為mysql-connector-java-5.1.38.jar),用于存放hive的元數(shù)據(jù), 用于提供java運行環(huán)境,安裝hadoop(版本為hadoop-2.6.0.tar.gz),用于分布式存儲與分布式計算,安裝zookeeper(版本為zookeeper-3.4.5.tar.gz),用于分布式協(xié)調(diào), 安裝hive(版本為hive-1.1.0.tar.gz),用于數(shù)據(jù)分析, 安裝Hbase(版本為hbase-1.2.0.tar.gz),用于分布式存儲。

        3 整合操作

        hbase與hive的整合主要是利用兩者的API接口互相通信來完成,核心就是把兩者的表綁定,及它們之間的列做映射表,相應語法如下:

        createtable hivetable(id string,col1 string,col2 string,col3 string,col4 string)stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = ":key,f1:col1,f1:col2,f2:col3,f2:col4") tblproperties("hbase.table.name"="hbasetable");

        注:hbase.table.name 屬性用于綁定hbase與hive二者的表,hivetable是hive中建立的表,對應hbase中建立的表hbasetable; hbase.columns.mapping屬性用于把hbase與hive二者的列進行映射,id是hivetable中的列,對應hbasetable中的行鍵; col1、col2是hivetable中的列,對應hbasetable中f1列族下的col1、col2列; col3、col4是hivetable中的列,對應hbasetable中f2列族下的col3、col4列; hbasetable表中還有其它大量的列,但沒有在此處與hivetable映射,在hive中查看hivetable時就不顯示未映射的列,只顯示已映射了的列。

        3.1 hbase整合hive

        初始數(shù)據(jù)在habse中,hbase的表中已存儲大量數(shù)據(jù),可在hive中創(chuàng)建一個外部表,用于與hbase當中的表綁定,再在hive中用SQL查詢分析,具體步驟如下:

        1) hive中創(chuàng)建外部表: create external table person_hbase2hive(id string, name string, age int)stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = ":key,f1:name,f1:age") tblproperties("hbase.table.name" ="person");

        2) hive中做分析查詢: select avg(age) from person_hbase2hive

        3.2 hive整合hbase

        初始數(shù)據(jù)是在hive中,在hbase中先創(chuàng)建一個用于存儲數(shù)據(jù)的表,再在hive中創(chuàng)建一個內(nèi)部管理表,用于映射剛創(chuàng)建的hbase表; 接下來給hive內(nèi)部管理表當中存數(shù)據(jù)時,都會存儲到hbase上面去,具體步驟如下:

        1) hbase中建表:create' hbase_student', {NAME=>' f1',VERSIONS=>3}

        2) hive中建內(nèi)部表: create table student_hive2hbase(id int,namestring,age int)stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = "f1:name,f1:age") tblproperties("hbase.table.name" = "hbase_student");

        3) hive內(nèi)部表中插入數(shù)據(jù): insert overwrite table student_hive2hbase select id,name,age from student

        4) hbase中查看表及數(shù)據(jù): scan' hbase_student'

        4 結(jié)束語

        在實際的工作中,hbase與hive的整合也大量使用,一般通過ETL工具將數(shù)據(jù)源抽取到HDFS進行存儲,再利用Hive清洗、分析數(shù)據(jù),如分析出的結(jié)果數(shù)據(jù)較多,可對hbase與hive進行整合,將分析處理后的結(jié)果存入Hbase中,對于簡單查詢,可直接從HBase中快速查出,如是多條件復雜查詢,可再次利用hive進行查詢。

        通過上邊的整合,結(jié)合了hive利于查詢、hbase利于存儲的優(yōu)點,使得hive可以讀取hbase中數(shù)據(jù),hbase可以存儲hive中數(shù)據(jù),讓Hadoop生態(tài)系統(tǒng)中最為常用的兩大框架互相結(jié)合,相得益彰,更加方便了我們大數(shù)據(jù)領域的分析研究。

        猜你喜歡
        PC機結(jié)構化語句
        促進知識結(jié)構化的主題式復習初探
        重點:語句銜接
        結(jié)構化面試方法在研究生復試中的應用
        計算機教育(2020年5期)2020-07-24 08:53:00
        基于PC機與單片機的多機通信技術及抗干擾方法
        基于三菱FXPLC的感應淬火機床與PC機的串行通信實現(xiàn)
        精彩語句
        VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
        電子制作(2017年23期)2017-02-02 07:16:47
        基于圖模型的通用半結(jié)構化數(shù)據(jù)檢索
        計算機工程(2015年8期)2015-07-03 12:20:35
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        基于軟信息的結(jié)構化轉(zhuǎn)換
        亚洲一区二区三区视频免费| 97精品人妻一区二区三区香蕉| 国语对白精品在线观看| 一本大道久久a久久综合精品| 青青草视频在线观看精品在线| 麻豆视频黄片在线免费观看 | 欧美又大粗又爽又黄大片视频 | 波多野结衣av一区二区全免费观看 | 国产一区二区毛片视频| 国产精品成人久久a级片| 国产剧情亚洲一区二区三区| 国产精品美女一区二区av| 国产护士一区二区三区| 蜜桃av人妻精品一区二区三区| 亚洲va视频一区二区三区| 日韩精品专区在线观看| 无码免费无线观看在线视| 超碰人人超碰人人| 无码孕妇孕交在线观看| 99热爱久久99热爱九九热爱| 成人无码α片在线观看不卡| 少妇高潮尖叫黑人激情在线| 色欲av亚洲一区无码少妇| 呻吟国产av久久一区二区| 91爱爱视频| 日日噜噜夜夜狠狠2021| 久久久久久人妻一区二区无码Av | 亚洲免费国产中文字幕久久久 | 亚洲综合综合在线| 国产av一区网址大全| 一区两区三区视频在线观看| 风韵犹存丰满熟妇大屁股啪啪| 内射白浆一区二区在线观看| 白丝爆浆18禁一区二区三区| 狠狠色婷婷久久一区二区三区| 99久久人人爽亚洲精品美女| 久久婷婷综合色丁香五月| 青青草针对华人超碰在线| 日韩乱码精品中文字幕不卡| 亚洲黄色一级在线观看| 国产免费拔擦拔擦8x高清在线人|