Spark SQL大数据分析快速上手-Hive安装
【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客
《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书
由于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)!