hadoop生态--Hive(1)--Hive入门

是什么?

hive,是基于hadoop的数据仓库,用于处理结构化数据。适合作OLAP。存储数据结构(schema)在数据库中,处理数据进入hdfs。 java

大量的MR任务繁重,为了简化编写MR的工做量,hive提供了一个框架,能够把一个相似sql的查询语句翻译成MR程序,而后把job提交到hdfs上进行查询;到hdfs上查询哪一个表呢?这就是hive提供的另外一个功能,把hdfs的一个文件,映射成一张hive表,在查询时就是把job在hdfs上处理该文件。mysql

那么hive表和hdfs的映射关系要怎么记录呢?hive在进行表映射的时候使用mysal记录hive表和hdfs文件的映射关系(使用mysql存储元数据,元数据包括表的属性、表的名称、表的列、分区及其属性以及表数据所在的目录等)linux

 

hive负责把相似sql的查询语句翻译成MR程序;mysql存储表和待查询文件的映射关系;HDFS上运行这些HDFS程序;sql

创建一张表hive内部的工做机制:mysql记录表定义,在hdfs中建立目录,把数据存储到目录就能够进行数据处理。数据库

数据库和数据仓库:vim

数据库和数据仓库从本质上来讲是一致的,都是基于某种模型来组织、管理数据。只是二者的使用场景不一样,数据库更关注业务交易处理(OLTP)是业务性数据库,而数据仓库更关注数据分析处理(OLAP)属于分析性数据库,因此二者的数据库模型会有很大差别。centos

数据库一般追求交易的速度、完整性、数据的一致性等,数据库模型听从范式模型,尽可能减小数据冗余,保证引用完整性;而数据仓库强调数据分析的效率,复杂查询的速度以及数据之间的相关性分析,在数据库模型上,数据仓库喜欢使用多维模型,从而提升数据分析的效率。安全

 讨论数据库和数据仓库的区别,实际上是在讨论OLTP和OLAP:数据结构

 数据处理大体能够分红两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、平常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操做,侧重决策支持,而且提供直观易懂的查询结果。 并发

OLTP:联机事务处理。负责基本业务的正常运转。也能够称面向交易的处理系统,它是针对具体业务在数据库联机的平常操做,一般对少数记录进行查询、修改。用户较为关心操做的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库系统做为数据管理的主要手段,主要用于操做型处理。

OLAP:联机分析处理。负责发如今业务数据积累时产生的价值。通常针对某些主题历史数据进行分析,支持管理决策。


 hive 安装部署

部署以前先考虑下须要部署啥,部署到哪里。
部署啥?hive,hdfs(存储数据)、mysql(存储元数据)。安装hive的机器上须要安装有hadoop,这个机器能够访问mysql(远程或本地)
部署到哪里?hive对hdfs而言,就是一个客户端,因此能够安装在任意位置,只须要能够和hdfs通讯便可,不必定要在hdp集群上。
 下面介绍步骤:
0、安装hadoop和mysql
安装hadoop:搭建hadoop集群,并在安装hive的机器上安装hadoop做为客户端;安装mysql:安装在hive机器能够通讯的机器上便可。
一、hive下载、解压
二、在$HIVE_HOME/conf下增长hive-site.xml
配置存储元数据的mysql信息,包括数据库地址、用户名、密码等。内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://192.168.1.8:3306/hive?createDatabaseIfNotExist=true</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>admin</value>
    </property>
</configuration>
View Code
三、复制依赖包,放到lib下
mysql-connector-java-5.1.37.jar 注意到maven官网下载对应你的mysql版本的jar包
四、配置hadoophome和hivehome
编辑配置文件添加内容
vim /etc/profile   
使配置生效
source /etc/profile
五、进行一些有利于使用的配置
在linux当前目录,建立文件.hiverc,添加内容
[root@centos7 ~]# vim .hiverc
set hive.cli.print.header=true;
set hive.cli.print.current.db=true;
以上两句分别设置查询结果时显示表头     设置显示当前使用的库
相关文章
相关标签/搜索