十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
Hive與HBase的整合過程中的基本命令操作是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
十載的邗江網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網營銷推廣的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整邗江建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯公司從事“邗江網站設計”,“邗江網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
一:Hive與Hbase的整合過程。
1.創(chuàng)建HBase識別的表,然后查看表是否創(chuàng)建成功。
hive:
hive> CREATE TABLE hivehbase(key int, value string)
> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,columnfamily1:val")
> TBLPROPERTIES ("hbase.table.name" = "hbasehive");
hive> CREATE TABLE hivehbase(key int, value string) > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,columnfamily1:val") > TBLPROPERTIES ("hbase.table.name" = "hbasehive"); OK Time taken: 9.881 seconds hive> show tables; OK hivehbase testhive Time taken: 0.055 seconds, Fetched: 2 row(s)
hbase:
hbase(main):002:0> list TABLE hbasehive
注意: hbase.table.name 定義在hbase的table名稱
hbase.columns.mapping 定義在hbase的列族
2.使用sql往hivehbase中導入數據,將testhive表中的以下數據導入到hivehbase中,如下:
hive> select * from testhive; OK 1 Berg 1 Berg 2 Cccc 3 Xxxx 4 Jjjj
開始導入數據,即: 注意overwrite,相同的數據記錄會覆蓋點,復制。
hive> insert overwrite table hivehbase select * from testhive;
導入數據成功后,在查詢該表中數據,即:
hive> select * from hivehbase; OK 1 Berg 2 Cccc 3 Xxxx 4 Jjjj Time taken: 0.458 seconds, Fetched: 4 row(s)
然后進入hbase,查看hbase中hbasehive表中是否存在數據:
hbase(main):004:0> scan 'hbasehive' ROW COLUMN+CELL 1 column=columnfamily1:val, timestamp=1464514508295, value=Berg 2 column=columnfamily1:val, timestamp=1464514508295, value=Cccc 3 column=columnfamily1:val, timestamp=1464514508295, value=Xxxx 4 column=columnfamily1:val, timestamp=1464514508295, value=Jjjj 4 row(s) in 0.0470 seconds
可以看到,在hive中往hivehbase中添加的數據,已經存在在hbase中的hbasehive表中了,
那反過來,在hbase中往hbasehive中添加的數據,在hive中的hivehbase能否查看到了?
往hbase中的hbasehive中添加一條數據記錄,如下:
hbase(main):007:0> put 'hbasehive', '5','columnfamily1:val','Yyyy'
然后在在hive中查看hivehbase中的表數據,可以看到:
hive> select * from hivehbase;
OK
1 Berg
2 Cccc
3 Xxxx
4 Jjjj
5 Yyyy ?。骸∫呀浾f明,在hbase中操作數據,也能夠在hive中查詢到。
3.hive訪問已經存在的hbase,使用CREATE EXTERNAL TABLE,
在hbase中準備一張 student表,并為其表中插入三條數據記錄,即:
hbase(main):026:0> create 'student','info'
hbase(main):028:0> put 'student','1','info:name','Berg'
hbase(main):029:0> put 'student','2','info:name','Hbase'
hbase(main):030:0> put 'student','3','info:name','hive'
使用CREATE EXTERNAL TABLE:
CREATE EXTERNAL TABLE hbase_person(key string, value string,value string,value int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name,info:sex,info:age")
TBLPROPERTIES("hbase.table.name" = "person");
如下:
hive>CREATE EXTERNAL TABLE hivehbase_student(key int, value string)
> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name")
> TBLPROPERTIES("hbase.table.name" = "student");
OK
查看表是否生成:
hive> show tables;
OK
hivehbase_student : 表示已經生成存在。
然后在查看hive中 這張表的數據:
hive> select * from hivehbase_student;
OK
1 Berg
2 Hbase
3 hive
結果表名,該數據跟hbase中student表中的數據一致。
****************************************************************************************************
完成上述操作后,在接著往下看:
二:多列和多列族(Multiple Columns and Families)
1.在hive中操作數據庫,如下:
先準備一張元數據表,multiplehive,往該表中存放多條數據記錄,操作如下:
hive> create table multiplehive > (id int, name string,sex string, age int) > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE; OK Time taken: 0.179 seconds hive> load data local inpath '/home/hadoop/mytestdata/multiplehive.txt' into table multiplehive; Loading data to table default.multiplehive OK Time taken: 0.736 seconds hive> select * from multiplehive; OK 1 Berg f 21 2 BigData m 20 Time taken: 0.186 seconds, Fetched: 2 row(s)
CREATE TABLE hivehbase_person(key int, name string, sex string, age int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:sex,info:age")
TBLPROPERTIES("hbase.table.name" = "hbasehive_person");
hive> CREATE TABLE hivehbase_person(key int, name string, sex string, age int) > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:sex,info:age") > TBLPROPERTIES("hbase.table.name" = "hbasehive_person"); OK
創(chuàng)建關聯表成功后,在hive中往表 hivehbase _person表中插入準備好的數據,即:
hive> insert overwrite table hivehbase_person select id,name,sex,age from multiplehive;
然后在查看這張表的數據,如下:
hive> select * from hivehbase_person; OK 1 Berg f 21 2 BigData m 20 Time taken: 0.679 seconds, Fetched: 2 row(s)
再去Hbase中,查看這張表的數據:hbase(main):039:0> scan 'hbasehive_person'
hbase(main):039:0> scan 'hbasehive_person' ROW COLUMN+CELL 1 column=info:age, timestamp=1464522188307, value=21 1 column=info:name, timestamp=1464522188307, value=Berg 1 column=info:sex, timestamp=1464522188307, value=f 2 column=info:age, timestamp=1464522188307, value=20 2 column=info:name, timestamp=1464522188307, value=BigData 2 column=info:sex, timestamp=1464522188307, value=m 2 row(s) in 8.1630 seconds
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯行業(yè)資訊頻道,感謝您對創(chuàng)新互聯的支持。