HBaseのとハイブケースを相互運用

HBaseのとハイブの相互作用

1、環境の準備

我々は運転しながらも、HBaseのハイブに影響を与える可能性が従っているので、それはHBaseのハイブジャーの動作を保持するために必要とされ、その後、次のコピーハイブジャーパッケージが依存(またはソフト有線の形で)。

$輸出HBASE_HOME =は/ opt /モジュール/ CDH / HBaseの-0.98.6-cdh5.3.6 / 
$輸出HIVE_HOME =は/ opt /モジュール/ CDH /ハイブ-0.13.1-cdh5.3.6 / 
$のln -s $ HBASE_HOME / libに/hbase-common-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseの共通-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME / libに/ HBaseのサーバ-0.98.6-CDH5 .3.6.jar $ HIVE_HOME / libに/ HBaseのサーバ-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME / libに/ HBaseのクライアント-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseの-client-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME / libに/ HBaseのプロトコル-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseのプロトコル-0.98.6-cdh5.3.6 .jar 
$のln -s $ HBASE_HOME / libに/ HBaseの-IT-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseの-それは-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME / libに/htrace-core-2.04.jar $ HIVE_HOME / libに/ HTRACE-コア- 2.04.jar
$ LN -s $ HBASE_HOME / libに/ HBaseの-hadoop2-compatの-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseの-hadoop2-compatの-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME /lib/hbase-hadoop-compat-0.98.6-cdh5.3.6.jar $ HIVE_HOME / libに/ HBaseの-Hadoopの-compatの-0.98.6-cdh5.3.6.jar 
$ LN -s $ HBASE_HOME / libに/高規模-lib-1.1.1.jar $ HIVE_HOME / libに/高規模-LIB-1.1.1.jar

一方でハイブは-site.xml次のように、飼育係のプロパティを変更します。

 

図2に示すように、ケース1:ハイブがHBaseの影響を与えることができながら、CVテーブルハイブ、HBaseのアソシエーションテーブル、データテーブルに挿入します

ステップ1 で、で作成ハイブのHBaseに関連付けられ、同時にテーブル

表hive_hbase_emp_table(CREATE 

EMPNO int型、

ENAME列、

仕事の文字列、

MGRはint、

HIREDATE列、

SALダブル、

COMMダブル、

DEPTNO int型)

'org.apache.hadoop.hive.hbase.HBaseStorageHandler'によって保存され

SERDEPROPERTIES WITH(「hbase.columnsを.mapping」= ":キー、情報:ENAME、情報:ジョブ情報:MGR、情報:HIREDATE、情報:SAL、情報:COMM、インフォ:DEPTNO")

TBLPROPERTIES( " "hbase.table.name"=" hbase_emp_table );

(ヒントスクリーミング:終了後、それぞれのHBaseハイブビューを入力し、対応テーブルを生成します)

STEP 2 中間ハイブに一時テーブルを作成するために、(注:そのテーブルに関連したHBaseのハイブに直接データをロードしない)のためのデータロードファイル

CREATE TABLE emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm double,

deptno int)

row format delimited fields terminated by '\t';

Step3、向Hive中间表中load数据

hive> load data local inpath '/home/admin/Desktop/emp.txt' into table emp;

Step4、通过insert命令将中间表中的数据导入到Hive关联HBase的那张表中

hive> insert into table hive_hbase_emp_table select * from emp;

Step5、测试,查看Hive以及关联的HBase表中是否已经成功的同步插入了数据

如图所示:

Hive中:

 

HBase中:

 

3、案例2:比如在HBase中已经存储了某一张表hbase_emp_table,然后在Hive中创建一个外部表来关联HBase中的hbase_emp_table这张表,使之可以借助Hive来分析HBase这张表中的数据。

该案例2紧跟案例1的脚步,所以完成此案例前,请先完成案例1。

Step1、在Hive中创建外部表

CREATE EXTERNAL TABLE relevance_hbase_emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm double,

deptno int)

STORED BY

'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ("hbase.columns.mapping" =

":key,info:ename,info:job,info:mgr,info:hiredate,info:sal,info:comm,info:deptno") 

TBLPROPERTIES ("hbase.table.name" = "hbase_emp_table");

Step2、关联后就可以使用Hive函数进行一些分析操作了

在此,我们查询一下所有数据试试看

hive (default)> select * from relevance_hbase_emp;

  

おすすめ

転載: www.cnblogs.com/alexzhang92/p/10940428.html