Spark SQL大数据分析快速上手-Hive安装

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客

《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书

大数据与数据分析_夏天又到了的博客-CSDN博客

由于Spark SQL的基础语法及常见操作是通过Spark SQL CLI命令行进行的,该工具可以用来在本地模式下运行Hive的元数据服务,并且通过命令行执行针对Hive的SQL查询。因此,首先需要安装Hive。

由于Hive是运行在Hadoop下的数据仓库,因此必须在已经安装好Hadoop的环境下运行Hive,并且要正确配置HADOOP_HOME环境变量。

Hadoop完全分布式环境搭建步骤_hadoop 开发环境搭建及hdfs初体验-CSDN博客

  1. 下载Hive

Hive下载地址如下:

复制代码
https://archive.apache.org/dist/hive/

由于Spark 3.3.1可以使用的Hive版本包括0.12.0~2.3.9,因此这里按作者习惯选用了Hive 1.2.2版本,具体下载地址如下:

复制代码
https://archive.apache.org/dist/hive/hive1.2.2/apache-hive-1.2.2-bin.tar.gz
  1. 上传并解压Hive

Hive安装包下载下来后,文件上传Linux当前用户目录下,并解压Hive安装文件:

$ tar -zxvf ~/apache-hive-1.2.2-bin.tar.gz -C .

目录名称太长了,修改一下名称:

复制代码
$ mv apache-hive-1.2.2-bin/ hive-1.2

配置Hive的环境变量是可选的,是为了方便执行Hive脚本:

复制代码
export HIVE_HOME=/app/hive-1.2

export PATH=$PATH:$HIVE_HOME/bin
  1. 启动Hadoop,登录Hive命令行

首先启动Hadoop。

然后使用hive脚本,登录Hive命令行界面。此时Hive要访问Hadoop的core-site.xml文件,并访问fs.defaultFS所指的服务器。

直接输入hive命令就可以登录Hive的命令行:

复制代码
[hadoop@server201 ~]$ hive

hive>
  1. 一些基本的命令

类似于MySQL的SQL命令,都可以在Hive下运行。

(1)查看所有数据库:

复制代码
hive> show databases;
OK
default
Time taken: 0.025 seconds, Fetched: 1 row(s)

(2)查看默认数据库下的所有表:

复制代码
hive> show tables;
OK
Time taken: 0.035 seconds

(3)创建一张表,并显示这张表的结构:

复制代码
hive> create table stud(id int,name varchar(30));
OK
Time taken: 0.175 seconds
hive> desc stud;
OK
id                  	int
name                	varchar(30)
Time taken: 0.193 seconds, Fetched: 2 row(s)

(4)显示这张表在Hive中的结构:

复制代码
hive> show create table stud;
OK
CREATE TABLE `stud`(
  `id` int, 
  `name` varchar(30))
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat'  数据存储类型
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat ' 输出类型
LOCATION
  'hdfs://server201:8020/user/hive/warehouse/stud' 保存的位置
TBLPROPERTIES (  表的其他属性信息
  'transient_lastDdlTime'='1530518761')
Time taken: 0.128 seconds, Fetched: 13 row(s)

(5)向表中写入一行记录。

由于Hive会将操作转换成MapReduce程序,因此INSERT语句会被转换成MapReduce程序。这个效率比较低,尽量不要使用INSERT语句写入数据,而是采用Hive分析现有的数据。例如:

复制代码
hive> insert into stud values(1,'Jack');

运行结果中有如下内容:

复制代码
Stage-1 map =0%,reduce =0%

Stage-1 map =100%,  reduce =0%,Cumulative CPU 2.4 sec

可见,一个简单的INSERT语句确定执行了MapReduce程序,所以效率不会太高。

(6)不支持UPDATE和DELETE:

复制代码
hive> update stud set name='Alex' where id=1;
FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does not support these operations.
hive> delete from stud where id=1;
FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does not support these operations.

由以上运行结果可见,Hive分析的数据是存储在HDFS上的,HDFS不支持随机写,只支持追加写,所以在Hive中不能使用UPDATE和DELETE语句,只能使用SELECT和INSERT语句。

相关推荐
chde2Wang26 分钟前
datagrip访问远程hive库
hive
howard20051 小时前
7.2 Hive自定义函数实战
hive·自定义函数·udf
zhixingheyi_tian1 小时前
Hadoop 之 metrics
hadoop
第二只羽毛1 小时前
单例模式的初识
java·大数据·数据仓库·单例模式
g***78912 小时前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
7***684310 小时前
Spring Boot 从 2.7.x 升级到 3.3注意事项
数据库·hive·spring boot
笨蛋少年派10 小时前
跨境电商大数据分析系统案例:③建模、分析与暂时收尾
hive·数据挖掘·数据分析
yumgpkpm11 小时前
腾讯TBDS和Cloud Data AI CMP 比较的缺陷在哪里?
hive·hadoop·elasticsearch·zookeeper·spark·kafka·hbase
知识分享小能手11 小时前
openEuler入门学习教程,从入门到精通,openEuler 24.03 环境下 Hadoop 全面实践指南(19)
大数据·hadoop·openeuler
K***65891 天前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat