赞
踩
Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
(1)HDFS集群:负责海量数据的存储。
(2)YARN集群:负责海量数据运算时的资源调度。
(3)MapReduce:在分布式计算框架上的可自定义设计框架,使用只需要定义其功能,而不用取考虑分布式并行计算的细节。
HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序的数据访问功能,适合大型数据集的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群中不同物理机器上。
1)HDFS的文件被分成块进行存储,默认为64M,块是文件存储处理的逻辑单元。
2)HDFS有两类节点,NameNode和DataNode
3)NameNode是管理节点,存储文件元数据。文件与数据块的映射表;数据块与数据节点的映射表。
4)DataNode是HDFS的工作节点,存储数据块。
5)每个数据块3个副本,分布在两个机架内的三个节点。
6)DataNode定期向NameNode发送心跳信息。
7)二级NameNode定期同步元数据映射文件和修改日志,作为备胎。
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 进行查看。
分而治之,一个大任务分成多个小的任务(map),并行执行后,合并结果(reduce)
快速理解:
1)用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。
2)TaskTracker对应HDFS中的DataNode。
3)JobTracker的作用:作业调度,分配任务,监控任务执行进度;监督TaskTracker的状态
4)TaskTracker的作用:执行任务,汇报任务状态。
5)mapreduce的容错机制,重复执行(4次),推测执行。
Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。同时,Flume还具备能够将日志写往各种数据目标的能力。
相关概念:
Flume逻辑上分为三层架构:agent, collector, storage
agent用于采集数据,collector用户数据汇总,storage是存储系统。
用于hadoop(hive)与传统数据库的数据传输。
Zookeeper解决分布环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。Hadoop的许多组件依赖于Zookeeper,它运行在计算集群上面,用户管理Hadoop操作。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
快速理解:
Zookeeper的核心功能,文件系统和通信机制。
1)文件系统:
每个目录都是一个znode节点;Znode节点可直接存储数据;类型,持久化。
2)通信机制:
客户端监听关心的Znode节点;znode节点有变化时,通知客户端。
3)Zookeeper的核心是原子广播,保证了各个Server之间的同步。实现这种机制的协作叫做ZAB协议。(Zookeeper Atomic BrodCast)
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’)”
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
为大型数据集的处理提供抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构。它提供强大的数据变换,包括在MapReduce中被忽视的连接Join操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。