了解了Hadoop集群搭建及如何使用,有了更深入的认识;
接着学习了HDFS文件系统:
HDFS的概述:HDFS(Hadoop Distributed File System)是 Apache Hadoop 项目的一个子项目. Hadoop 非常适于存储大型 数据 (比如 TB 和 PB), 其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统.
HDFS的特点:HDFS文件系统可存储超大文件,时效性稍差。
HDFS具有硬件故障检测和自动快速恢复功能。
HDFS为数据存储提供很强的扩展能力。
HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改。
HDFS可在普通廉价的机器上运行。
HDFS的架构:采用Master/Slave架构
HDFS的四个基本组件:HDFS Client、NameNode、DataNode和Secondary NameNode
HDFS的Shell命令:如ls,mkdir,rm,put等。
Diver驱动程序
Driver:包括语法解析器、计划编译器、优化器、执行器
作用:完成HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS中,并在随后有MapReduce调用执行。
Metastore元数据存储
元数据包含:用Hive创建的database、table、表的字段等元信息。
元数据存储:存在关系型数据库中,如:hive内置的Derby数据库或者第三方MySQL数据库等。
注意:metastore服务配置有3种模式:内嵌模式、本地模式、远程模式
Hive体验
首先,确保启动了Metastore服务。
可以执行:bin/hive,进入到Hive Shell环境中,可以直接执行SQL语句。
创建表
CREATE TABLE test(id INT, name STRING, gender STRING);
插入数据
INSERT INTO test VALUES(1,'张三','男'),(2,'李四','男'),(3,'王五', '女');
查询数据
SELECT gender, COUNT(*) AS cnt FROM test GROUP BY gender;