zoukankan      html  css  js  c++  java
  • (1)、hive框架搭建和架构简介

    一、简介

    Hive是基于hadoop的一个数据仓库工具,有助于查询和管理分布式存储系统中的数据集,非常适合数据仓库的统计分析

    Hive 不适合用于连机事物处理、也不提供实时查询,比较适合在大量不可变数据的批处理作业。

    二、下载与安装

    1、下载hive压缩包,并复制到centos系统的/opt/module目录下

    2、解压文件:tar -zxvf apache-hive-1.0.1-bin.tar.gz    执行重命名文件夹为  hive

    3、添加hive-1.0.1到环境变量中,本文前提是已经配置好了hadoop的运行环境,运行环境为hadoop2.2

    vi /etc/profile
    插入内容
    export HIVE_HOME=/opt/modules/hive
    export PATH=$PATH:$HIVE_HOME
    

    4、配置hive-default.xml和hive-site.xml文件

    进入到/opt/modules/hive/conf,将hive-default.xml.template 复制为hive-default.xml和hive-site.xml文件,修改hive-env.xml文件的权限

    chmod u+x hive-env.sh

    5、在shell命令行中,输入:hive   则会进入到hive的shell命令窗口

    (在配置的过程中,遇到了很多的问题,不过根据log日志,可以一步一步的解决问题)

    三、架构

    hive的架构可以分为四个部分

    • 用户接口
    •     主要有CLI、Client和WUI,CLI启动的时候,会同时启动一个hive的副本
    • 元数据存储
    •     hive中的元数据是存储在RDBMS中的,如:MySQL,hive的元数据包括表的名字、表的列、表的属性、表的数据所在的目录
    •     在hive中,每个数据库对于与HDFS文件系统的一个目录,在数据库中创建的表,则在相应的数据库目录下,为数据库目录的子目录。
    • 解释器、编译器、优化器
    •    使用HQL语句查询,需要从词法分析、语法分析、编译、优化以及查询计划的生成,生成的查询信息存储在HDFS中,然后由MapReduce调用执行
    • 数据存储
    •   hive的数据存储在HDFS中的,大部分的查询都被解释为MapReduce任务,只有少部分直接读取文件

    架构图如下所示。

    si

    四、存储元数据到MySQL数据库中

    a  安装MySQL数据库

         yum install -y mysql-server mysql mysql-deve

    b、重启mysql服务

         service mysqld restart

    c、登陆MySQL,并授予权限

         mysql -u root -p ***

        分配权限:grant all privileges on *.* to 'root'@'hadoop-yarn' identified by 'root123';

        刷新权限:flush privileges

    d、创建hive专用的元数据库:“hive”

        create database hive;

    e、在Hive的conf目录下的hive-site.xml文件添加以下配置

        <property>
            <name>hive.metastore.local</name>
            <value>true</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://hadoop-yarn:3306/hive?characterEncoding=UTF-8</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>root123</value>
        </property>
    

    f、将mysql的驱动包复制到hive目录的lib目录下

    g、启动hive命令,如下图所示

    h、进入MySQL数据库

         执行命令:use hive

      show tables   如图所示

    到此,hive的环境搭建结束,元数据metastore存储在MySQL数据库中。


  • 相关阅读:
    elselect下拉数据过多解决办法
    移动端开发遇到的问题汇总
    win7系统可关闭的服务
    安装Qcreator2.5 + Qt4.8.2 + MinGW_gcc_4.4 (win7环境)
    学习Qt的资源
    c++学习 定位new表达式
    eltablecolumn中添加echarts
    js对象数组封装,形成表格,并在表格中添加echarts直折线图
    Unity学习笔记3:随机数和动画脚本
    关于Unity的一些概念和语法
  • 原文地址:https://www.cnblogs.com/gyouxu/p/4608328.html
Copyright © 2011-2022 走看看