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

是什么?

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

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

那么hive表和hdfs的映射关系要怎么记录呢?hive在进行表映射的时候使用mysal记录hive表和hdfs文件的映射关系(使用mysql存储元数据)

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

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

数据库和数据仓库:

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

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

 讨论数据库和数据仓库的区别,其实是在讨论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机器可以通信的机器上即可。
1、hive下载、解压
2、在$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
3、复制依赖包,放到lib下
mysql-connector-java-5.1.37.jar 注意到maven官网下载对应你的mysql版本的jar包
4、配置hadoophome和hivehome
编辑配置文件添加内容
vim /etc/profile   
使配置生效
source /etc/profile
5、进行一些有利于使用的配置
在linux当前目录,创建文件.hiverc,添加内容
[root@centos7 ~]# vim .hiverc
set hive.cli.print.header=true;
set hive.cli.print.current.db=true;
以上两句分别设置查询结果时显示表头     设置显示当前使用的库

猜你喜欢

转载自www.cnblogs.com/Jing-Wang/p/10990886.html
今日推荐