【Hive】Hive 基础

Hive架构:

Hive基础

1 概念

1.1 简介

1.1.1 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表, 并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。--OLAP

1.2 背景

1.2.1 OLAP逻辑和SQL一样大体一致,可以将这些逻辑转化为对应的MR,不需要每种类型的查询分析都重复写MR

1.2.2 Facebook开发通用的MR程序框架,对外使用SQL接口,框架就是Hive

1.3 官网

1.3.1 http://hive.apache.org/

1.4 原理

1.4.1 建表

1.4.1.1 Hive保存元数据

1.4.1.1.1 可以使用MySQL

1.4.1.2 指定HDFS文件路径

1.4.2 SQL查询

1.4.2.1 Compiler编译器匹配MR模板,生成MR实例

1.4.2.2 MR执行器

1.4.2.2.1 提交运行MR,返回输出

1.4.3 问题

1.4.3.1 Hive采用的方法是将SQL查询转化成MapReduce任务,这导致Hive的性能很差。 而且,Hive只能支持不到30%的SQL分析功能

1.5 同类产品

1.5.1 Impala

1.5.1.1 使用MPP并行数据库思想,完全抛弃了MapReduce这个不太适合做SQL查询的范式。 比基于MapReduce的HiveSQL查询速度提升3~30倍。支持HDFS、HBASE作为存储引擎。

1.5.1.2 http://baike.baidu.com/link?url=wjJdGGrc150Mjrw_JX53P8aEdLOtVwi7hO6P31CKjAmq 2v7P6mEVkRLLLuyvQXI7p_GUsN3du2jF4detmY1t-q

1.5.1.3 http://www.ctocio.com/bigdata/9236.html

1.5.2 Drill

1.5.2.1 Impala仅支持CDH,Drill构建在Hadoop通用版本之上

1.5.3 Spark Shark

1.5.3.1 Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、 执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业

1.5.3.2 http://zhidao.baidu.com/link?url=KsaLI5bexln9hVHFp4mABsq2xSpwdllf89-sGZlwz1lAoUo OPMJwGgS0w-eaHOVbaxGYMsxbI5KjYxFRj1sv1MC_XTW0BN2hf96NF8ZdHcu

1.5.4 Spark SQL

1.5.4.1 http://www.csdn.net/article/2014-07-02/2820482-shark-spark-sql-hive-on-spark-and-the-future-of-sql-on-spark

1.5.5 Cassandra

1.5.5.1 http://baike.baidu.com/link?url=vqQi3df9gQb6pnudACgLzz6NCgRvlOvoA0mtXGDeqiawcy22yt2FTYrJkv PeRNS6uyMhvkrwmtLCb_312cmg9a

1.5.6 Presto

1.5.6.1 http://www.linuxidc.com/Linux/2015-07/119958.htm

1.5.6.2 http://prestodb-china.com/

1.5.6.3 http://blog.csdn.net/joomlaer/article/details/45889759

1.5.7 如何选择?

1.5.7.1 http://stackoverflow.com/questions/17113964/comparing-cassandras-cql-vs-spark- shark-queries-vs-hive-hadoop-dse-version

1.5.7.2 http://blog.163.com/[email protected]/blog/static/136134661201411322353856/

1.5.7.3 http://blog.sina.com.cn/s/blog_6277623c0102vnq2.html

1.5.7.4 http://blog.chinaunix.net/uid-29242841-id-4030543.html

1.5.7.5 https://www.zhihu.com/question/41541395

时间: 2024-10-24 09:40:03

【Hive】Hive 基础的相关文章

Hive框架基础(一)

* Hive框架基础(一) 一句话:学习Hive有毛用? 那么解释一下 毛用: * 操作接口采用类SQL语法,提供快速开发的能力(不会Java也可以玩运算) * 避免了去写MapReduce,减少开发人员的学习成本(MapReduce运算写断手) * 扩展功能很方便 * 数据库不等同于数据仓库 数据库有很多,例如:mysql.oracle.DB2.sqlserver,但hive并不是数据库. Hive是FaceBook的开源项目,Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文

