自学内容网 自学内容网

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

2. 上传并解压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

3. 启动Hadoop,登录Hive命令行

首先启动Hadoop。

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

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

[hadoop@server201 ~]$ hive

hive>

4. 一些基本的命令

类似于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语句。


原文地址:https://blog.csdn.net/brucexia/article/details/144050839

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!