Hive简介

Hive 基本介绍

Hive 实现机制

Hive 数据模型

Hive 如何转换成MapReduce

Hive 与其他数据库的区别

以上详见:https://chu888chu888.gitbooks.io/hadoopstudy/content/Content/8/chapter8.html

Hive 和 Hbase 的区别

详见:http://www.cnblogs.com/justinzhang/p/4273470.html


Hive环境模式

  • 内嵌模式

    将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

  • 本地模式

    这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

  • 远程模式

    此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。


下载安装HIVE

Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。

本次教程,使用hive2.0.1版本,下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-2.0.1/

下载apache-hive-2.0.1-bin.tar.gz,解压至/data/hive

tar -zxvf apache-hive-2.0.1-bin.tar.gz -C /data
cd /data
mv apache-hive-2.0.1-bin hive


配置环境变量

# 编辑文件
vim /etc/profile # 文件末尾添加
export HIVE_HOME=/data/hive
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH # 使修改生效
source /etc/profile

内嵌模式

(1)修改 Hive 配置文件

Hive工程的配置文件为 hive-site.xml,默认情况下,该文件并不存在,需要拷贝它的模版来实现。

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

hive-site.xml的主要配置有

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
..
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
</property>
  • hive.metastore.warehouse.dir

    该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
  • hive.exec.scratchdir

    该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。

hive-site.xml文件内容不需修改,文件配置详解移步:https://my.oschina.net/HIJAY/blog/503842?p=1

接下来我们还要修改Hive目录下的/conf/hive-env.sh 文件,该文件默认也不存在,同样是拷贝它的模版来修改:

cd /data/hive/conf
cp hive-env.sh.template hive-env.sh vim hive-env.sh # 做如下修改
export HADOOP_HEAPSIZE=1024
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/data/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/data/hive/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/data/hive/lib

(2)创建必要目录

前面我们看到 hive-site.xml 文件中有两个重要的路径【/user/hive/warehouse】与【/tmp/hive】。

切换到hadoop 用户下查看HDFS是否有这些路径,如果没有,就新建目录,并且给它们赋予用户写权限。

$ hadoop dfs -mkdir /user/hive/warehouse
$ hadoop dfs -mkdir /tmp/hive
$ hadoop dfs -chmod 777 /user/hive/warehouse
$ hadoop dfs -chmod 777 /tmp/hive

如果你遇到 no such file or directory 类似的错误,就一步一步新建目录,例如:

$ hadoop dfs -mkdir /tmp
$ hadoop dfs -mkdir /tmp/hive

然后通过相关命令检查是否新建成功,比如【hdfs dfs -lsr /】。

(3)运行 Hive

前面我们已经提到过,内嵌模式使用默认配置和 Derby 数据库,所以无需其它特别修改,先 ./start-all.sh 启动 Hadoop, 然后直接运行 hive:

[root@iZwz9b62gfdv0s2e67yo8kZ /]$ cd /data/hive/bin/
[root@iZwz9b62gfdv0s2e67yo8kZ bin]$ hive

你很可能会遇到与【${system:java.io.tmpdir}】有关的这个错误:

解决方法是修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value。

可自己新建一个目录来替换它,例如 /data/hive/iotmp,同时赋予相关写权限。

修改后再次启动 hive,可能又遇到数据库未初始化的错误:

执行以下命令初始化即可

cd /data/hive/bin
./schematool -initSchema -dbType derby

继续报错:

Initialization script hive-schema-2.0.0.derby.sql
Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***

这个function的构建是数据库初始化的一部分,既然存在了,就直接去hive-schema-2.0.0-derby.sql里面注释掉【CREATE FUNCTION】的相关语句好了。

注释后再次启动hive,就ok了


本地模式

(1)安装 MySQL

成功安装mysql后启动服务,并创建名为hive的数据库,再创建一个hive用户为HIVE所用。

mysql安装方法详见:MySQL安装及卸载

MySQL安装后,还需要下载一个MySQL的JDBC驱动包。

这里使用的是mysql-connector-java-5.1.40-bin.jar,需将其复制到$HIVE_HOME/lib目录下。

$ tar -zxvf mysql-connector-java-5.1.40.tar.gz
$ cd mysql-connector-java-5.1.40
$ mv mysql-connector-java-5.1.40-bin.jar /data/hive/lib/

(2)修改 hive-site.xml 配置文件

最后,依然是修改 $HIVE_HOME/conf 下的 hive-site.xml 文件,把默认的 Derby 修改为 MySQL :

<property>
<name>javax.jdo.option.ConnectionURL</name>
//所连接的MySQL数据库实例
<value>jdbc:mysql://localhost:3306/hive</value>
</property> <property>
<name>javax.jdo.option.ConnectionDriverName</name>
//连接的MySQL数据库驱动
<value>com.mysql.jdbc.Driver</value>
</property> <property>
<name>javax.jdo.option.ConnectionUserName</name>
//连接的MySQL数据库用户名
<value>hive</value>
</property> <property>
<name>javax.jdo.option.ConnectionPassword</name>
//连接的MySQL数据库密码
<value>hive</value>
</property>

