IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【hive】在Hadoop下的一种关系型数据库 -> 正文阅读

[大数据]【hive】在Hadoop下的一种关系型数据库

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

术语“大数据”是大型数据集,其中包括体积庞大,高速,以及各种由与日俱增的数据的集合。使用传统的数据管理系统,它是难以加工大型数据。因此,Apache软件基金会推出了一款名为Hadoop的解决大数据管理和处理难题的框架。


1、什么是hive

最初,Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。它用在好多不同的公司。例如,亚马逊使用它在 Amazon Elastic?
?

1.1、hive

  • 一个关系数据库
  • 一个设计用于联机事务处理(OLTP)
  • 实时查询和行级更新的语言

1.2、hive特点

  • 它存储架构在一个数据库中并处理数据到HDFS。
  • 它是专为OLAP设计。
  • 它提供SQL类型语言查询叫HiveQL或HQL。
  • 它是熟知,快速,可扩展和可扩展的。
  • 本质上是将Hive SQL 转化成 Map Reduce 程序

1.3、hive适合做什么

hive是基于Hadoop的一个数据仓库,可以将结构化的数据映射成一张表,下面是它和其他数据库的区别

hiveRDBMS
查询语言HQL(和SQL类似)SQL
数据储存HDFSRaw Device 或者 Local FS
执行器MapReduceExecutor(Java的一种框架)
处理数据规模相对较大相对较小
适用场景大数据查询实时查询
执行延迟相对较高相对较低
索引0.8版本后支持简单索引支持复杂索引
扩展性相对较差
加载模式读时模式写时模式
数据操作覆盖追加行级更新删除
分区支持

支持

hive比较适合做数据仓库,用于海量的离线数据统计分析。

1.4、hive架构

Hive的结构:

Hive Architecture

该组件图包含不同的单元。下表描述每个单元:

单元名称操作
用户接口/界面Hive是一个数据仓库基础工具软件,可以创建用户和HDFS之间互动。用户界面,Hive支持是Hive的Web UI,Hive命令行,HiveHD洞察(在Windows服务器)。
元存储Hive选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和HDFS映射。
HiveQL处理引擎HiveQL类似于SQL的查询上Metastore模式信息。这是传统的方式进行MapReduce程序的替代品之一。相反,使用Java编写的MapReduce程序,可以编写为MapReduce工作,并处理它的查询。
执行引擎HiveQL处理引擎和MapReduce的结合部分是由Hive执行引擎。执行引擎处理查询并产生结果和MapReduce的结果一样。它采用MapReduce方法。
HDFS 或?HBASEHadoop的分布式文件系统或者HBASE数据存储技术是用于将数据存储到文件系统。

1.5、Hive工作原理

Hive 和Hadoop之间的工作流程。

How Hive Works

Hive和Hadoop框架的交互方式:

Step No.操作
1Execute Query

Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行。

2Get Plan

在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。

3Get Metadata

编译器发送元数据请求到Metastore(任何数据库)。

4Send Metadata

Metastore发送元数据,以编译器的响应。

5Send Plan

编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。

6Execute Plan

驱动程序发送的执行计划到执行引擎。

7Execute Job

在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。

7.1Metadata Ops

与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。

8Fetch Result

执行引擎接收来自数据节点的结果。

9Send Results

执行引擎发送这些结果值给驱动程序。

10Send Results

驱动程序将结果发送给Hive接口。

2、安装部署hive数据仓库

  • 提前安装好MySQL 服务和Hadoop集群。
  • 下载hive安装包https://hive.apache.org/找到对应的版本。
  • 更具个人习惯将hive安装到指定目录
  • 修改配置文件在? ?hive/conf? 中
    • hive-env.sh(将hive-env.sh.template? 重名为 hive-env.sh? 或者直接用命令 mv hive-env.sh.template hive-env.sh?)?
#配置HADOOP_HOME路径  这里的路径是更具自己实际路径来的
export HADOOP_HOME=/opt/program/hadoop
#配置HIVE_CONF_DIR路径  同理
export HIVE_CONF_DIR=/opt/program/hive/conf
  • 修改 hive-site.xml (这里的配置文件主要是配置了用户名和密码还有一些必要的驱动)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
          <description>JDBC connect string for a JDBC metastore</description>
        </property>

        <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>root</value>
          <description>password to use against metastore database</description>
        </property>
</configuration>

3、hive交互方式

3.1、shell

cd /opt/program/hive? (将目录改到对应的位置)? bin/hive 启动hive

3.2、hive JDBC 服务

····前台启动

bin/hive --service hiveserver2

····后台启动

nohup bin/hive --service hiveserver2 &

····beeline连接hiveserver2

bin/beeline beeline> !connect jdbc:hive2://node1:10000

3.3、hive的命令

  • hive?-e?sql语句
    • 使用 –e 参数来直接执行hql的语句
    • cd /opt/bigdata/hive
    • bin/hive -e "show databases"
    • 显示数据库等等。。。。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章           查看所有文章
加:2021-08-01 14:34:51  更:2021-08-01 14:37:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 23:16:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码