Hadoop三大组件以及Hive的基础认知

落花浮王杯 提交于 2021-01-11 08:28:11

Hadoop三大组件:

分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上(分布式存储)

分布式运算编程框架:MapReduce——实现多台机器的分布式并行运算。(分布式运算)

分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

Hive 入门

Hive构建在Hadoop上
HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的所有的数据存储在Hadoop上。
查询计划被转化为 MapReduce 任务(job),在 Hadoop 中执行(有些查询没有 MR 任务,如:select * from table)
Hadoop和Hive都是用UTF-8编码的
 

常见数据库(database简称DB)

关系型数据库(关系型数据库就是由二维表及其之间的联系组成的一个数据组织):
mysql oracle sqlServer postgresql(小oracle)
非关系型数据库:mangodb hbase redis

数据仓库datawarehouse简称DW(数据处理分为两大类,)

数据仓库和数据库的区别:
数据仓库的数据量大,数据库以数据量小
数据仓库可新增但很慢,且复杂并且不能修改删除,一般只用于大批量查询;
             数据库支持量小的增删改查
数据仓库是用来分析(OLAP)的,以读操作为主;数据库主要用来处理事务(OLTP),以写操作为主
联机分析处理:OLAP
联机事务处理:OLTP
 
数据仓库有哪些?
Hive EMR(阿里)  TDW(腾讯)  infosfree(IBM) 。。。。。数据仓库产品至少有几十个
 
数据仓库数据从何而来
1 log包括应用日志,系统日志 ,web日志(tomcat,ngnix,apache)
2数据库
3 外部(爬虫,外部公司接口)
 
为什么用hive
1, 开源
2,免费
3,基于hadoop编码格式与其都是UTF-8
 
tips;ETL数据处理 进行数据提取转化
  
 
桥接模式。  静态IP 异地,需要更改ip  因为和本机是同一网段
NAT模式,动态ip  局域网   有自己的虚拟适配器网关,因此无论异地,无需更改
网关一般为192.168.1.1 网络数据 传输都需要经过网关
DNS  domain name service 域名解析器  
浏览地址,一般会先查找系统host文件中是否有对应的,没有才回通过DNS域名解析服务进行查找
Tips  子网掩码的作用是判断该IP是否为同一网段
 
 HDFS dfs -mkdir /xxx

Hive基本语法

基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP(时间戳,年月日时分秒),DECIMAL(精确小数,保证不会丢失,与钱有关的使用),CHAR,VARCHAR,DATE(日期:年月日)
 

元数据(Metadata)

元数据:形容数据的数据 ie:文件的内容是数据,那形容文件的信息如:文件大小、文件位置、文件访问时间、修改时间是元数据
 
Hive的数据是一张一张的表
Hive的元数据是形容表的数据,表的字段、标的名字、表的位置存放在mysql中
 
Tips:jps命令:当前虚拟机的java进程
 
Start-all.sh 启动所有
 
HQL语句
创建表
 hive/   create table nanjing(id int,name string) row format delimited fields terminated by ',';
hive/ CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 
PARTITIONED 分区
分区可以多级分区
分区字段不是表中字段
不限分区个数
例如:CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (day STRING);
load data local inpath '/tmp/record' into table record partition(dggg
Hadoo页面本地文件系统目录 : /user/hive/warehouse
 
Hive内部表和外部表
默认创建的表是内部表
如果在创建的时候加上external就是外部表
区别:
内部删除的时候 会将数据和元数据一起删除
外部表只删除元数据,数据仍旧保留
外部表比内部表安全,但删除麻烦 推荐使用
 
加载本地数据,同时给定分区信息
hive> LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');
加载DFS数据 ,同时给定分区信息hadoop -fs put  record/1.txt
hive> LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');
 
 
Hive的执行引擎
1、local本地模式 不在yarn上执行mr,在本地。不是分布式执行
2、Mr mapreduce
3、Spark
4、tez
 
命令异常详解
ParseException 解析异常
SemanticRxception 语法异常
 
hive只是一个工具 把数据存放在 HDFS中,把元数据存放在mysql中
 
hive操作查询流程: 索引查询顺序,先去mysql 查询表在那个数据库里,发现数据库在HDFS中的指定位置,因此就去HDFS中 把文件下载下来 ,然后在显示在hive工具中。
 
mysql设置密码
mysqladmin -u root password 'yourpassword'
 
当在hive中创建了一个数据目录,
DBS(database)存放hive中的数据目录路径信息
TBLS 存放hive中的基本表信息
 

原文出处:https://www.cnblogs.com/zzok/p/11351500.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!