HiveQL数据定义
1、在app-12上,以hadoop用户登录。
命令:su – hadoop
2、启动hive。
命令:hive --service cli
3、查看databases。
命令:show databases;
手动创建databases
4、创建test。
命令:CREATE DATABASE IF NOT EXISTS test;
5、查看是否创建成功。
命令:show databases;
6、进入test。
命令:use test;
7、创建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 '|' ;
注:``这个符号为标识符,数据名字。
下载数据
8、新建new terminal,以hadoop用户登录。
命令:su – hadoop
9、进入/tmp目录下。
命令:cd /tmp/
10、创建hive文件。
命令:mkdir hive
11、进入 /tmp/Spark-stack/Hive/HiveQL/目录下。
命令:cd /tmp/Spark-stack/Hive/HiveQL/
12、将employee.dat 拷贝到/tmp/hive/目录下。
命令:cp employee.dat /tmp/hive/
8、返回之前的new terminal,加载数据到table中。
命令:LOAD DATA LOCAL INPATH '/tmp/hive/employee.dat' OVERWRITE INTO TABLE EMPLOYEE;
9、查询数据。
命令:select * from EMPLOYEE;
数据库与hdfs对应关系
观察创建完表和数据库之后,在HDFS上有什么变化
1、在app-11上,以hadoop用户登录。
命令:su – hadoop
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、将数据拷贝到/installTest目录下。
命令:hdfs dfs -cp /user/hive/warehouse/test.db/employee/employee.dat /installTest
2、返回app-12的命令行,删除表。
命令:drop table employee;
3、返回app-11上,再次查看。
命令:hdfs dfs -ls /user/hive/warehouse/test.db
注:数据已经删除了,但是test.db没有删除掉。
4、返回app-12上,删除test.db。
命令:drop database test;
5、返回app-11上,查看是否删除。
命令:hdfs dfs -ls /user/hive/warehouse/test.db
注:已经删除,数据库已经被删除。
创建外部表
6、创建一个空目录存放数据。
命令:hdfs dfs -mkdir /installTest/hive
7、将拷贝过来的employee.dat拷贝到hive目录下。
命令:hdfs dfs -cp /installTest/employee.dat /installTest/hive
8、返回app-12上,创建表,先创建database。
命令:CREATE DATABASE IF NOT EXISTS test;
9、进入test。
命令:use test;
10、创建表。
命令: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、做一次查询。
命令:select * from EMPLOYEE;
注:内部表和外部表在其他操作上是一致的。
HiveQL查询
12、在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余海峰