2021-01-04

博客园Logo
首页
新闻
博问
专区
闪存
班级

代码改变世界
搜索
注册
登录
返回主页
知了一笑
博客园
首页
新随笔
联系
订阅
管理
数据仓库组件:Hive环境搭建和基础用法

本文源码:GitHub || GitEE

一、Hive基础简介
1、基础描述

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件,Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行,使用成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。

2、组成与架构

用户接口:ClientCLI、JDBC访问Hive、WEBUI浏览器访问Hive。

元数据:Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区以及属性,表的属性(是否为外部表等),表的数据所在目录等。

驱动器:基于解释器、编辑器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。

执行器引擎:ExecutionEngine把逻辑执行计划转换成可以运行的物理计划。

Hadoop底层:基于HDFS进行存储,使用MapReduce进行计算,基于Yarn的调度机制。

Hive收到给客户端发送的交互请求,接收到操作指令(SQL),并将指令翻译成MapReduce,提交到Hadoop中执行,最后将执行结果输出到客户端。

二、Hive环境安装
1、准备安装包

hive-1.2,依赖Hadoop集群环境,位置放在hop01服务上。

2、解压重命名

tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin/ hive1.2
3、修改配置文件

创建配置文件

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# mv hive-env.sh.template hive-env.sh
添加内容

[root@hop01 conf]# vim hive-env.sh
export HADOOP_HOME=/opt/hadoop2.7
export HIVE_CONF_DIR=/opt/hive1.2/conf
配置内容一个是Hadoop路径,和hive配置文件路径。

4、Hadoop配置

首先启动hdfs和yarn;然后在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改赋予权限。

bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /user/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse
5、启动Hive

[root@hop01 hive1.2]# bin/hive
6、基础操作

查看数据库

hive> show databases ;
选择数据库

hive> use default;
查看数据表

hive> show tables;
创建数据库使用

hive> create database mytestdb;
hive> show databases ;
default
mytestdb
hive> use mytestdb;
创建表

create table hv_user (id int, name string, age int);
查看表结构

hive> desc hv_user;
id int
name string
age int
添加表数据

insert into hv_user values (1, “test-user”, 23);
查询表数据

hive> select * from hv_user ;
注意:这里通过对查询日志的观察,明显看出Hive执行的流程。

删除表

hive> drop table hv_user ;
退出Hive

hive> quit;
查看Hadoop目录

hadoop fs -ls /user/hive/warehouse

/user/hive/warehouse/mytestdb.db
通过Hive创建的数据库和数据存储在HDFS上。

三、整合MySQL5.7环境
这里默认安装好MySQL5.7的版本,并配置好相关登录账号,配置root用户的Host为%模式。

1、上传MySQL驱动包

将MySQL驱动依赖包上传到hive安装目录的lib目录下。

[root@hop01 lib]# pwd
/opt/hive1.2/lib
[root@hop01 lib]# ll
mysql-connector-java-5.1.27-bin.jar
2、创建hive-site配置

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# touch hive-site.xml
[root@hop01 conf]# vim hive-site.xml
3、配置MySQL存储

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> javax.jdo.option.ConnectionURL jdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>123456</value>
      <description>password to use against metastore database</description>
    </property>
配置完成后,依次重启MySQL、hadoop、hive环境,查看MySQL数据库信息,多了metastore数据库和相关表。

4、后台启动hiveserver2

[root@hop01 hive1.2]# bin/hiveserver2 &
5、Jdbc连接测试

[root@hop01 hive1.2]# bin/beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://hop01:10000
Connecting to jdbc:hive2://hop01:10000
Enter username for jdbc:hive2://hop01:10000: hiveroot (账户回车)
Enter password for jdbc:hive2://hop01:10000: ****** (密码123456回车)
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
0: jdbc:hive2://hop01:10000> show databases;
±---------------±-+
| database_name |
±---------------±-+
| default |
±---------------±-+
四、高级查询语法
1、基础函数

select count(*) count_user from hv_user;
select sum(age) sum_age from hv_user;
select min(age) min_age,max(age) max_age from hv_user;
±---------±---------±-+
| min_age | max_age |
±---------±---------±-+
| 23 | 25 |
±---------±---------±-+
2、条件查询语句

select * from hv_user where name=‘test-user’ limit 1;
±------------±--------------±-------------±-+
| hv_user.id | hv_user.name | hv_user.age |
±------------±--------------±-------------±-+
| 1 | test-user | 23 |
±------------±--------------±-------------±-+

select * from hv_user where id>1 AND name like ‘dev%’;
±------------±--------------±-------------±-+
| hv_user.id | hv_user.name | hv_user.age |
±------------±--------------±-------------±-+
| 2 | dev-user | 25 |
±------------±--------------±-------------±-+

select count(*) count_name,name from hv_user group by name;
±------------±-----------±-+
| count_name | name |
±------------±-----------±-+
| 1 | dev-user |
| 1 | test-user |
±------------±-----------±-+
3、连接查询

select t1.,t2. from hv_user t1 join hv_dept t2 on t1.id=t2.dp_id;
±-------±-----------±--------±----------±------------±-+
| t1.id | t1.name | t1.age | t2.dp_id | t2.dp_name |
±-------±-----------±--------±----------±------------±-+
| 1 | test-user | 23 | 1 | 技术部 |
±-------±-----------±--------±----------±------------±-+
五、源代码地址
GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent
推荐阅读:编程体系整理

