大数据平台--Hive入门1

大数据平台–Hive入门1

一.大数据平台以及ETL介绍

1,ETL简介

ETLExtraction-Transformation-Loading,即数据抽取(Extract)转换(Transform),**装载(Load)**的过程,它是构建数据仓库的重要环节。

ETL是将业务系统的数据经过抽取,清洗转换之后加载到数据仓库的过程,目的是将企业中分散,零乱,标准不统一的数据整合到一起,为企业的决策提供分析依据,ETL是BI项目重要的一个环节,通常情况下,在BI项目中ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关系到BI项目的成败。

(1)数据抽取:把不同的数据源数据抓取过来,存到某个地方;

(2)数据清洗:过滤那些不符合要求的数据或者修正数据之后再进行抽取

  • 不完整的数据:比如数据里一些应该有的信息缺失,需要补全后再进行抽取;
  • 错误的数据:比如字符串数据后面有一个回车操作,日期格式不正确,日期越界等,需要修正再抽取;
  • 重复的数据:重复的数据记录的所有字段,需要去重。

(3)数据转换:不一致的数据转换,比如同一个供应商在结算系统的编码是XX001,而在CRM中编码是YY001,统一编码,实现由多种方法:

  • 借助ETL工具(如Oracle的OWB,SQL Server的DTS,SQL Server的SSIS服务,Informatic等等)实现;
  • SQL方式实现;
  • ETL工具和SQL相结合------Hive

借助工具可以快速建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。

SQL的方法是优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。

ETL和SQL结合综合了前二者的优点,会极大地提高ETL的开发速度和效率。

ELK简介

ELK是三个开源软件的缩写,分别表示:Elasticsearch,Lodstash,Kibana,它们都是开源软件。

新增一个FileBeat,他是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上收集日志后传输给Logastash。

Logstash:

主要是用来日志的收集,分析,过滤日志的工具,支持大量的数据获取方式,一般的工作方式为C/S架构,Client端安装在需要收集日志的主机上,Server端负责将收到的各个节点日志进行过滤修改等操作在一并发往elasticsearch上去。

Kibana也是一个开源,免费的工具,kibana可以为Logstash和Elasticsearch提供日志分析友好的Web界面,可以帮助汇总,分析和搜索重要的日志数据。

Filebeat隶属于Beats,目前Beats包含4种工具:

  • Packetbeat:搜集网络流量数据;

  • Topbeat:搜集系统,进程和文件系统级别的CPU和内存使用情况;

  • Filebeat:搜集文件数据;

  • Winlogbeat:搜集Windows事件日志数据。

2,大数据平台概述

大数据平台架构

在这里插入图片描述

大数据系统数据流向图

在这里插入图片描述

大数据平台架构概述

数据抽取Canal/Sqoop(主要解决数据库数据接入问题),还有大量的数据采用Flume解决方案。

数据存储HDFS(文件存储),HBase(K,V存储),kafka(消息存储)。

调度:采用YARN的统一调度以及Kubernetes的基于容器的管理和调度技术。

计算分析MRHIVEStormSparkKylin以及深度学习平台比如CaffeTensorflow等等(flink)。

应用平台:交互分析sql,多维分析:时间,地域等等。

可视化:数据分析tableau,阿里datavhchartsecharts

数据应用就是指数据的业务。

二.Hive概述

  • Hive是一个基于Hadoop文件系统之上的数据仓库架构,他为数据仓库的管理提供了许多功能:数据ETL(抽取,转换和加载)工具,数据存储管理和大型数据集的查询和分析能力。
  • Hive定义了类SQL语言–Hive QL,HQL允许用户进行和SQL相似的操作,它可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,还允许开发人员方便地使用Mapper和Reducer操作,可以将SQL语句转换为MapReduce任务运行,这对MapReduce框架来说是一个强有力的支持。

在这里插入图片描述

Hive体系结构

在这里插入图片描述

用户接口:Client

  • CLI(hive shell),JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive)

元数据:MetaStore

  • 元数据包括:表名,表所属的数据库(默认是default),表的拥有者,列/分区字段,表的类型(是否是外部表,管理表),表的数据所在目录等。
  • 默认存储在自带的derby数据库中,推荐使用采用MySql

Hadoop:使用HDFS进行存储,使用MapReduce进行计算

驱动器(Driver)

1.解析器

  • 将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具完成,比如antlr;对AST进行语法分析,比如表是否存在,字段是否存在,SQL语义是否有误(比如select中被判定为聚合的字段在group by中是否有出现)。

2.编译器:将AST编译成逻辑执行计划;

3.优化器:对逻辑执行计划进行优化;

4.执行器:把逻辑执行计划转换成可以运行的物理计划,对于Hive来说,就是MR/TEZ/Spark;

在这里插入图片描述

  • Hive的数据存储基于Hadoop HDFS
  • Hive没有专门的数据存储格式
  • Hive默认可以直接加载文本文件(TextFile),还支持SequenceFile,RCFile
  • 创建表时,指定Hive的列分隔符和行分隔符,Hive即可解析数据
  • 存储结构主要包括:数据库,文件,表,视图,索引。

三.Hive安装

1.解压安装包

[root@hadoop01 software]# ls
apache-hive-1.2.1-bin.tar.gz  hadoop-2.7.6.tar.gz  jdk-8u211-linux-x64.rpm
[root@hadoop01 software]# tar -zxf apache-hive-1.2.1-bin.tar.gz -C /opt/modules/apache/
[root@hadoop01 software]# ll /opt/modules/apache/
total 8
drwxr-xr-x  8 root  root 4096 Jun  9 09:34 apache-hive-1.2.1-bin
drwxr-xr-x 10 20415  101 4096 Jun  5 13:26 hadoop-2.7.6

2.修改配置文件

[root@hadoop01 conf]# cp hive-env.sh.template hive-env.sh
[root@hadoop01 conf]# vi hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/modules/apache/hadoop-2.7.6

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/modules/apache/hive-1.2.1/conf

3.配置Hive环境变量

[root@hadoop01 hive-1.2.1]# vi /etc/profile
export HIVE_HOME=/opt/modules/apache/hive-1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
[root@hadoop01 hive-1.2.1]# source /etc/profile

4.创建Hive数据仓库存放位置和修改配置文件

[root@hadoop01 conf]# cp hive-default.xml.template hive-default.xml

在HDFS文件系统上创建如下目录

[root@hadoop01 ~]# hdfs dfs -mkdir /tmp
#如果tmp目录已存在就不需要创建了
[root@hadoop01 ~]# hdfs dfs -mkdir -p /user/hive/warehouse
#修改目录的权限
[root@hadoop01 ~]# hdfs dfs -chmod g+w   /tmp
[root@hadoop01 ~]# hdfs dfs -chmod g+w   /user/hive/warehouse

5.启动Hive

[root@hadoop01 conf]# hive

Logging initialized using configuration in jar:file:/opt/modules/apache/hive-1.2.1/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> 

6.hive常用命令

hive> show databases
    > ;
OK
default
Time taken: 0.788 seconds, Fetched: 1 row(s)
hive> use default;
OK
Time taken: 0.051 seconds
hive> show tables;
OK
Time taken: 0.044 seconds
#创建数据库
hive> create database test01;
OK
Time taken: 0.099 seconds
hive> show 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值