hadoop学习笔记--9.hive初识

Hive数据仓库详解
本文介绍了Hive作为基于Hadoop的数据仓库基础架构的功能与特点,包括其提供的类SQL查询功能,适用于大规模数据的存储、查询与分析。文章还探讨了Hive的应用场景,如日志分析、多维度数据分析及海量结构化数据的离线分析。
一、hive基本介绍


  Hive 是建立在 Hadoop 基础上的数据仓库基础构架,可以将结构化的数据文件映射为一张数据库表。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
hive由facebook开源,最初用于解决海量结构化的日志数据统计问题;数据计算使用MR,数据存储使用HDFS(可以与hbase集合),运行在yarn之上。可认为是一个HQL->MR的语言翻译器。

数据仓库
  数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制,简而言之,数据仓库是用来做查询分析的数据库,基本不用来做插入,修改,删除。

二、hive应用场景

  1. 日志分析

      统计网站一个时间段内的pv、 uv
       多维度数据分析、
       大部分互联网公司使用Hive进行日志分析,包括百度、淘宝等

  2. 海量结构化数据离线分析

  3. 低成本进行数据分析(不直接编写MR)

  4. Hive的执行延迟比较高,因此hive常用于数据分析的,对实时性要求不高的场合;

  5. Hive优势在于处理大数据,对于处理小数据没有优势。

三、hive特点


不足

  1.  Hive的HQL表达的能力有限

     迭代式算法无法表达
     有些复杂运算用HQL不易表达

  2.  Hive效率不高

     Hive自动生成MapReduce作业,通常不够智能
     HQL调优困难,粒度较粗
     可控性差

优势
   操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手
   避免了去写MapReduce,减少开发人员的学习成本
   统一的元数据管理,可与impala/spark等共享元数据
   易扩展(HDFS+MapReduce:可以扩展集群规模;支持自定义函数)

四、hive系统架构


这里写图片描述

客户端组件
  1. 命令行接口(CLI)(hive shell)(最常用)
  2. Web界面
  3. hive应用(JDBC/ODBC/Thrift)(java访问hive)

驱动程序
  该组件包括Complier、Optimizer和Executor,它的作用是将我们写的HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的mapreduce计算框架。

元数据存储
  元数据服务组件,这个组件存储hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby、mysql。元数据对于hive十分重要,因此hive支持把metastore服务独立出来,安装到远程的服务器集群里,从而解耦hive服务和metastore服务,保证hive运行的健壮性。默认存储在自带的数据库derby中,线上使用时一般换为MySQL。元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;
  
Hadoop服务器

[root@hadoop01 ~]# ps -ef | grep HiveServer2 | grep -v grep root 15604 11956 6 22:32 pts/1 00:00:58 /export/servers/jdk1.8.0_161/bin/java -Dproc_jar -Dorg.slf4j.simpleLogger.defaultLogLevel=info -Dproc_hiveserver2 -Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/export/servers/apache-hive-3.1.3-bin/conf/parquet-logging.properties -Dyarn.log.dir=/export/servers/hadoop-3.3.5/logs -Dyarn.log.file=hadoop.log -Dyarn.home.dir=/export/servers/hadoop-3.3.5 -Dyarn.root.logger=INFO,console -Djava.library.path=/export/servers/hadoop-3.3.5/lib/native -Xmx256m -Dhadoop.log.dir=/export/servers/hadoop-3.3.5/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/export/servers/hadoop-3.3.5 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /export/servers/apache-hive-3.1.3-bin/lib/hive-service-3.1.3.jar org.apache.hive.service.server.HiveServer2 root 15828 10065 2 22:35 pts/0 00:00:15 /export/servers/jdk1.8.0_161/bin/java -Dproc_jar -Dorg.slf4j.simpleLogger.defaultLogLevel=info -Dproc_hiveserver2 -Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/export/servers/apache-hive-3.1.3-bin/conf/parquet-logging.properties -Dyarn.log.dir=/export/servers/hadoop-3.3.5/logs -Dyarn.log.file=hadoop.log -Dyarn.home.dir=/export/servers/hadoop-3.3.5 -Dyarn.root.logger=INFO,console -Djava.library.path=/export/servers/hadoop-3.3.5/lib/native -Xmx256m -Dhadoop.log.dir=/export/servers/hadoop-3.3.5/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/export/servers/hadoop-3.3.5 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /export/servers/apache-hive-3.1.3-bin/lib/hive-service-3.1.3.jar org.apache.hive.service.server.HiveServer2 root 16374 11956 14 22:41 pts/1 00:00:59 /export/servers/jdk1.8.0_161/bin/java -Dproc_jar -Dorg.slf4j.simpleLogger.defaultLogLevel=info -Dproc_hiveserver2 -Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/export/servers/apache-hive-3.1.3-bin/conf/parquet-logging.properties -Djline.terminal=jline.UnsupportedTerminal -Dyarn.log.dir=/export/servers/hadoop-3.3.5/logs -Dyarn.log.file=hadoop.log -Dyarn.home.dir=/export/servers/hadoop-3.3.5 -Dyarn.root.logger=INFO,console -Djava.library.path=/export/servers/hadoop-3.3.5/lib/native -Xmx256m -Dhadoop.log.dir=/export/servers/hadoop-3.3.5/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/export/servers/hadoop-3.3.5 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /export/servers/apache-hive-3.1.3-bin/lib/hive-service-3.1.3.jar org.apache.hive.service.server.HiveServer2 [root@hadoop01 ~]# [root@hadoop01 ~]# # 检查端口监听状态 (10000/10001) [root@hadoop01 ~]# sudo netstat -tulnp | grep -E '10000|10001' tcp6 0 0 :::10001 :::* LISTEN 16374/java [root@hadoop01 ~]#
最新发布
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值