hadoop的hive sql语句总结

参考blog:http://www.aboutyun.com/thread-7458-1-1.html


我理解的hive就是执行sql命令的一个东西,最终执行的sql命令都会映射到hadoop的hdfs文件系统,影响hadoop中存储的文件内容,hive sql和mysql sql的区别是具有几个不同的概念出来(1)内部表和外部表(2)partition分区的概念

(3)bucket桶的概念,基于这三个概念影响其sql的语句,感觉hadoop最强大的是其mapreduce功能,map将大任务分解为小任务,reduce将小任务处理的结果合在一起,实现了利用多台小机器并行处理增快大数据处理任务的目的。hadoop不上部署在一台机器上的,而是部署在很多机器一个集群上的。


启用hive: 在安装hive的机器上面打hive即可进入hive 命令

查看hadoop的文件: 我的数据库名称是wzz.db,这是我的数据库在hadoop文件系统的实际存储地址:

hadoop fs -ls /user/hive/warehouse/wzz.db

查看表的记录

 hadoop fs -cat  /user/hive/warehouse/wzz.db/student1/000000_0

student1是表的名称,000000_00是记录

查看hadoop日志:注意你通过java连接的是哪台机器,你的日志就存储在哪台机器上面,/var/log/hive下面的 hadoop-cmf-hive-HIVESERVER2-bg-slave1.cafintech.test.log.out


一.新建内部表和外部表

内部表和外部表的区别:

1.导入数据到外部表,数据并不一定存储在hadoop的仓库里面,若在定义外部表时指定了location则存储数据到自定义的地址,内部表则不能自定义数据存储地址。

2.drop表时,内部表的表结构和表的数据全部被删除,外部表仅是表的结构被删除,数据还存储在hadoop的文件系统之中。

新建普通表并且导入数据:

/root/wzz/bucket_test文件的内容

hadoop的hive sql语句总结_第1张图片

新建内部表:


导入数据:

load  data  local  inpath  '/root/wzz/bucket_test'  into table wzz;





你可能感兴趣的:(hadoop未入门)