• (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数据库中。


  • 相关阅读:
    安裝Node.js
    es match、match_phrase、query_string和term的区别
    ES系列十、ES常用查询API
    ElasticSearch 入门总结
    起立,老师好
    像哆啦A梦懂大雄一样懂客户,我们也会拥有百宝箱
    阿里云居然在偷偷发福利!
    别人家的公司又来了,这次竟然开起了演唱会
    听说国家博物馆收藏了一行代码 ???
    我还是那个我,为啥就被老板区别对待了呢?
  • 原文地址:https://www.cnblogs.com/gyouxu/p/4608328.html
Copyright © 2020-2023  润新知