银烛秋光冷画屏,轻罗小扇扑流萤
天阶夜色凉如水,坐看牵牛织女星
细细品味这首诗,忽然发觉以前学这首诗的意义在于背诵和考试,如今细细品味这首诗,不禁感叹意境真好。天色微凉,牵着手,一起爬山那高高的山头看那天边的牵牛织女星,多么美好的夜晚。古人的生活比现在的生活惬意多了。
最近两天也是在反复思考这个公众号的意义,kk大数据。
作为技术人,不能太急功近利,之前买了一本《Spark内核技术的艺术》,大概700页,这种剖析源码的书,极大的消耗了我的意志力。
毕竟是大牛们写的,想要吃透其中设计的艺术,需要很多的耐心和时间。
当你连 Java 基础的 NIO , AIO 都不懂的时候,更别谈什么 Netty,什么 Spark 的 RPC 了,打算默默的先把这些基础知识搞清楚。
勿忘初心,方得始终 !
工作的这几年,陆陆续续的积累了一些知识,为知笔记竟然有2000篇笔记了,想趁着写公众号的时候,把知识好好的梳理成体系,否则这些笔记也就是默默躺在那,只是一堆二进制文件而已
接下来一段时间,还是从离线仓库入手,系统的分享一下hive的内容。
下面是系列文章的目录
(1)hive系列之简介,安装,beeline和hiveserver2
(2)hive系列之基本操作
(3)hive系列之udf
(4)hive系列之二级分区和动态分区
(5)hive系列之分桶表
(6)hive系列之常用函数
(7)hive系列之系统讲解开窗函数
(8)hive系列之存储格式及常用压缩格式
(9)hive系列之数据仓库建模理论
(10)hive系列之数据仓库建模-维度表和事实表
(11)hive系列之数据仓库建模-退化维度和缓慢变化维
(12)hive系列之常用企业性能优化1
(13)hive系列之常用企业性能优化2
(14)hive系列之常用企业性能优化3
什么是hive
hive由 FaceBook 开源 ,是一个数据仓库基础工具,可以将结构化的数据映射成一张表,能够直接处理我们输入的 SQL 语句(Hive 的 SQL 语法和标准数据库标准的 SQL 略有不同),调用 MapReduce 计算框架完成数据分析操作。
这是官网上的 hive 架构图
我们利用 hive 的 Client (命令行或者jdbc客户端)向hive提交sql命令。
如果是创建表的ddl,Hive 就会通过执行引擎 Driver 将数据表的信息记录在 Metastore 元数据组件中,这个组件通常有一个关系数据库实现,记录表名、字段名、字段类型、关联 HDFS 文件路径等这些数据库的 Meta 信息(元信息)。
如果是分析数据的 DQL (数据查询语句),Driver 就会将该语句提交给自己的编译器 Compiler 进行语法分析、语法解析、语法优化等一系列操作,最后生成一个 MapReduce 执行计划。然后根据执行计划生成一个 MapReduce 作业,提交给 Hadoop MapReduce 计算框架处理。
Hive 的安装
这里并不想花太多篇幅去写怎么安装,安装过程我之前发表在了博客园里:
https://www.cnblogs.com/nicekk/p/9028514.html
beeline 和 hiveserver2
Hiveserver2 是一个服务端接口,使远程客户端可以执行对Hive 的查询并返回。启动 Hiveserver2 后,就可以使用jdbc,odbc,beeline 或者 thrift 方式连接。
beeline 是 Hive 新的客户端命令行工具,会陆续替代掉 hive cli。
如下图连接到hiveserver2服务器上
命令如下:
beeline
!connect jdbc:hive2://hadoop002:10000 hadoop 123456
我们在beeline中执行一个sql查询:
下一篇,是 Hive 的基本操作
数据库相关,表相关,内部表,外部表,分区表,加载到表中,从表中导出数据,和其他一些命令
最后,还是有一点心得体会
Hive 本身的技术架构其实没什么创新,数据库相关的技术和架构已经非常成熟,只要将这些技术架构应用到 MapReduce 上就得到了 Hadoop 大数据仓库 Hive。
但是想到将两种技术嫁接到一起,却是极具创新的,通过嫁接产生出的 Hive 可以极大降低大数据的应用门槛,也使 hadoop 大数据技术得到大规模普及。