第55课:60分钟内从零起步驾驭Hive实战学习笔记

22 篇文章 0 订阅

55课:60分钟内从零起步驾驭Hive实战学习笔记

本期内容:

1. Hive本质解析

2. Hive安装实战

3. 使用Hive操作搜索引擎数据实战

 

SparkSQL前身是SharkShark强烈依赖于HiveSpark原来没有做SQL多维度数据查询工具,后来开发了SharkShark依赖于Hive的解释引擎,部分在Spark中运行,还有一部分在Hadoop中运行。所以讲SparkSQL必须讲Hive

一.Hive的本质:

1. Hive是分布式数据仓库,同时又是查询引擎,所以SparkSQL取代的只是Hives的查询引擎,在企业实际生产环境下,Hive+SparkSQL是目前最为经典的数据分析组合。

2. Hive本身就是一个简单单机版本的软件,主要负责:

A) 把HQL翻译成Mapper(s)-Reducer-Mapper(s)的代码,并且可能产生很多MapReduceJOB

B)把生成的MapReduce代码及相关资源打包成jar并发布到Hadoop集群中运行(这一切都是自动的)

3.Hive本身的架构如下所示:

 

可以通过CLI命令终端)、JDBC/ODBCWeb GUI访问Hive

JavaEE.net程序可以通过Hive处理,再把处理的结果展示给用户。

也可以直接通过Web页面操作Hive

※ Hive本身只是一个单机版本的的软件,怎么访问HDFS的呢?

=> HiveTable的方式插入数据、检索数据等,这就需要知道数据放在HDFS的什么地方以及什么地方属于什么数据,Metastore就是保存这些元数据信息的。Hive通过访问元数据信息再去访问HDFS上的数据。

可以看出HDFS不是一个真实的文件系统,是虚拟的,是逻辑上的,HDFS只是一套软件而已,它是管理不同机器上的数据的,所以需要NameNode去管理元数据。DataNode去管理数据。

Hive通过MetastoreNameNode打交道。

 

二.Hive安装和配置实战

Spark1.6.1SparkSQL可以指定具体的Hive的版本。

1. 从apache官网下载hive-1.2.1,并解压到/home/richard目录。

2. 配置.bashrc,追加以下内容:

export HIVE_HOME=/home/richard/hive-1.2.1

export HIVE_CONF_DIR=/$HIVE_HOME/conf

export PATH=$PATH:$HIVE_HOME/bin

3. 进入/home/richard/hive-1.2.1/conf目录,生成hive-env.sh:

cp hive-env.sh.template hive-env.sh

再生成hive-site.xml,并配置如下:

export HADOOP_HOME=/home/richard/hadoop-2.6.0

export HIVE_HOME=/home/richard/hive-1.2.1

export HIVE_CONF_DIR=/$HIVE_HOME/conf

cp hive-default.xml.template hive-site.xml

Hive默认情况下放元数据的数据库是Derby,遗憾的是Derby是单用户,所以在生产环境下一般会采用支持多用户的数据库来进行MetaStore,且进行Master-Slaves主从读写分离和备份(一般Master节点负责写数据,Slaves节点负责读数据)。最常用的是MySQL

hive-site.xml配置如下:

 

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://slq1:3306/hive?createDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>123456</value>

</property>

<property>

<name>hive.metastore.dir</name>

<value>/user/hive/warehouse</value>

</property>

</configuration>

 

Hive中的DataBase和表其实就是HDFS上的目录和简单的文本文件。简单的文本文件中有几列数据,每列数据的类型无法直接从文本文件中得知。但当数据放入Hive中,Hive就把元数据放入Mysql中了,这样就可以基于数据的表进行查询了。

4. MYSQL的安装和配置

root用户下执行yum -y install mysql-server即可自动安装

执行rpm -qa mysql-server可以查看是否安装成功及安装的mysql版本。

5. Hive的表有两种基本类型:一种是内部表(这种表数据属于Hive本身,即如果原来的数据在HDFS的其他地方,此时数据会通过HDFS移动到Hive所在目录,如果删除Hive中的该表的话数据和元数据均会被删除),一种是外部表(这种表数据不属于Hive数据仓库,元数据中会表达具体数据在哪里,使用时和内部表的使用一样,只是如果通过Hive去删除的话,删除的只是元数据,并没有删除数据本身)

三. 使用Hive分析搜索数据

启动HDFS/Yarn。注意如果要使用Hive进行查询就需要启动Yarn

启动Hive

通过show databases;可以查看数据库。默认database只有default

creeate database hive;

use hive;

create table person(name String,age int);

insert into person values(‘richard’,’34’);

select * from person;即可查询。

 

 




以上内容是王家林老师DT大数据梦工厂《 IMF传奇行动》第55课的学习笔记。
王家林老师是Spark、Flink、DockerAndroid技术中国区布道师。Spark亚太研究院院长和首席专家,DT大数据梦工厂创始人,Android软硬整合源码级专家,英语发音魔术师,健身狂热爱好者。

微信公众账号:DT_Spark

联系邮箱18610086859@126.com 

电话:18610086859

QQ:1740415547

微信号:18610086859  

新浪微博:ilovepains


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值