虚拟主机怎么建网站,网站建设与搜索引擎营销有什么关系,网站建设计划表模板下载,企业公司怎么注册Hive 安装#xff08;基于 Ubuntu 系统#xff09;
为了学习 Hive 的相关操作#xff0c;我们需要先安装 Hive#xff0c;以下是基于 Ubuntu 系统安装 Hive 的步骤#xff1a;
下载 Hive
我们将使用 hive-0.13.1-cdh5.3.2 版本#xff0c;当然你可以根据需要下载最新的…Hive 安装基于 Ubuntu 系统
为了学习 Hive 的相关操作我们需要先安装 Hive以下是基于 Ubuntu 系统安装 Hive 的步骤
下载 Hive
我们将使用 hive-0.13.1-cdh5.3.2 版本当然你可以根据需要下载最新的 Hive 版本。 下载链接Cloudera Hive 0.13.1 下载后得到一个压缩包hive-0.13.1-cdh5.3.2.tar.gz。
解压 Hive 文件
解压下载的压缩包
tar zxvf hive-0.13.1-cdh5.3.2.tar.gz
设置 Hive 环境变量
打开 ~/.bashrc 文件并在文件末尾添加以下环境变量设置
export HADOOP_USER_CLASSPATH_FIRSTtrue
export PATH$PATH:$HIVE_HOME/bin
export HADOOP_HOME/home/yourusername/hadoop-2.6.0-cdh5.5.1
export HIVE_HOME/home/yourusername/hive-0.13.1-cdh5.3.2
注意
修改 HADOOP_HOME 和 HIVE_HOME 为你自己 Hive 和 Hadoop 的实际安装路径。保存并退出文件。 使修改的环境变量生效
source ~/.bashrc
执行 Hive
在终端中输入 hive 进入 Hive 命令模式
$ hive
退出 Hive
如果想退出 Hive 命令行可以使用以下命令
hive exit;
Hive 常用命令 以下是一些 Hive 中常用的基本命令
show databases 命令 列出当前 Hive 中的所有数据库。如果是新安装的 Hive会默认有一个名为 “default” 的数据库。
show databases;
create database 命令 创建一个新的数据库。
create database test;
use 命令 切换到指定的数据库。
use test;
显示当前数据库 查看当前所处的数据库可以使用以下命令
set hive.cli.print.current.dbtrue;
默认情况下hive.cli.print.current.db 为 false设置为 true 后会显示当前所在的数据库名。 5. drop 命令 删除数据库或表。
drop database test;
drop table employee;
create table 命令 创建新表。以下是创建表的示例字段包括姓名、ID、手机号和薪水
create table employee (Name String comment Employee Name,Id int,MobileNumber String,Salary Float
)
row format delimited fields terminated by ,
lines terminated by \n
stored as textfile;
查看当前库的所有表 查看当前数据库中的所有表
show tables;
alter table 命令 用于修改表的属性如修改表名、添加列、删除列等。
ALTER TABLE employee RENAME TO demo1;
加载数据到 Hive 表 将本地文件中的数据加载到 Hive 表中
LOAD DATA LOCAL INPATH /home/dataflair/Desktop/details.txt OVERWRITE INTO TABLE employee;
Hive 架构概述
Hive 架构建立在 Hadoop 和 MapReduce 的基础之上主要用于简化大数据的查询和分析过程。它的架构由多个关键组件组成可以分为服务端组件和客户端组件。
服务端组件
Driver 组件 Driver 是 Hive 中的核心组件包括三个子组件 1Compiler负责将 HiveQL 语句解析为执行计划。 2Optimizer对生成的执行计划进行优化。 3Executor执行优化后的计划并将其转换成底层的 MapReduce 作业。
Metastore 组件 Metastore 是 Hive 用来存储元数据的服务元数据包括表结构、列类型、分区信息等。Metastore 通常存储在关系数据库中如 Derby 或 MySQL。它的作用非常重要因此 Hive 允许将 Metastore 服务独立出来运行在单独的服务器集群上以提高系统的健壮性和可扩展性。
Thrift 服务 Thrift 是 Facebook 开发的跨语言服务框架Hive 使用 Thrift 来允许不同编程语言与 Hive 交互。通过 ThriftHive 可以暴露其接口使得不同语言的客户端能够与 Hive 进行通信。
客户端组件
CLI命令行接口 Hive 提供了一个类似于 SQL 的命令行接口用户可以通过命令行执行 HiveQL 查询。Thrift 客户端 Hive 的客户端接口大多数是通过 Thrift 客户端实现的包括 JDBC 和 ODBC接口允许其他编程语言与 Hive 进行交互。Web GUI Hive 提供了基于 Web 的图形用户界面HWIHive Web Interface用户可以通过 Web 浏览器访问 Hive。HWI 需要在服务器上启动后才能使用。
Hive 数据处理流程
Hive 的数据处理流程主要包括以下步骤 UI 调用 Driver 用户通过 Web 界面或 CLI 输入 HiveQL 查询Hive 会调用 Driver 的 execute 接口来执行查询。 Driver 创建会话 Driver 为每个查询创建会话句柄并将查询发送给 Compiler 进行解析。 Compiler 生成执行计划 Compiler 会根据 HiveQL 查询生成执行计划。执行计划包含一个有向无环图DAG每个阶段可能是一个 MapReduce 作业、元数据操作或 HDFS 操作。 在生成执行计划时Compiler 会向 Metastore 请求元数据信息用于查询表达式的类型检查。 优化执行计划 Optimizer 对生成的执行计划进行优化确保查询的执行更加高效。 执行计划提交给 Execution Engine 执行引擎将优化后的执行计划提交给适当的组件进行执行包括 MapReduce 阶段。每个任务mapper 或 reducer会处理 HDFS 上的数据执行特定的操作。 数据处理和中间结果存储 每个 Map 或 Reduce 任务会从 HDFS 读取数据并执行操作。 在没有 Reduce 阶段的情况下Map 任务的输出会临时保存在 HDFS 上等待后续阶段的处理。 对于 DML数据操作语言操作临时文件会被移动到目标表的位置确保不会出现脏数据读取HDFS 的文件重命名操作是原子的。 查询结果返回给客户端 执行引擎会从 HDFS 读取最终的查询结果并通过 Driver 的 Fetch API 返回给客户端。
总结
Hive 的架构通过多个组件分工合作完成数据查询和分析任务。Hive 通过 CLI 或 Web 界面接收用户查询并通过复杂的查询解析和优化流程最终将查询转化为 MapReduce 作业执行。Metastore 提供了查询所需的元数据信息Thrift 服务则允许外部程序通过不同语言与 Hive 交互。通过这一架构Hive 提供了一个强大且易于使用的大数据查询工具简化了 Hadoop 的使用。