一、简介

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

(1)、hive框架搭建和架构简介的更多相关文章

  1. SpringMVC笔记——SSM框架搭建简单实例

    落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...

  2. Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介

    约定 还记得上版本的第二十四篇的约定嘛?现在出来履行啦~ 为什么要重制? 之前写的专栏都是按照心情写的,在最初的时候笔者什么都不懂,而且文章的发布是按照很随性的一个顺序.结果就是说,大家都看完了,都还 ...

  3. Unity 游戏框架搭建 2019 (五十二~五十四) 什么是库?&第四章总结&第五章简介

    在上一篇,我们对框架和架构进行了一点探讨.我们在这一篇再接着探讨. 什么是库呢? 来自同一位大神的解释: 库, 插到 既有 架构 中, 补充 特定 功能. 很形象,库就是搞这个的.我们的库最初存在的目 ...

  4. Unity 游戏框架搭建 (十六) v0.0.1 架构调整

    背景: 前段时间用Xamarin.OSX开发一些工具,遇到了两个问题. QFramework的大部分的类耦合了Unity的API,这样导致不能在其他CLR平台使用QFramework. QFramew ...

  5. Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例

    第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示 ...

  6. Unity 游戏框架搭建 2019 (三十九、四十一) 第四章 简介&方法的结构重复问题&泛型:结构复用利器

    第四章 简介 方法的结构重复问题 我们在上一篇正式整理完毕,从这一篇开始,我们要再次进入学习收集示例阶段了. 那么我们学什么呢?当然是学习设计工具,也就是在上篇中提到的关键知识点.这些关键知识点,大部 ...

  7. Unity 游戏框架搭建 2019 (五十六/五十七) 需求分析-架构中最重要的一环&从 EmptyGO 到 Manager Of Managers

    我们的项目开始立项的时候,最常见的一个情况就是:几个人的小团队,一开始什么也不做,就开始写代码,验证逻辑,游戏就开始写起来了.而公司的一些所谓的领导层面一开始就把游戏定义为我们要做一个大作.这个事情本 ...

  8. [c#]asp.net开发微信公众平台(2)多层架构框架搭建和入口实现

    上篇已经设计出比较完善的数据库了,这篇开始进入代码.  首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间 ...

  9. Unity 游戏框架搭建 2019 (二十一、二十二) 第三章简介&整理前的准备

    整理前的准备 到目前为止,我们积攒了很多示例了,并且每个示例也都贯彻了最的约定和规则. 在上一篇的小结也说了一个比较新的东西:编程体验优化. 在之前我们还积攒了一个问题:代码重复问题. 我们可是忍住整 ...

随机推荐

  1. JDBC:数据库操作:处理大对象CLOB数据

    目标: 了解大对象处理基本原理, 掌握CLOB数据的读,写操作. 可以使用CLOB类处理大文本数据. 大对象处理主要指CLOB和BLOB两种类型字段.可以大量存储文字. 要想在程序中处理这样的大数据操 ...

  2. hibernate session的load和get方法

    @Test public void testLoad() {     Session session = sessionFactory.getCurrentSession();     session ...

  3. Drupal启动阶段之四:系统变量

    Drupal的系统变量是指保存在后台数据库variable表中的一些参数设置,透过variable_get()和variable_set()存取: 先看一看_drupal_bootstrap_vari ...

  4. Backbone.js 1.0.0源码架构分析(二)——Event

    (function(){ //省略前面代码 var Events = Backbone.Events = { // 根据name订阅事件,push到this._events[name] on: fun ...

  5. Spring+Hibernate整合

    因为整合spring和hibernate所以,需要用到spring里面复写Hibernate的类以有DI和IOC特性 db.sql hibernate_basic数据库 表 person 字段 pid ...

  6. RecSys Challenge 2015

    [The Task] Given a sequence of click events performed by some user during a typical session in an e- ...

  7. codesmith 自动生成C# model 实体模板

    <%-- Name:自动生成 Author: 陈胜威 Description: 直接生成model类 --%> <%@ Template Language="C#" ...

  8. 解决nginx到后端服务器Connection: close问题

    以下是官方原文: By default, NGINX redefines two header fields in proxied requests, “Host” and “Connection”, ...

  9. 企业信息系统集成框架(设计思路)C++模式

    设计要求: 1.企业信息系统框架.第三方产品通过接口层进行分层. 2.企业信息系统框架如何自由的继承第三方产品:通过一个抽象类.(软件设计要求:模块要求松,接口要求紧). 设计步骤: 1.报文的接受与 ...

  10. C#面试基础问题0

    传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同. 如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称. C#支持多重继承么?不支持.可以用接口来实 ...