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语句。

相关推荐
计算机毕设-小月哥5 小时前
完整源码+技术文档!基于Hadoop+Spark的鲍鱼生理特征大数据分析系统免费分享
大数据·hadoop·spark·numpy·pandas·计算机毕业设计
苛子18 小时前
iPaaS、ETL、数据集成平台是什么?三者是什么关系?
数据仓库·etl
步行cgn19 小时前
在 HTML 表单中,name 和 value 属性在 GET 和 POST 请求中的对应关系如下:
前端·hive·html
zhang98800001 天前
储能领域大数据平台的设计中如何使用 Hadoop、Spark、Flink 等组件实现数据采集、清洗、存储及实时 / 离线计算,支持储能系统分析与预测
大数据·hadoop·spark
Lx3521 天前
Hadoop日志分析实战:快速定位问题的技巧
大数据·hadoop
喂完待续1 天前
【Tech Arch】Hive技术解析:大数据仓库的SQL桥梁
大数据·数据仓库·hive·hadoop·sql·apache
最初的↘那颗心1 天前
Flink Stream API 源码走读 - window 和 sum
大数据·hadoop·flink·源码·实时计算·窗口函数
喂完待续2 天前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
计艺回忆路2 天前
从Podman开始一步步构建Hadoop开发集群
hadoop
计算机源码社3 天前
分享一个基于Hadoop的二手房销售签约数据分析与可视化系统,基于Python可视化的二手房销售数据分析平台
大数据·hadoop·python·数据分析·毕业设计项目·毕业设计源码·计算机毕设选题