zoukankan      html  css  js  c++  java
  • 将CDH中的hive和hbase相互整合使用



    一、.hbase与hive的兼容版本:

    hive0.90与hbase0.92是兼容的,早期的hive版本与hbase0.89/0.90兼容,不需要自己编译。

    hive1.x与hbase0.98.x或则更低版本是兼容的,不需要自己编译。

    hive2.x与hbase1.x及比hbase1.x更高版本兼容,不需要自己编译。

    hive 1.x 与 hbase 1.x整合时,需要自己编译

    二、.hbase与hive的整合过程:

        1.修改 hive 的conf目录下 hive-site.xml文件

    <property>
                    <name>hive.zookeeper.quorum</name>
                    <value>node1,node2,node3</value>  
              </property>
              <property>
                    <name>hive.server2.enable.doAs</name>
                    <value>false</value>   
              </property>

    1.可通过Hive -> 操作 -> 下载客户端配置 的方式查看hive-site.xml文件内容,可得知 hive.zookeeper.quorum 配置的内容,默认配置即为 node1,node2,node3 即可。

    2.可得知 hive.server2.enable.doAs 默认为 true,推荐修改为false,否则在使用官方推荐的hiveserver2/beeline的方式操作时,在利用HQL语句创建HBase时可能会出现异常。

    3.可通过Hive -> 配置 -> 搜索栏中搜索 hive.server2.enable.doAs ,默认为勾选,取消勾选即可,即能修改配置为 false。

    再当我们通过Hive -> 操作 -> 下载客户端配置 的方式查看hive-site.xml文件内容,即可查看到hive.server2.enable.doAs已为false

                 

    2.重启 hive、hbase

    3.使用命令 beeline -u jdbc:hive2://node1:10000 -n root 进行连接

    4.HIVE执行创建表语句:hbase表 映射 hive表,写入的数据存储在 hbase表中,"hbase.mapred.output.outputtable"可指定数据写入到hbase表中

    1.create database rimengshe;

    2.use rimengshe;

    3.创建hive表的同时也会创建出hbase表

    # Hive中的表名test_tb;key字段映射hbase表中的rowkey;value字段映射cf1列簇下的val字段

    CREATE TABLE ushio(key int, value string)

    # 指定存储处理器

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

    # 声明列簇,列名

    WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")

    # hbase.table.name声明HBase表名,为可选属性默认与Hive的表名相同

    # hbase.mapred.output.outputtable指定插入数据时写入的表,如果以后需要往该表插入数据就需要指定该值

    TBLPROPERTIES ("hbase.table.name" = "ushio", "hbase.mapred.output.outputtable" = "ushio");

    3.hbase表中添加数据:put '表名','rowkey值','列簇名:列名','列值'

    put 'ushio','98','cf1:val','val_98'

    put 'ushio','99','cf1:val','val_99'

    put 'ushio','100','cf1:val','val_100'

    4.hive表中添加数据:(会运行yarn)INSERT INTO table_name (field1, field2,...fieldN ) VALUES (value1, value2,...valueN );

    insert into ushio values(2,'ushio');

    5.hbase表 查询表中的所有数据:scan '表名'

    scan 'ushio'

    6.hive表 查询表中的所有数据:

    select * from ushio;

  • 相关阅读:
    MKMapVIew学习系列2 在地图上绘制出你运行的轨迹
    WPF SDK研究 Intro(6) WordGame1
    WPF SDK研究 Intro(3) QuickStart3
    WPF SDK研究 Layout(1) Grid
    WPF SDK研究 目录 前言
    WPF SDK研究 Intro(7) WordGame2
    WPF SDK研究 Layout(2) GridComplex
    对vs2005创建的WPF模板分析
    WPF SDK研究 Intro(4) QuickStart4
    《Programming WPF》翻译 第6章 资源
  • 原文地址:https://www.cnblogs.com/Raodi/p/11466005.html
Copyright © 2011-2022 走看看