大数据框架略解:Hadoop、Yarn、Spark、Hbase

一、大数据框架

hadoop生态体系

二、hadoop核心组件

Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。

(1)HDFS集群:负责海量数据的存储。

(2)YARN集群:负责海量数据运算时的资源调度。

(3)MapReduce:在分布式计算框架上的可自定义设计框架,使用只需要定义其功能,而不用取考虑分布式并行计算的细节。

(1)HDFS集群

HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序的数据访问功能,适合大型数据集的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群中不同物理机器上。

1)HDFS的文件被分成块进行存储,默认为64M,块是文件存储处理的逻辑单元。

2)HDFS有两类节点,NameNode和DataNode

3)NameNode是管理节点,存储文件元数据。文件与数据块的映射表;数据块与数据节点的映射表。

4)DataNode是HDFS的工作节点,存储数据块。

5)每个数据块3个副本,分布在两个机架内的三个节点。

6)DataNode定期向NameNode发送心跳信息。

7)二级NameNode定期同步元数据映射文件和修改日志,作为备胎。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)YARN

YARN是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。

其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM),应用程序由一个作业(Job)或者Job的有向无环图(DAG)组成。

快速理解:

1)YARN可以将多种计算框架(如离线处理MapReduce、在线处理的Storm、迭代式计算框架Spark、流式处理框架S4等) 部署到一个公共集群中,共享集群的资源。

2)YARN可以看成一个云操作系统,由一个ResourceManager和多个NodeManager组成, 它负责管理所有NodeManger上多维度资源,并以Container(启动一个Container相当于启动一个进程)方式分配给应用程序启动ApplicationMaster(相当于主进程中运行逻辑) ,或运行ApplicationMaster切分的各Task(相当于子进程中运行逻辑)

在启动YARN服务后,节点上可以通过 localhost:8088 进行查看。

(3) Mapreduce

分而治之,一个大任务分成多个小的任务(map),并行执行后,合并结果(reduce)

快速理解:

1)用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。

2)TaskTracker对应HDFS中的DataNode。

3)JobTracker的作用:作业调度,分配任务,监控任务执行进度;监督TaskTracker的状态

4)TaskTracker的作用:执行任务,汇报任务状态。

5)mapreduce的容错机制,重复执行(4次),推测执行。

在这里插入图片描述

三、其他组件

(4)Flume (日志收集工具)

Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。同时,Flume还具备能够将日志写往各种数据目标的能力。

相关概念:

Flume逻辑上分为三层架构:agent, collector, storage

agent用于采集数据,collector用户数据汇总,storage是存储系统。

(5)sqoop(数据同步传输工具)

用于hadoop(hive)与传统数据库的数据传输。

(6)Zookeeper(分布式协作服务)

Zookeeper解决分布环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。Hadoop的许多组件依赖于Zookeeper,它运行在计算集群上面,用户管理Hadoop操作。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

快速理解:

Zookeeper的核心功能,文件系统和通信机制。

1)文件系统:

每个目录都是一个znode节点;Znode节点可直接存储数据;类型,持久化。

2)通信机制:

客户端监听关心的Znode节点;znode节点有变化时,通知客户端。

3)Zookeeper的核心是原子广播,保证了各个Server之间的同步。实现这种机制的协作叫做ZAB协议。(Zookeeper Atomic BrodCast)

(7)Hbase(分布式列存储数据库)

hbase是运行在hdfs之上的一种NoSQL数据库,以键值对的形式存储数据,能够快速在主机内数十亿行数据中定位所需的数据并访问,而HDFS缺乏随即读写操作,不能满足实时需求。

Hbase表结构:

1)列簇,1张列簇不超过5个,列簇没有限制,列只有插入数据才存在,列在列簇中是有序的。eg:个人信息|教育信息|工作经历

2)不支持条件查询,列动态增加,数据自动切分,高并发读写。

启动方式:

输入:habse shell

查询表:list

查询表数据信息:(1)scan ‘表名’ (2)count ‘表名’

命令:(注意,复制可能报错,只能手打)

查看

scan ‘表名:列簇’,‘条件’

只返回前两行记录

scan ‘table_name:info’,{LIMIT =>2}

查看具体某一行

get ‘table_name:info’,‘00123_22’

模糊查找某一列数据

scan ‘table_name:info’,FILTER=>“ColumnPrefixFilter(‘td_id’) AND ValueFilter(=,‘substring:$_08_03’)”

(8) Hive(数据仓库)

Hive是建立在hadoop上的数据仓库基础架构,类似一种SQL解析引擎,它将SQL语句转成MapReduce,然后再Hadoop上执行。

1) habse是基于Haddoop实现的数据库,不支持SQL

2) hive是基于hadoop实现的数据仓库,适合海量全量数据,支持类SQL操作。

启动方式:

hive;

show tables;

select * from table_name;

quit;

命令:

创建数据文件

hadoop fs -vi /home/testdata.dat

创建库

create database test

创建表

create table test(id int,name string,age string) ROW format DELIMITED FIELDS

TERMINATED BY ‘\t’ stored as TEXTFILE;

加载数据

load data local inpath ‘/root/data/students.txt’ into table test;

删除表

drop database if exists test;

大小写转换

select lower(‘hello world’),upper(‘hello world’)

去掉前后的空格

trim

(9)pig

为大型数据集的处理提供抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构。它提供强大的数据变换,包括在MapReduce中被忽视的连接Join操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值