大数据技术之Hive

一、Hive基本概念

1、什么是Hive
Hive:由Facebook开源用于解决海量结构化日志的数据统计。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
本质是:将HQL转化成MapReduce程序
1)Hive处理的数据存储在HDFS
2)Hive分析数据底层的实现是MapReduce
3)执行程序运行在YARN上

2、为什么使用Hive
1)直接使用hadoop所面临的问题
(1)人员学习成本太高
(2)项目周期要求太短
(3)MapReduce实现复杂查询逻辑开发难度太大
2)Hive的好处
(1)操作接口采用类SQL语法,提供快速开发的能力。
(2)避免了去写MapReduce,减少开发人员的学习成本。
(3)扩展功能很方便。

3、Hive 的特点
1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
2)避免了去写MapReduce,减少开发人员的学习成本。
3)Hive的执行延迟比较高,因此hive常用于数据分析,对实时性要求不高的场合;
4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

二、Hive 基本Shell操作

1、启动hive

[victor@node1 hive]$ bin/hive

2、查看数据库

hive> show databases;

3、打开默认数据库

hive> use default;

4、显示default数据库中的表

hive>show tables;

5、创建一张表

hive> create table student(id int, name string) ;

6、显示数据库中有几张表

hive> show tables;

7、查看表的结构

hive> desc student;

8、向表中插入数据

hive> insert into student values(1000,"alex");
hive> insert into student(id,name) values(1,"xiaoming");

9、查询表中数据

hive> select * from student;

10、删除表

hive> drop table student;

11、退出hive

hive> quit;

三、Hive 初次启动ERROR解决

1、问题描述
自从spark2.0.0发布之后,每次启动hive的时候,总会发现一个小问题,启动 hive --service metastore的时候,会报一个小BUG: 无法访问/lib/spark-assembly-*.jar

[victor@hadoop102 ~] $ hive
Ls : cannot access /sdp/spark2/lib/spark-assembly-*.jar:No such file or directory
Logging initialized using configuration in file:/sdp/hive/conf/hive-log4j.properties 

分析其源码架构,发现主要原因:在//bin/hive文件中,有这样的命令:加载spark中相关的JAR包

 # add spark assembly jar to the classpath
 If [[ -n “$SPARK_HOME”]]
 Then   
 	sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`   
 	CLASSPATH=”${CLASSPATH}:${sparkAssemblyPath}”
 fi

但是spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-.jar已经不存在,所以hive没有办法找到这个JAR包。
2 、解决办法
修改//bin/hive文件,将加载原来的lib/spark-assembly-
.jar`替换成jars/*.jar,就不会出现这样的问题。

# add spark assembly jar to the classpath
If [[ -n “$SPARK_HOME”]]
Then   
	sparkAssemblyPath=`ls ${SPARK_HOME}/jars/ *.jar`   
	CLASSPATH=”${CLASSPATH}:${sparkAssemblyPath}”
fi 

3、验证

[victor@hadoop102 ~] $ hive
Logging initialized using configuration in file:/sdp/hive/conf/hive-log4j.properties
hive > 
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页