t

thatdaniel

V1

2022/10/10阅读:13主题:默认主题

学习笔记 - Hadoop-Hive 介绍

学习笔记 - Hadoop-Hive 介绍

1 背景

当前用户数据都是以“亿”为单位进行考量,传统数据库无法满足快速增长的海量数据存储需求,其计算和处理能力也大大不足。数据仓库有分布式存储与处理能力,将各种数据源整合集成到统一的数据中心,防止数据在传递过程中格式参差不齐,解决数据壁垒。常见的数据仓库产品如下:

后面的学习主要还是围绕Hadoop生态圈-hive。数据量越大,其价值力度越低,要从海量的数据中挖掘出有效信息,正是数据分析师的价值所在。

2 Hadoop

2.1 分布式存储HDFS

作用:将文件切成固定大小(默认为128M)备份存储到集群的多台集群上(默认额外备份两份),并对外提供统一接口。

如:对129M的文件,切成128+1M,再额外存储在另外两个集群上面;

Namenode对数据进行管理;DataNode存储数据(会做额外备份,默认两份),同步给NameNode当前数据可用;secondaryNameNode,对NameNode进行备份,帮助快速恢复数据;

2.2 分布式计算MapReduce

简单举例说明MapReduce的计算原理,如:

Input (内容)→ spliting (拆分运算)→ Mapping(分开后,各自计算,Shulffing,得到分布式结果)→ Reducing(合,汇总)→Final Result

分布式计算:如129M的文件,存在不同的集群上面,和同时进行计算,然后进行整合;

向数据靠拢:MapReduce,将计算代码分发到DataNode之后,数据会执行代码,不用把数据都整合在一起再执行代码;

JobTracker监控:通过心跳机制进行监控,做负载均衡;

2.3 数仓工具Hive

Hive是Facebook为了解决海量日志数据的统计分析而开发的基于Hadoop的一个数据仓库工具(后来开 源给了Apache软件基金会)。

Hive 本身并不支持数据存储和处理,只是一个面向用户的编程接口;

Hive 依赖分布式文件系统HDFS存储数据;

Hive 依赖分布式并行计算模型MapReduce 处理数据;

Hive借鉴SQL语言设计了新的查询语言HiveQL;

Hive 工具原理:

示例语句: select uid,gender from user where gender = '1';

HDFS客户端拿到代码后,NameNode 识别出user表,分布计算程序代码,得到结果后进行一次where的筛选,然后进行reducing汇总,输出结果。

2.4 数仓分层

数据分层的好处:

清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解

减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算

统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径

复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题(比如,可以减少SQL子查询的费力度)

通用的数据分层设计:

分层示例参考文章:

https://blog.csdn.net/lightupworld/article/details/108716552

3. Hue 环境使用

Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡 献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。

通过使用Hue,可以在浏览器端的Web控制台上与Hadoop集群进行交互,来分析处理数据,例如操作 HDFS上的数据,运行MapReduce Job,执行Hive的HQL语句,浏览HBase数据库等等(相当于Navicat,优点是不用安装,相当于单机版Navicat)

访问网站: http://106.75.255.77:8000/

分类:

后端

标签:

后端

作者介绍

t
thatdaniel
V1