Hive-2.3.3
Hbase-1.3.1
launcher start
start-dfs.sh
start-yarn.sh
zkServer.sh start
(3)
./mr-jobhistory-daemon.sh start historyserver
(hadoop/sbin)
bin/start-hbase.sh
Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现
通信原理:
(一)通过Hive把数据加载到HBase中,数据源可以是文件也可以是Hive中的表。
(二)通过整合,让HBase支持JOIN、GROUP等SQL查询语法。
(三)通过整合,不仅可完成HBase的数据实时查询,也可以使用Hive查询HBase中的数据完成复杂的数据分析。
(四)通过结合,可以设计一个高速写入,后面接入实时分析的海量数据分析系统。
hive-site.xml:
keeper-3.4.10.jar,file:///opt/software/hive/lib/hbase-client-1.3.1.jar,file:///opt/software/hive/lib/hbase-common-1.3.1-tests.jar,file:///opt/software/hive/lib/hbase-server-1.3.1.jar,file:///opt/software/hive/lib/hbase-common-1.3.1.jar,file:///opt/software/hive/lib/hbase-protocol-1.3.1.jar,file:///opt/software/hive/lib/htrace-core-3.1.0-incubating.jar
hive-env.sh:
export HBASE_HOME=/opt/software/hbase-1.3.1
2. 将hbase lib目录下的所有文件复制到hive lib目录中
注意:先删除hive/lib目录下hbase开头的jar包
/opt/software/hive/lib目录下:
rm -rf hbase-*
/opt/software/hbase/lib目录下:
cp /opt/software/hbase-1.3.1/lib/* /opt/software/hive-2.3.3/lib/
3. 在hive中创建映射表,创建完成后在hbase中查看是否同时在hbase中也创建成功(创建之前要先启动hbase)
hive
create table hbase_score(id int,name 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");
create table hive_hbase_test(id int,name string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping"=":key,cf1:name") tblproperties("hbase.table.name"="hive_hbase_test");
hbae shell
list
4. 导入数据测试:
Hive 导入数据,Hbase查看数据:
1)vi hive_hbase.txt
2)在hive中创表,导入数据:
create table test(id int,name string) row format delimited fields terminated by ',';
load data local inpath "/usr/datadir/hive_hbase.txt" into table test;
select * from test;
3)将hive的test表中的数据加载到hive_hbase_test表
insert overwrite table hive_hbase_test select * from test;
通过Hbase put添加数据,Hive查看添加数据
1)在hbase shell中对表hive_hbase_test添加数据
put 'hive_hbase_test','4','cf1:name','mipeng'
2)在hive中查看数据是否添加进来:
select * from hive_hbase_test;
整合完成之后,如果在hive当中创建的为内部表,那么在hive中删除该表时,hbase上对应的表也会删除;如果在hive当中创建的为外部表,那么在hive中删除该表时,不会影响hbase。
hive中创建外部映射表步骤:
create 'hbase_score1','cf'
create external table hbase_score1(id int,name 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_score1");
在hbase中添加数据:(参考导入数据测试)