1.hive数据分析框架,通过写类sql也就是hql来处理分析数据,底层是用Mapreduce方法。
什么叫hql?
HQL是面向对象的查询语句,HQL是映射配置的持久化类及其属性,而SQL则是数据库表;
HQL语句的形式;
select...from...where...group by...having...order by... 看上去形式跟SQL,所差无几,但重点在于红色字体的from字句,正是它使得HQL更加灵活简便;
数据存储位置不同,hive的数据存储在HDFS,而数据库存在本地。
hadoop分布式文件系统
1、hdfs是一个分布式文件系统,简单理解就是多台机器组成的一个文件系统。
2、hdfs中有3个重要的模块,client对外提供统一操作接口,DataNode真正存储数据,NameNode协调和管理数据,是一个典型的master-slave架构。
3、hdfs会对大文件进行切块,并且每个切块会存储备份,保证数据的高可用,适合存储大数据。
4、NameNode通过fsimage和editlog来实现数据恢复和高可用。
5、hdfs不适用于大量小文件存储,不支持并发写入,不支持文件随机修改,查询效率大概在秒级。
1、什么是mapreduce
首先让我们来重温一下 hadoop 的四大组件:
HDFS:分布式存储系统
MapReduce:分布式计算系统
YARN: hadoop 的资源调度系统
Common: 以上三大组件的底层支撑组件,主要提供基础工具包和 RPC 框架等
简单来说,hive是个数据分析框架----你写完sql----他会直接转成hql然后到hadoop相当于一个软件,核心有两部分组成,mapreduce用来计算的,hdfs是用来存储的。到底是怎么计算的呢?以前是把任务给一个机器去做,现在是把任务给一个集群去做,先map 然后reduce集群起来。
公司架构
埋点——nginx——flume(日志采集工具)——kafka——flink——spark——hive——mapreduce这样
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,实时读取服务器磁盘中的数据,将数据写入到HDFS
Kafka是一个分布式的基于发布/订阅模式的消息队列,作用 数据缓冲,数据传输,典型作用 在数据高峰期时,下游处理不及时时,可以调大kafka的内存参数 缓冲,增加分区数、消费者数 提高并行度