Hive数据库:嵌入、本地、远程全攻略(上)

Hive分布式数据仓库工具

关系型数据库

建立在关系模型之上的数据库称为关系型数据库(关系模型是由埃德加·科德于1970年提出的),关系型数据库借助集合代数等数学概念处理数据库中的数据。数据查询语言SOL是基于关系型数据库的语言,能够对关系型数据库中的数据进行检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束3个部分组成。当前主流的关系型数据库有Oracle、SOL Server、Access.MySQL等。

图1-1 Hive图

关系数据库的瓶颈

(1)高并发读写需求

大型网站中用户的并发性会非常高,对于传统关系型数据库来说,硬盘I/O(读写操作)是一个很大的瓶颈。

海量数据的高效率读写

在信息时代飞速发展的情况下,而关系型数据库查询一张包含海量数据的表的效率是非常低的。

(2)高扩展和高可用性

在基于Web的结构中,数据库的横向扩展是非常困难的当其个应用系统的用户量和访问量剧增时,传统数据库无法添加更多的硬件或服冬节占来扩展其性能和负载能力。

Hive分布式数据仓库工具的概述

(1)Hive简介

Hive是基于 Hadoop的一个类关系型数据库的数据仓库工具,能够将结构化数据文件映射为数据库表并提供完整的查询功能。Hive定义了简单的类SQL查询语言HiveQL或HQL,它使熟悉 SQL的用户查询数据更加方便Hive的学习成本低,不需要专门开发mapReduce应用就可以通过类SQL语句快速实现 MapReduce的统计,能够对数据仓库进高效的数据统计分析。

(2)组件

服务端组件

Driver: 该组件包括Complier Optimizer 和Executor,能将用户编写的HQL语句进行编译解析、生成执行计划,然后调用MapReduce进行数据分析。

Metastore: 元数据服务组件,用来存储Hive元数据,因此Hive能够把Metastore服务分离并安装到远程集群,做到降低Hive服务与Metastore服务的耦合度,保证Hive运行

Thrift Server: Thrift是Facebook旗下的软件框架,能够进行跨语言服务的开发,Hive集成了该服务,支持不同语言调用Hive接口。

客户端组件

CLI:Command Line Interface,命令行接口。

Thrift客户端: Hive架构中多数客户端接口是建立在Thrift之上的,包括JDBC和ODBC接口

Web GUI: Hive提供了通过网页访问Hive服务的服务,对应Hive的HWI组件。

(3)Hive特性

Hive作为Hadoop的基础数询和分析。Hive提供了-系列数据提取、转化、加载的工具。Hive 定义了类SQL的查询数据仓库工具,可以对存储在Hadoop中的大规模数据进行查询HiveQL或HQL,它使熟悉SQL的用户查询数据更方便。同时,HiveQL允许开发者通过自定义Mapper和Reducer来完成自带Mapper和Reducer无法完成的分析工作

(4)应用场景

因为hive是基于Hadoop框架的仓库数据工具,Hadoop提交作业又有较大的时间延迟,导致hive不适合做低延迟的应用

(5)Hive中使用MySQL的原因

MySQL关系型数据库管理系统由瑞典MySQL AB公司开发,目前属于甲骨文公司旗下。Hive内部对MySQL提供了很好的支持并提供了类SQL查询语言(即HiveQL或HQL),它允许能够熟练使用SQL查询的用户对数据进行查询。同时也允许能够熟练使用MapReduce的开发者通过开发自定义Mapper和Reducer来处理内建的Mapper和Reducer MySQL支持FreeBSD、Linux、MAC、Windows等多种操作系统,Hive数据仓库工具借助MySQL数据库进行文件存储主要基于以下几点。

➢数据较为安全。

➢使用便捷。

➢多语言支持: MySQL为C、C++、Python、JAVA、Perl、PHP、Ruby等多种编程语言提供了API,访问和使用方便。

➢移植性好:MySQL 是跨平台的,安装简单小巧。

➢支持大量数据查询和存储:MySQL可以承受大量的并发访问。

(6)Hive数据仓库部署

Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景。

(1)内嵌模式(元数据保村在内嵌的数据库derby种,允许一个会话链接,尝试多个会话链接时会报错),此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test(单位测试)

(2)本地模式(本地安装mysql 替代derby存储元数据)

通过网络连接到一个数据库中,是最经常使用到的模式。

(3)远程模式(远程安装mysql 替代derby存储元数据)

远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库

1.内嵌模式的安装与配置:
该模式下ConnectionURL指向hive内嵌数据库derby,在master下
(1)配置hive-site.xml:
vi  hive-site.xml 

