1.hive的基本操作
hive的启动 bin/hive --启动为一个单机交互式程序 启动服务 bin/hiveserver2 然后服务 bin/beeline -u jdbc:hive2://localhost:10000 -n root
sql基本语法
建库:create database mydb; --会在/user/hive/warehouse/下建一个库文件夹 mydb.db 选择库:use mydb; 建表: --hive中的表有两种类型:Managed Table内部表 | external Table 外部表 --内部表和外部表的区别 1.1、内部表不需要指定数据存放目录,它默认在/user/hive/warehouse/db目录/表名目录 1.2、而外部表的数据存放目录是可以任意指定的 2.1、内部表被删除时,表定义和表数据全部都会被删除 2.2、外部表被删除时,表定义会被删除,但是表数据依然保留(hdfs文件) --内部表建表示例: create table t1(id int,name string,salary float); --会在/user/hive/warehouse/mydb.db下建一个文件夹t1 --建表示例:需求:建一个表,记录 学号,姓名,手机号,期末考试成绩,住址,性别 create table stu(stuno int,name string,phone string,score float,address string,gender string); --默认认为文件中的字段分隔符为001 create table stu(stuno int,name string,phone string score float,address string,gender string) row format delimited fields terminated by ',' --将文件中的','作为字段分隔符 --外部表建表示例: create external table teacher(id int,name string) row format delimited fields terminated by ',' location '/abc/ddd/'; 导入数据(文件中的分隔符和字段顺序,必须与表定义一致,否则会出现NULL等你不想要的结果): 方式1:自己将数据文件,用hdfs dfs -put命令put到指定目录 方式2:用hive的语句来导入 --文件可以在hdfs上(本质将文件移动到指定目录) load data inpath 'hdfs路径' into table t1; --文件也可以在hive运行所在机器的本地(复制到hdfs路径下) load data local inpath '/root/wzk/' into table t1;   删除表: drop table sut; 删除数据库: drop database mydb; --删除没有表(空)的库 drop database mydb cascade; --删除非空的库