序号 项目名称 GitHub地址 GitEE地址 推荐指数
01 Java描述设计模式,算法,数据结构 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
02 Java基础、并发、面向对象、Web开发 GitHub·点这里 GitEE·点这里 ☆☆☆☆
03 SpringCloud微服务基础组件案例详解 GitHub·点这里 GitEE·点这里 ☆☆☆
04 SpringCloud微服务架构实战综合案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
05 SpringBoot框架基础应用入门到进阶 GitHub·点这里 GitEE·点这里 ☆☆☆☆
06 SpringBoot框架整合开发常用中间件 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
07 数据管理、分布式、架构设计基础案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
08 大数据系列、存储、组件、计算等框架 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
分类: 大数据.计算.分析
标签: 数仓, 数据仓库, hive
好文要顶 关注我 收藏该文
知了一笑
关注 - 0
粉丝 - 69
+加关注
0 0
« 上一篇: 数据应用场景之标签管理体系
posted @ 2021-01-04 08:00 知了一笑 阅读(21) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
登录后才能发表评论,立即 登录 或 注册, 访问 网站首页
【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】有你助力,更好为你——博客园用户消费观调查,附带小惊喜!
【推荐】AWS携手博客园为开发者送福利,注册立享12个月免费套餐
【推荐】七牛云新老用户同享 1 分钱抢 CDN 1TB流量大礼包!
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【推荐】新一代 NoSQL 数据库,Aerospike专区新鲜入驻

相关博文:
· HiveFunctions
· hive问题
· Hive调优
· Hive-2.3.6安装
· spark整合hive
» 更多推荐…

最新 IT 新闻:
· Google Chrome浏览器地址栏即将变得更安全、更快速
· 百度地图推出“疫情小区”搜索功能
· 我国量子存储器取得重大进展!世界首次实现“按需读取”
· 2021「蛋壳」要彻底碎了?CFO 等高管相继离职,上市不满一年深陷暴雷风波
· 依图CTO颜水成被曝离职,已加入东南亚电商独角兽Shopee
» 更多新闻…
公告
微信公众号:知了一笑

【 GitHub】 【 我的码云】
【 知乎专栏】 【 简书社区】
我的微信号:知了一笑

编程体系:Java进阶之路
《设计模式,算法,数据结构》
《Java基础,多线程,JavaWeb开发》
《SpringMvcBoot框架.微服务架构》
《数据管理,分布式架构,解决方案》
《大数据技术体系,组件,实时计算》
昵称: 知了一笑
园龄: 1年7个月
粉丝: 69
关注: 0
+加关注
搜索

谷歌搜索
随笔分类
Java编程 核心基础(30)
Linux 系统.运维(10)
Spring.Boot.Cloud(72)
大数据.计算.分析(16)
模式.结构.算法(32)
数据库.存储.管理(10)
业务.架构.方案(32)
阅读排行榜

  1. SpringBoot2 整合 Drools规则引擎,实现高效的业务规则(17106)
  2. SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析(8835)
  3. SpringBoot2 整合Nacos组件,环境搭建和入门案例详解(5486)
  4. SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用(5465)
  5. SpringBoot2 配置多数据源,整合MybatisPlus增强插件(5439)
    评论排行榜
  6. SpringBoot2.0 整合 RocketMQ ,实现请求异步处理(7)
  7. 结构与算法(03):单向链表和双向链表(2)
  8. JavaEE基础(03):Http请求详解,握手挥手流程简介(2)
  9. SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析(2)
  10. SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题(2)
    推荐排行榜
  11. 架构设计基础:单服务.集群.分布式,基本区别和联系(4)
  12. JavaEE基础(06):Servlet整合C3P0数据库连接池(3)
  13. 大数据简介,技术体系分类整理(2)
  14. 架构设计 | 基于消息中间件,图解柔性事务一致性(2)
  15. 架构设计 | 缓存管理模式,监控和内存回收策略(2)
    Copyright © 2021 知了一笑
    Powered by .NET 5.0 on Kubernetes
已标记关键词 清除标记
相关推荐
<p> <span style="color:#337FE5;"><strong>【为什么还需要学习C++?】</strong></span> </p> <p style="margin-left:0cm;"> 你是否接触很多语言,但从来没有了解过编程语言的本质? </p> <p style="margin-left:0cm;text-align:start;"> 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? </p> <p style="margin-left:0cm;text-align:start;"> 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? </p> <p style="margin-left:0cm;text-align:start;">   </p> <p style="margin-left:0cm;text-align:start;"> 那么C++就是你个人能力提升,职业之路进阶的不二之选。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;"> <strong><span style="color:#337FE5;">【课程特色】</span></strong> </p> <p style="margin-left:0cm;text-align:start;"> 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 </p> <p style="margin-left:0cm;text-align:start;"> 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 </p> <p style="margin-left:0cm;text-align:start;"> 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p class="ql-long-24357476"> <span style="color:#337FE5;"><strong>【学完后我将达到什么水平?】</strong></span> </p> <p class="ql-long-24357476"> 1.对C++的各个知识能够熟练配置、开发、部署; </p> <p class="ql-long-24357476"> 2.吊打一切关于C++的笔试面试题; </p> <p class="ql-long-24357476"> 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 </p> <p class="MsoNoSpacing" style="margin-left:18pt;"> <br /> </p> <div> <br /> </div> <p> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#337FE5;"><strong>【面向人群】</strong></span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">1.希望一站式快速入门的C++初学者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">2.希望快速学习 C++、掌握编程要义、修炼内功的开发者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">3.有志于挑战更高级的开发项目,成为资深开发的工程师。</span> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p> <br /> </p> <p> <span style="color:#337FE5;"><strong>【课程设计】</strong></span> </p> <p> 本课程包含3大模块 </p> <p> <strong>基础篇</strong><br /> 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 </p> <p> <br /> <strong>进阶篇</strong><br /> 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 </p> <p> <br /> <strong>提升篇:</strong><br /> 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。 </p> <p> <img src="https://img-bss.csdnimg.cn/202007091130239667.png" alt="" /> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页