<property>  <name>javax.jdo.option.ConnectionURL</name>  <value>jdbc:derby:;databaseName=metastore_db;create=true</value> 
</property>  
<property>  <name>javax.jdo.option.ConnectionDriverName</name>  <value>org.apache.derby.jdbc.EmbeddedDriver</value> 
</property>  
<property>  <name>hive.metastore.local</name>  <value>true</value> 
</property>   
<property>  <name>hive.metastore.warehouse.dir</name>  <value>/user/hive/warehouse</value>  
</property>  


末尾追加:

<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property><property>
<name>hive.exec.local.scratchdir</name>
<value>/export/server/hive/data/${user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hive/apache-hive-1.2.2-bin/tmp/${hive.session.id}_resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/home/hive/apache-hive-1.2.2-bin/tmp/root/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>

(2)配置环境变量:
vi /etc/profile:

export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin


(3)配置hive-env.sh:
vi  hive-env.sh

HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib


(4)启动hadoop
cd /usr/hadoop//hadoop-2.7.3
sbin/start-all.sh
(5)启动元数据服务(或不需要)
bin/hive --service metastore
(6)初始化hive
schematool –initSchema –dbType derby

(7)启动hive
bin/hive

至此,内嵌模式已部署完成

关于本地模式和远程模式的安装与部署请看下期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/340971.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3中transform2D变形详解

CSS3变形 在CSS3中&#xff0c;动画效果包括3个部分&#xff1a; 变形(transform)过渡(transition)动画(animation) 在实际开发中&#xff0c;有时需要实现元素的各种变形效果&#xff0c;如平移&#xff0c;缩放&#xff0c;旋转&#xff0c;倾斜等。 在CSS3中&#xff0c…

Kafka的简介及架构

目录 消息队列 产生背景 消息队列介绍 常见的消息队列产品 应用场景 消息队列的消息模型 Kafka的基本介绍 简介 Kafka的架构 Kafka的使用 Kafka的shell命令 Kafka的Python API的操作 完成生产者代码 完成消费者代码 消息队列 产生背景 消息队列:指数据在一个容器…

PyCharm使用手册

配置文件和代码模板 文件注释模板&#xff1a; 注释项描述示例Project项目名称hello_pythonFile文件名称hello_python.pyAuthor作者Zhang SanDate创建时间2024-01-11 17:05:00PyVersionPython解释器版本Python3.7Description文件描述这是一个python语言入门文件 效果示例&am…

【阅读笔记】Chain of LoRA

一、论文信息 1 论文标题 Chain of LoRA: Efficient Fine-tuning of Language Models via Residual Learning 2 发表刊物 arXiv2023 3 作者团队 Department of Computer Science, Princeton University School of Computer Science and Engineering, Nanyang Technologic…

2023年人工智能的最新发展(下)

目录 1.MidJourney&#xff1a; 2.GAN: 3.Diffusion Model 4.DALLE、Disco Diffusion 5.Stable Diffusion 1.MidJourney&#xff1a; 2023年3月&#xff0c;一组中国小情侣的照片在网络上迅速走红。这组照片看起来普通&#xff0c;就像一对小情侣的合影&#xff0c;但实…

Go后端开发 -- 条件、循环语句 defer语句

Go后端开发 – 条件、循环语句 && defer语句 文章目录 Go后端开发 -- 条件、循环语句 && defer语句一、条件语句1.if ... else 语句2.switch语句3.select语句 二、循环语句1.for循环 三、defer语句1.defer语句的作用2.defer和return的先后顺序3.recover错误拦截…

212. 单词搜索 II(字典树的另一种类型)

大致思路是&#xff1a; 根据words列表建立字典树&#xff0c;其中注意在单词末尾&#xff0c;将原来的isEnd变量换成存储这个单词的变量&#xff0c;方便存储到ans中&#xff0c;另外&#xff0c;字典树的字节点由原来的Trie数组变为hashmap&#xff0c;方便检索字母。 建立…

C++ n皇后问题 || 深度优先搜索模版题

n− 皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n &#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包含整数 n 。 …

动态规划day03

343. 整数拆分(第二次做还是没弄明白) 力扣题目链接(opens new window) 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: …

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(4)员工管理|修改员工、配置文件

指路&#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;3&#xff09;&#x1f447; 黑马程序员JavaWeb开发|案例&#xff1a;tlias智能学习辅助系统&#xff08;1&#xff09;准备工作、部门管理_tlias智能学习辅助系统的需求分析-CSDN博客https://blog.csdn.n…

AI人工智能的发展趋势及未来展望

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;作为一门拥有悠久历史但最近才得到广泛关注的领域&#xff0c;正在以惊人的速度推动着科技进步和社会变革。近年来&#xff0c;随着计算能力、数据规模和算法研究的不断突破&#xff0c;人工智能已经…

java通过HttpClient方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、HttpClient方式实现的https请求工具类三、测试类 一、引入依赖包 引入相关依赖包 <!--lombok用于简化实体类开发--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><option…