hive读取Hbase的数据

1、文档(不会的直接找文档最方便)

HBaseIntegration

 

2、拷贝jar文件

2.1 将Hbase/bin目录下面文件拷贝到Hive/bin目录下

 
  1. cd /home/hbase/lib

  2. cp ./* /home/hive/lib

2.2 把Hive的lib目录下面的hive-hbase-handler-0.13.1.jar拷贝到Hbase的lib目录下面

cp /home/hive/lib/hive-hbase-handler-0.13.1.jar /home/hbase/lib/

3、修改Hive/conf目录下面的配置文件

主要配置Zookeeper节点信息

 
  1. cd /home/hive/conf

  2. vi hive-site.xml

  3.  
  4. hbase.zookeeper.quorum

  5. master,slave1,slave2

4、在Hbase中创建表

 
  1. --在Hbase中创建表

  2. create 'hbase_to_hive_t_user', 'cf_user_info'

  3.  
  4. hbase(main):010:0> desc 'hbase_to_hive_t_user'

  5. Table hbase_to_hive_t_user is ENABLED

  6. COLUMN FAMILIES DESCRIPTION

  7. {NAME => 'cf_user_info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_S

  8. COPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER',

  9. KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => '

  10. true'}

  11. row(s) in 0.0650 seconds

5、在Hbase表中插入数据

 
  1. --插入数据

  2. put 'hbase_to_hive_t_user', '1', 'cf_user_info:name','Tom'

  3. put 'hbase_to_hive_t_user', '1', 'cf_user_info:age',24

  4. put 'hbase_to_hive_t_user', '2', 'cf_user_info:name','John'

  5. put 'hbase_to_hive_t_user', '2', 'cf_user_info:age',18

  6. put 'hbase_to_hive_t_user', '3', 'cf_user_info:name','Steven'

  7. put 'hbase_to_hive_t_user', '3', 'cf_user_info:age',38

  8.  
  9.  
  10. scan 'hbase_to_hive_t_user'

  11. hbase(main):009:0> scan 'hbase_to_hive_t_user'

  12. ROW COLUMN+CELL

  13. column=cf_user_info:age, timestamp=1546754368046, value=24

  14. column=cf_user_info:name, timestamp=1546754367972, value=Tom

  15. column=cf_user_info:age, timestamp=1546754368166, value=18

  16. column=cf_user_info:name, timestamp=1546754368103, value=John

  17. column=cf_user_info:age, timestamp=1546754370447, value=38

  18. column=cf_user_info:name, timestamp=1546754368211, value=Steven

  19. row(s) in 0.1600 seconds

6、在Hive中创建数据库表关联Hbase里面的表

 
  1. --如果你想要Hive去访问Hbase中已经存在的表,你可以创建外部表(CREATE EXTERNAL TABLE)

  2.  
  3. CREATE EXTERNAL TABLE hive_access_hbase_table_t_user_2 (key string, name string, age int,)

  4. STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

  5. WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf_user_info:name,cf_user_info:age")

  6. TBLPROPERTIES ("hbase.table.name" = "hbase_to_hive_t_user");

6.1在Hive中查询Hbase表里的数据

 
  1. -- 查询

  2. SELECT * from hive_access_hbase_table_t_user;

  3.  
  4. hive> select * from hive_access_hbase_table_t_user;

  5. OK

  6. Tom 24

  7. John 18

  8. Steven 38

  9. Time taken: 0.325 seconds, Fetched: 3 row(s)

你可能感兴趣的:(Hive,Hive读取Hbase,数据库)