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