Apache Hive

1. Hive 简介
1.1. 什么是Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
本质是将SQL转换为MapReduce程序。
主要用途:用来做离线数据分析,比直接用MapReduce开发效率更高。

1.2. 为什么使用Hive
直接使用Hadoop MapReduce处理数据所面临的问题:
人员学习成本太高
MapReduce实现复杂查询逻辑开发难度太大
使用Hive :
操作接口采用类SQL语法,提供快速开发的能力
避免了去写MapReduce,减少开发人员的学习成本
功能扩展很方便
2. Hive 架构
2.1. Hive架构图

2.2. Hive组件
用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:通常是存储在关系数据库如 mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器、执行器:完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
2.3. Hive与Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询分析数据。
3. Hive与传统数据库对比
hive用于海量数据的离线数据分析。
hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。
更直观的对比请看下面这幅图:

4. Hive数据模型
Hive中所有的数据都存储在HDFS中,没有专门的数据存储格式
在创建表时指定数据中的分隔符,Hive 就可以映射成功,解析数据。
Hive中包含以下数据模型:
db:在hdfs中表现为hive.metastore.warehouse.dir目录下一个文件夹
table:在hdfs中表现所属db目录下一个文件夹
external table:数据存放位置可以在HDFS任意指定路径
partition:在hdfs中表现为table目录下的子目录
bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件

5. Hive 安装部署
Hive安装前需要安装好JDK和Hadoop。配置好环境变量。
根据元数据存储的介质不同,分为下面两个版本,其中derby属于内嵌模式。实际生产环境中则使用mysql来进行元数据的存储。
内置derby版:
解压hive安装包
bin/hive 启动即可使用
缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享
mysql版:
解压、修改配置文件
vi conf/hive-site.xml
配置Mysql元数据库信息
详细安装步骤查看《Hive安装手册》

原文地址:http://blog.51cto.com/13587708/2177047

时间: 2024-10-12 07:39:10

Apache Hive的相关文章

Apache Hive 基本理论与安装指南

一.Hive的基本理论 Hive是在HDFS之上的架构,Hive中含有其自身的组件,解释器.编译器.执行器.优化器.解释器用于对脚本进行解释,编译器是对高级语言代码进行编译,执行器是对java代码的执行,优化器是在执行过程中进行优化.这里的代码就是Hadoop中的MapReduce,这里的MapReduce通过Hive往HDFS上执行.分析.查询数据. 上图展示hql的执行过程,一个hql脚本首先到hive的解释器,转化为MapReduce(当然例如“select * from table_na

笔记:Hive的主要技术改进(Major Technical Advancements in Apache Hive)

http://web.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-14-2.pdf (辅助参考:https://cwiki.apache.org/confluence/display/Hive/Correlation+Optimizer ) Introductionhive的主要不足: 存储和查询计划执行.文中提出了三个主要的改进点 新的文件格式 ORC 查询计划组件优化(关联优化器correlation optimizer 向

apache hive 无法收集stats问题

环境: hive: apache-hive-1.1.0 hadoop:hadoop-2.5.0-cdh5.3.2 hive元数据以及stats使用mysql进行存储. hive stats相关参数如下: hive.stats.autogather:在insert overwrite命令时自动收集统计信息,默认开启true:设置为true hive.stats.dbclass:存储hive临时统计信息的数据库,默认是jdbc:derby:设置为jdbc:mysql hive.stats.jdbcd

apache hive 0.14 beeline 使用注意事项

不要使用local关键字 load data local inpath 是不行 beeline & 方式存在问题,是beeline得bug ,使用nohup sh xxx.sh & 也会出错 beeline -f 执行sql文件,如果报"Error: Error while compiling statement: FAILED: ParseException line 1:814 cannot recognize input near ';' <EOF>' in e

解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

用户使用的sql: select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_0a3a743f0fe3; 下面做不同的测试: 1.beeline -u jdbc:hive2://0.0.0.0:10000 -e "select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_

排查Hive报错:org.apache.hadoop.hive.serde2.SerDeException: java.io.IOException: Start of Array expected

CREATE TABLE json_nested_test ( count string, usage string, pkg map<string,string>, languages array<string>, store map<string,array<map<string,string>>>) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS TE

Hive JDBC:java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous

今天使用JDBC来操作Hive时,首先启动了hive远程服务模式:hiveserver2 &(表示后台运行),然后到eclipse中运行程序时出现错误: java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.182.11:10000/default: Failed to open new session: java.lang.RuntimeException: org.

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址:

hive安装以及hive on spark

spark由于一些链式的操作,spark 2.1目前只支持hive1.2.1 hive 1.2安装 到http://mirror.bit.edu.cn/apache/hive/hive-1.2.1/ 网址下载hive1.2.1的部署包 2.配置系统环境变量/etc/profile export HIVE_HOME=/opt/hive-1.2.1 export PATH=$PATH:$HIVE_HOME/bin source /etc/profile 使刚刚的配置生效 3. 解压 tar -xvf