保证当前shell的用户为hadoop(如果当前用户已经是hadoop,此步可忽略)

参考第一章相关节

HiveQL数据定义

1、启动hive。 命令:hive --service cli

定义这里为 hive命令行。

在这里插入图片描述

2、查看databases。 命令:show databases; 在这里插入图片描述

手动创建databases

3、创建test。 命令:CREATE DATABASE IF NOT EXISTS test; 在这里插入图片描述

4、查看是否创建成功。 命令:show databases; 在这里插入图片描述

5、进入test。 命令:use test; 在这里插入图片描述

6、创建employee表。 命令:CREATE TABLE IF NOT EXISTS `EMPLOYEE` ( `ID` bigint, `NAME` string, CONSTRAINT `SYS_PK_BUCKETING_COLS` PRIMARY KEY (`ID`) DISABLE ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' ; 注:``这个符号为标识符,数据名字。 在这里插入图片描述

下载数据

7、新建new terminal,保证当前shell的用户为hadoop。这里定义为Linux命令行。

参考第一章相关节

8、进入/tmp目录下。 命令:cd /tmp/ 在这里插入图片描述

9、创建hive文件。 命令:mkdir hive 在这里插入图片描述

10、进入 /tmp/Spark-stack/Hive/HiveQL/目录下。 命令:cd /tmp/Spark-stack/Hive/HiveQL/ 在这里插入图片描述

11、将employee.dat 拷贝到/tmp/hive/目录下。 命令:cp employee.dat /tmp/hive/ 在这里插入图片描述

12、返回之前的hive命令行,加载数据到table中。 命令:LOAD DATA LOCAL INPATH '/tmp/hive/employee.dat' OVERWRITE INTO TABLE EMPLOYEE; 在这里插入图片描述

13、查询数据。 命令:select * from EMPLOYEE; 在这里插入图片描述

数据库与hdfs对应关系

观察创建完表和数据库之后,在HDFS上有什么变化 1、切换到Linux命令行。

2、配置文件默认的数据存储仓库在hive/warehouse/ 命令:hdfs dfs -ls /user/hive/warehouse/ 在这里插入图片描述

3、查看test.db文件 命令:hdfs dfs -ls /user/hive/warehouse/test.db 在这里插入图片描述

4、查看employee表。 命令:hdfs dfs -ls /user/hive/warehouse/test.db/employee

在这里插入图片描述

5、查看employee.dat数据集内容。 命令:hdfs dfs -cat /user/hive/warehouse/test.db/employee/employee.dat 在这里插入图片描述

内部表和外部表操作与hdfs文件管控

1、在Linux命令行下操作,将数据拷贝到/installTest目录下。 命令:hdfs dfs -cp /user/hive/warehouse/test.db/employee/employee.dat /installTest 在这里插入图片描述

2、在hive命令行下,删除表。 命令:drop table employee; 在这里插入图片描述

3、在Linux命令行下,再次查看。 命令:hdfs dfs -ls /user/hive/warehouse/test.db注:数据已经删除了,但是test.db没有删除掉。 在这里插入图片描述

4、在hive命令行下,删除test.db。 命令:drop database test; 在这里插入图片描述

5、在Linux命令行下,查看是否删除。 命令:hdfs dfs -ls /user/hive/warehouse/test.db注:已经删除,数据库已经被删除。 在这里插入图片描述

创建外部表

6、创建一个空目录存放数据。 在Linux命令行下,命令:hdfs dfs -mkdir /installTest/hive 在这里插入图片描述

7、在Linux命令行下,将拷贝过来的employee.dat拷贝到hive目录下。 命令:hdfs dfs -cp /installTest/employee.dat /installTest/hive 在这里插入图片描述

8、在hive命令行下,创建表,先创建database。 命令:CREATE DATABASE IF NOT EXISTS test; 在这里插入图片描述

9、在hive命令行下,进入test。 命令:use test; 在这里插入图片描述

10、在hive命令行下,创建表。 命令:CREATE TABLE IF NOT EXISTS `EMPLOYEE` ( `ID` bigint, `NAME` string, CONSTRAINT `SYS_PK_BUCKETING_COLS` PRIMARY KEY (`ID`) DISABLE ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LOCATION '/installTest/hive'; 注:外部表创建成功。 在这里插入图片描述

11、在hive命令行下,做一次查询。 命令:select * from EMPLOYEE; 注:内部表和外部表在其他操作上是一致的。 在这里插入图片描述

HiveQL查询

12、在hive命令行下,在app-12上退出命令行环境。 命令:quit; 在这里插入图片描述

13、进入tmp目录下。 命令:cd /tmp/ 在这里插入图片描述

14、将hive文件删除重新创建存放临时数据。 命令:rm -rf hive/mkdir hive 在这里插入图片描述

15、进入Spark-stack/Hive/目录下。 命令:cd Spark-stack/Hive/ 在这里插入图片描述

16、将HiveQL目录下的文件拷贝到/tmp/hive/目录下。 命令:cp -rf HiveQL/* /tmp/hive/ 在这里插入图片描述

17、进入/tmp/hive/目录下。 命令:cd /tmp/hive/ 在这里插入图片描述

18、查看employee.sql脚本 命令:vi employee.sql 注:这是创建外部表的脚本。 在这里插入图片描述

19、加载脚本。 命令:hive -f /tmp/hive/employee.sql 在这里插入图片描述

20、切换到命令行环境。 命令:hive --service cli 在这里插入图片描述

21、进入test。 命令:use test; 在这里插入图片描述

22、设置MapReduce的Map memory和reduce memory为2G。 命令:set mapreduce.map.memory.mb=2048;set mapreduce.reduce.memory.mb=2048; 在这里插入图片描述

23、查询。 命令:select count(*) from employee; 注:时间是4.38秒。 在这里插入图片描述

24、查询现在的执行引擎。 命令:set hive.execution.engine; 在这里插入图片描述

25、将执行引擎改为mr。 命令:set hive.execution.engine=mr; 在这里插入图片描述

26、再一次查询。 命令:select count(*) from employee;注:时间是10.55秒。 在这里插入图片描述

详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰 在这里插入图片描述