| |
|
开发:
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的解决大数据管理和处理难题的框架。
|
hive | RDBMS | |
查询语言 | HQL(和SQL类似) | SQL |
数据储存 | HDFS | Raw Device 或者 Local FS |
执行器 | MapReduce | Executor(Java的一种框架) |
处理数据规模 | 相对较大 | 相对较小 |
适用场景 | 大数据查询 | 实时查询 |
执行延迟 | 相对较高 | 相对较低 |
索引 | 0.8版本后支持简单索引 | 支持复杂索引 |
扩展性 | 好 | 相对较差 |
加载模式 | 读时模式 | 写时模式 |
数据操作 | 覆盖追加 | 行级更新删除 |
分区 | 支持 | 支持 |
hive比较适合做数据仓库,用于海量的离线数据统计分析。
Hive的结构:
该组件图包含不同的单元。下表描述每个单元:
单元名称 | 操作 |
---|---|
用户接口/界面 | 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 或?HBASE | Hadoop的分布式文件系统或者HBASE数据存储技术是用于将数据存储到文件系统。 |
Hive 和Hadoop之间的工作流程。
Hive和Hadoop框架的交互方式:
Step No. | 操作 |
---|---|
1 | Execute Query Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行。 |
2 | Get Plan 在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。 |
3 | Get Metadata 编译器发送元数据请求到Metastore(任何数据库)。 |
4 | Send Metadata Metastore发送元数据,以编译器的响应。 |
5 | Send Plan 编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。 |
6 | Execute Plan 驱动程序发送的执行计划到执行引擎。 |
7 | Execute Job 在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。 |
7.1 | Metadata Ops 与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。 |
8 | Fetch Result 执行引擎接收来自数据节点的结果。 |
9 | Send Results 执行引擎发送这些结果值给驱动程序。 |
10 | Send Results 驱动程序将结果发送给Hive接口。 |
#配置HADOOP_HOME路径 这里的路径是更具自己实际路径来的
export HADOOP_HOME=/opt/program/hadoop
#配置HIVE_CONF_DIR路径 同理
export HIVE_CONF_DIR=/opt/program/hive/conf
<?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&useSSL=false&useUnicode=true&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>
cd /opt/program/hive? (将目录改到对应的位置)? bin/hive 启动hive
····前台启动
bin/hive --service hiveserver2
····后台启动
nohup bin/hive --service hiveserver2 &
····beeline连接hiveserver2
bin/beeline beeline> !connect jdbc:hive2://node1:10000
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 9:50:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |