1.1 Hive简介

1.1.1 什么是Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

1.1.2 为什么使用Hive

  • 直接使用hadoop所面临的问题

人员学习成本太高

项目周期要求太短

MapReduce实现复杂查询逻辑开发难度太大

  • 为什么要使用Hive

操作接口采用类SQL语法,提供快速开发的能力。

避免了去写MapReduce,减少开发人员的学习成本。

扩展功能很方便。

1.1.3 Hive的特点

  • 可扩展

Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

  • 延展性

Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

  • 容错

良好的容错性,节点出现问题SQL仍可完成执行。

1.2 Hive架构

1.2.1 架构图

Jobtracker是hadoop1.x中的组件,它的功能相当于: Resourcemanager+AppMaster

TaskTracker 相当于: Nodemanager + yarnchild

1.2.2 基本组成

  • 用户接口:包括 CLI、JDBC/ODBC、WebGUI。
  • 元数据存储:通常是存储在关系数据库如 mysql , derby中。
  • 解释器、编译器、优化器、执行器。
  • 用户接口主要由三个:CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
  • 元数据存储:Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
  • 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。

1.2.3 各组件的基本功能

1.3 Hive与Hadoop的关系

Hive利用HDFS存储数据,利用MapReduce查询数据

1.4 Hive与传统数据库对比

总结:hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析

1.5 Hive的数据存储

1、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)

2、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

3、Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket。

² db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹

² table:在hdfs中表现所属db目录下一个文件夹

² external table:与table类似,不过其数据存放位置可以在任意指定路径

² partition:在hdfs中表现为table目录下的子目录

² bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件

1.6 HIVE的安装部署

1.6.1 安装

单机版:

元数据库mysql版:

1.6.2 使用方式

Hive交互shell

bin/hive

Hive thrift服务

启动方式,(假如是在hadoop01上):

启动为前台:bin/hiveserver2

启动为后台:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

启动成功后,可以在别的节点上用beeline去连接

v 方式(1)

hive/bin/beeline 回车,进入beeline的命令界面

输入命令连接hiveserver2

beeline> !connect jdbc:hive2//mini1:10000

(hadoop01是hiveserver2所启动的那台主机名,端口默认是10000)

v 方式(2)

或者启动就连接:

bin/beeline -u jdbc:hive2://mini1:10000 -n hadoop

接下来就可以做正常sql查询了

Hive命令

[hadoop@hdp-node-02 ~]$ hive -e ‘sql’

hive读取hdfs存放文件_Hive基本概念相关推荐

  1. hive读取hdfs存放文件_数据获取层之Flume快速入门(一) 实时监控单个追加文件

    实时监控 Hive 日志,并上传到 HDFS 中 实现步骤 1.Flume 要想将数据输出到 HDFS,必须持有 Hadoop 相关 jar 包 commons-configuration-1.6.j ...

  2. hive 导出json格式 文件_Hive 系列 之 基本操作合集

    下面是本课程概览: (1)hive系列之简介,安装,beeline和hiveserver2 (2)hive系列之基本操作 (3)hive系列之udf (4)hive系列之二级分区和动态分区 (5)hi ...

  3. Java读取Hdfs的文件数据出现乱码的解决方案和办法

    使用JAVA api读取HDFS文件乱码踩坑 想写一个读取HFDS上的部分文件数据做预览的接口,根据网上的博客实现后,发现有时读取信息会出现乱码,例如读取一个csv时,字符串之间被逗号分割 英文字符串 ...

  4. hive 导出json格式 文件_hive支持json格式的数据

    Hive 支持完全 json 格式的数据  现有 json 格式的数据 test.txt ,如下 {"name":"zhang","age" ...

  5. hive 导出json格式 文件_hive中创建hive-json格式的表及查询

    在hive中对于json的数据格式,可以使用get_json_object或json_tuple先解析然后查询. 也可以直接在hive中创建json格式的表结构,这样就可以直接查询,实战如下(hive ...

  6. hive 导出json格式 文件_hive存储json格式文件

    hive从0.12版本以后就开始自身支持json文件的格式了 1.文件格式 下面是测试用的文件预览格式,我将其存储为jsonTest.json文件,放在了/root目录下 {"_locati ...

  7. java 读取hdfs上的文件内容

    用java读取hdfs的文件 直接撸代码: package com.nature.base.util;import com.nature.component.process.vo.DebugDataR ...

  8. pyspark —— spark dataframe 从hdfs读写文件:按照指定文件格式读写文件(读写csv、json、text文件,读取hive表,读取MySQL表)、按照指定分隔符读写文件

    spark有3种数据结构--RDD.DataFrame.DataSet.这里展示的文件读写方式,都是针对dataFrame数据结构的,也就是文件读进来之后,是一个spark dataFrame. 0. ...

  9. hadoop读取mysql数据_Pyspark连接mysql、hive、hdfs 实例展示

    本文展示pyspark与mysql.hive.hdfs的连接实例.一是为了纪念:终于走过n个坑,自己搭配好本地hadoop环境:一是为了让还不会pyspark的人有个初步的印象,毕竟数据分析师除了会使 ...

最新文章

  1. 获取VirtualBox COM对象失败,Unable to start the virtual device
  2. 11-分步查询懒加载
  3. 如何用纯 CSS 创作一个文本淡入淡出的 loader 动画
  4. Web Service 缓存
  5. 深入解读Flink资源管理机制
  6. SQL Server流程介绍
  7. 如何用matlab画正态分布曲线
  8. RedHat Linux下获取snmp信息不全的解决办法
  9. win11错误代码0xc1900101怎么解决 windows11错误代码0xc1900101的解决方法
  10. 第一节 如何用Go实现单链表
  11. Oracle 数据库用户表大小分析
  12. Hello World with Ant
  13. UWP 应用通知Notifications
  14. 如何将nupkg文件安装到VS2017
  15. 微信小程序项目源码在线考试系统+后台含论文+PPT+源码
  16. linux office 永中,永中Office Linux版
  17. pfSense安装和配置pfBlockerNg
  18. 这可能是介绍 ZooKeeper 最好的文章了
  19. 联想笔记本一键还原出现 “系统分区结构发生改变,无法进行恢复操作”怎样处理。
  20. 中国AI觉醒 阿里王坚:云智能将成为大趋势

热门文章

  1. 【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(kruskal)
  2. DEV—【GridControl添加按钮列】
  3. 轻松进行iPad Safari设置
  4. ios开发学习--列表(Table)效果源码分享--系列教程4
  5. httpd-2.4.x 版本客户端访问控制
  6. laraver 用户认证auth、数据迁移和填充
  7. Azure Redis 系列之 Azure Redis部署
  8. IP管理提高业务网络安全性的3种方式——Vecloud
  9. docker远程访问TLS证书认证shell
  10. 取得前九条之后的数据