(3)启动 Hive

启动 Hive 的方式同内嵌模式一样,需先初始化数据库.

cd /data/hive/bin
./schematool -initSchema -dbType mysql

然后运行HIVE,可能发现运行不成功,并一直收到警告

修改hive-site.xml文件的javax.jdo.option.ConnectionURL选项即可

<property>
<name>javax.jdo.option.ConnectionURL</name>
//所连接的MySQL数据库实例
<value>jdbc:mysql://localhost:3306/hive?characterEncoding=utf8&useSSL=false</value>
</property>

再次启动HIVE,仍然报错

经查,再次修改javax.jdo.option.ConnectionURL选项,然后启动HIVE,发现启动成功。

<property>
<name>javax.jdo.option.ConnectionURL</name>
//所连接的MySQL数据库实例
<value>jdbc:mysql://localhost:3306/hive?characterEncoding=utf8&amp;useSSL=false</value>
</property>

链接相关

大数据进阶计划

http://wangxin123.com/2017/02/18/大数据进阶计划/

Hive下载地址

http://mirrors.hust.edu.cn/apache/hive/hive-2.0.1/

HIVE安装配置的更多相关文章

  1. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  2. Mac上Hive安装配置

    Mac上Hive安装配置 1.安装 下载hive,地址:http://mirror.bit.edu.cn/apache/hive/ 之前我配置了集群,tjt01.tjt02.tjt03,这里hive安 ...

  3. Linux环境Hive安装配置及使用

    Linux环境Hive安装配置及使用 一.Hive Hive环境前提 二.Hive架构原理解析 三.Hive-1.2.2单机安装流程 (1) 解压apache-hive-1.2.2-bin.tar.g ...

  4. 【转】 hive安装配置及遇到的问题解决

    原文来自: http://blog.csdn.net/songchunhong/article/details/51423823 1.下载Hive安装包apache-hive-1.2.1-bin.ta ...

  5. Hive安装配置详解步骤以及hive使用mysql配置

    Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务 ...

  6. hive安装配置错误

    1.Access denied for user 'hive'@'localhost' (using password: YES) 解决办法: 执行 hive --service metastore ...

  7. Hive安装配置要点

    官网下载安装包: 在Profile下面定义HIVE_HOME以及HADOOP_HOME,然后在PATH下面添加HOME/bin目录,用于在命令行直接敲beeline,hive即可执行命令: 需要在ha ...

  8. Hive 安装配置

    系统:Ubuntu 64 bit系统 step1:创建hive文件目录,并在hive目录下创建tmp,warehouse 和 log目录: Step2:解压hive安装包: Step3:创建配置文件: ...

  9. Hive 安装配置记录

    http://yymmiinngg.iteye.com/blog/708230 export HADOOP_HOME_WARN_SUPPRESS=1 export JAVA_HOME=/home/ha ...

随机推荐

  1. python作业设计:多级菜单,并可依次进入各级子菜单

    '''作业三:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 ''' data = { "北京":{ "昌平":{ "沙河&qu ...

  2. Entity Framework技术系列之0:开篇

    小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...

  3. 轻量级操作系统FreeRTOS的内存管理机制(一)

    本文由嵌入式企鹅圈原创团队成员朱衡德(Hunter_Zhu)供稿. 近几年来,FreeRTOS在嵌入式操作系统排行榜中一直位居前列,作为开源的嵌入式操作系统之一,它支持许多不同架构的处理器以及多种编译 ...

  4. sql中如何分割字符串

    使用方式: SELECT AllItem AS BldGUID  FROM dbo.fn_split('01.02.03','.') 函数:   GO )) )) --实现split功能 的函数 as ...

  5. iptables常用命令之配置生产环境iptables及优化

    第一步:清空当前的所有规则和计数 iptables -F #清空所有的防火墙规则 iptables -X #删除用户自定义的空链 iptables -Z #清空计数 第二步:配置允许ssh端口连接 i ...

  6. STM32、Cortex-A、Cortex-R、Cortex-M、SecurCore

    STM32是就是基于Cortex-M3这个核生产的CPU. arm7是arm公司推出的以V4指令集设计出来的arm核--其代表的芯片有s3c44b0 arm9是arm公司推出的以V5指令集设计出来的a ...

  7. 从JDBC到hibernate再到mybatis之路

    一.传统的JDBC编程 在java开发中,以前都是通过JDBC(Java Data Base Connectivity)与数据库打交道的,至少在ORM(Object Relational Mappin ...

  8. mysql 优化方法

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  9. DirectFB学习笔记四

    本篇目的,实现按钮的点击事件捕获,也就是鼠标点击,如果点击在方框范围内,则响应,在方框外,则忽略. 由于鼠标移动和点击都会产生事件,因此,我们可以在鼠标移动的时候记录坐标,在点击时比较坐标是否在方框范 ...

  10. sass入门学习篇(二)

    从语法开始但是语法也不是一两句的事情,首先看基本的导入,使用 一,sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,建议scss. 二,导入 使 ...