Hive框架基础(二)

* Hive框架基础(二) 我们继续讨论hive框架 * Hive的外部表与内部表 内部表:hive默认创建的是内部表 例如: create table table001 (name string , age string) location '/input/table_data'; 此时:会在HDFS上新建一个table001表的数据存放地 接着执行: load data inpath'/input/data 'into table table001;(注意,load关键字后没有跟local关

[Hive] - Hive参数含义详解

hive中参数分为三类,第一种system环境变量信息,是系统环境变量信息:第二种是env环境变量信息,是当前用户环境变量信息:第三种是hive参数变量信息,是由hive-site.xml文件定义的以及当前hive会话定义的环境变量信息.其中第三种hive参数变量信息中又由hadoop hdfs参数(直接是hadoop的).mapreduce参数.metastore元数据存储参数.metastore连接参数以及hive运行参数构成. Hive-0.13.1-cdh5.3.6参数变量信息详解 参数

Hadoop三大组件以及Hive的基础认知

Hadoop三大组件: 分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上(分布式存储) 分布式运算编程框架:MapReduce——实现多台机器的分布式并行运算.(分布式运算) 分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源 Hive 入门 Hive构建在Hadoop上 HQL中对查询语句的解释.优化.生成查询计划是由Hive完成的所有的数据存储在Hadoop上. 查询计划被转化为 MapReduce 任务(job),在 Hado

Hive[2] 基础介绍

2.3 Hive 内部介绍: P44 $HIVE_HOME/lib 下的 jar 文件是具体的功能部分:(CLI模块) 其它组件,Thrift 服务,可以远程访问其他进程功能:也有使用 JDBC 和 ODBC 访问 Hive 的功能: 所有Hive 客户端都需要一个 metastoreservice(元数据服务),Hive 用这个服务来存储表模式信息和其他元数据信息:默认会使用内置的 Derby SQL服务器提供有限的单进程的存储服务: HWI Hive 网页界面,提供了远程访问Hive 的服务

HIVE使用基础

查看所有表:   show tables; 查看表结构:   desc 表名 查看表的分区:  show partitions 表名; 查看UDF: HIVE允许用户使用UDF(user defined function)对数据进行处理. 查看所有UDF:show functions 某个具体UDF说明:describe function UDF名 http://blog.csdn.net/yfkiss/article/details/7885262 常见建表语句: (这是内部表) --drop

[hive] hiveql 基础操作

1. 显示当前的数据库信息 直接修改hive.site.xml ,永久显示

Hive(一)基础知识

一.Hive的基本概念 (安装的是Apache hive 1.2.1) 1.hive简介 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表, 并提供类 SQL 查询功能, hive 底层是将 SQL 语句转换为 MapReduce 任务运行(类似于插件Pig\impala\Spark Sql)                 结构化:有行有列,格式整齐标准 非结构化:格式不统一,不标准,有长有短               半结构化:参差不齐,有规律,

[Hive]Hive自定义函数UDF

当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数 用户自定义函数(user defined function),针对单条记录. 编写一个UDF,需要继承UDF类,并实现evaluate()函数.在查询执行过程中,查询中对应的每个应用到这个函数的地方都会对这个类进行实例化.对于每行输入都会调用到evaluate()函数.而evaluate()函数处理的值会返回给Hive.同时用户是可以重载evaluate方法的.Hive会像Java的方法重载一样,自动选择匹配的

[Hive]Hive将一行记录拆分成多行

业务背景 hive表test_user_browse记录了用户浏览过的商品,该表的数据如下: username product John product_a,product_b,product_c,product_d Tom product_e,product_f 现在,想要将product字段拆分为多行. 实现方式 现在借助lateral view 和explode()来完成. select username, browse_product from pms.test_user_browse