• 大数据工具篇之Hive与HBase整合完整教程


    大数据工具篇之Hive与HBase整合完整教程

    一、引言

      最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方式,之前曾经有过技术文章共享,本文就不再说明。本文基于Hive执行HDFS批量向HBase导入数据,讲解Hive与HBase的整合问题。这方面的文章已经很多,但是由于版本差异,可操作性不大,本文采用的版本均基于以下版本说明中的版本。

    二、版本说明

    序号 软件 版本
    1 Hive  0.10.0
    2 HBase 0.94.0
    3 Hadoop 1.0.1

      

    三、配置指南

      3.1 创建配置文件

      cp conf/hive-default.xml.template hive-default.xml

      cp conf/hive-default.xml.template hive-site.xml

      3.2 修改配置文件

      基于hive-default.xml.template进行拷贝复制的hive-site.xml文件有问题,主要集中在<description></description>标签不配对的情况,需要根据错误提示进行修改,修改完成后的配置文件如下所示:  

     View Code

       3.3 新增配置属性-hive.aux.jars.path  

    1 <property> 
    2     <name>hive.aux.jars.path</name>  
    3     <value>file:///home/hadoop/source/hive/lib/hive-hbase-handler-0.10.0.jar,file:///home/hadoop/source/hive/lib/hbase-0.94.0.jar,file:///home/hadoop/source/hive/lib/zookeeper-3.4.3.jar</value> 
    4 </property>

      3.4 拷贝Jar包到Hive/lib目录

      hbase-0.94.0.jar,zookeeper-3.4.3.jar

    四、测试脚本-创建HBase能够识别的数据表

    1 CREATE TABLE hbase_table_1(key int, value string)   
    2 STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
    3 WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")  
    4 TBLPROPERTIES ("hbase.table.name" = "xyz");  

    五、异常解决

      5.1 错误提示

    java.lang.NoClassDefFoundError: com/google/protobuf/Message
    at org.apache.hadoop.hbase.io.HbaseObjectWritable.(HbaseObjectWritable.java
    …

       5.2 解决方案  

      将$HBASE_HOME/lib/protobuf-java-2.4.0a.jar 拷贝到 $HIVE_HOME/lib/.

    六、运行效果  

    复制代码
    [hadoop@hadoop1 lib]$ hive -hiveconf hbase.zookeeper.quorum=hadoop1
    WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
    Logging initialized using configuration in jar:file:/home/hadoop/source/hive/lib/hive-common-0.10.0.jar!/hive-log4j.properties
    Hive history file=/tmp/hadoop/hive_job_log_hadoop_201401012315_758621762.txt
    hive> CREATE TABLE hbase_table_1(key int, value string)   
        > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
        > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")  
        > TBLPROPERTIES ("hbase.table.name" = "xyz"); 
    OK
    Time taken: 23.246 seconds
    hive> show tables;
    OK
    hbase_table_1
    Time taken: 1.346 seconds
    复制代码
  • 相关阅读:
    【ShardingSphere】ShardingSphere-JDBC 快速入门
    【Java】Java8新特性之重复注解与类型注解
    【Java】Java8新特性之时间和日期API
    【Java】Java8新特性之接口默认方法与静态方法
    【数据结构】堆
    【数据结构】二叉树
    JavaFx 创建快捷方式及设置开机启动
    【开源库推荐】#2 AndroidUtilCode Android常用工具类大全(附API使用说明)
    谈谈Android中的消息提示那些坑
    Android CheckBox控件去除图标 样式改造
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3502441.html
Copyright © 2020-2023  润新知