大数据相关体系梳理:今天小伙伴突然问我大数据都学习了些神马?就有了如下的对话,我也决定为她好好解答一下疑问。so,我们今天主要是以离线数据处理的技术为主。
在这里我还是要推荐下我自己建的大数据学习交流kou裙: 957205962, 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴
1、zookeeper
大家知道大数据是对海量数据的处理,对于这种海量的存储一般就会用到分布式集群,然而分布式环境下常见的问题比如:集群管理、统一命名服务,信息配置管理,分布式锁等就需要一个技术来处理,这个技术就是zookeeperzookeeper旨在在分布式应用中,提供可靠的、可扩展的、分布式的、可配置的协调机制来管理整个集群的状态。他的特性有:数据一致性,原子性,可靠性,实时性,顺序性,过半性。
Hadoop
Hadoop的集群系统为了解决Nutch的海量数据存储和处理的需求,可以解决大数据场景下的数据存储和处理的问题。一开始MapReduceNutch的两个组件来使用,后来发现这两个组件不只是可以用在Nutch搜索,所以就单独取出来组成了HadoopMapReducehadoopyou:用于分布式文件的存储,为了保证数据存储的可靠性和读取性能,对数据进行切块后进行复制保证复本的数量并存储在集群的多个节点中。中存在一个名字节点NameNode和多个数据节点DataNodeMapReduce:用于数据的计算,:进行任务调度。是Hadoop2.0出现的。数据块(Block中存储文件的最基本的存储单位。
Flume
用于从不同的来源有效收集,聚集和移动大量的日志数据用以集中式管理的系统。用于从不同的来源有效收集,聚集和移动大量的日志数据用以集中式管理的系统。一条日志在flume中会被转换成一个格式的串来传递,这个串就是一个FlumeEventFlume Agent是一个基本的日志收集单元,由Source Channel组成。多个Agent之间还可以连接形成复杂的日志流动的网络。Source 是消耗外部传递给他的事件,外部源将数据按照Flume Source 能识别的格式将Flume事件发送给Flume Source,Channel是一个被动的存储,用来保持事件,直到由一个Flume Sink消耗。Sink代表外部数据存放位置。发送flume中的事件到指定的外部目标。
在对数据处理的时候必须会编程,必须对的底层实现有深入理解,开发调试比较麻烦,能不能用一种更加通用的简单的方式来实现对海量数据的处理,能不能用来实现对海量数据的处理 -- hive就是这样的一个工具,hadoop的基础上架设了一层操作的接口,使我们可以通过类 - hql - 语句翻译成mapreduce来处理海量数据。所以,的底层仍然是MapReduce要是做一个翻译的工作。Hive是基于Hadoop的数据仓库工具所以Hive并不是一种数据库。
HBase
Hadoop数据库工具,是一种 NoSQL非关系型数据库不符合关系型数据库的范式,适合存储非结构化的数据适合存储稀疏的数据空的数据不占用空间提供实时的增删改查的能力是一种真正的数据库产品可以存储海量数据性能非常优良可以实现上亿条记录的毫秒级别的查询但是不支持严格的事务控制只能在行级别保证事务。HBase使用表来存储数据但是表的结构和特点和传统的关系型数据库有非常大的区别。行键 - RowKey:就相当于是HBase表中的主键,HBase中的所有的表都要有行键,HBase中的所有的数据都要按照行键的字典顺序排序后存储,对HBase表中的数据的查询只有三种方式:根据指定行键查询、根据指定的行键范围查询、全表扫描查询。
在这里我还是要推荐下我自己建的大数据学习交流扣裙: 957205962, 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴
) - ColumnFamily
HBase表中垂直方向保存数据的结构,列族是HBase表的元数据的一部分,需要在定义HBase表时就指定好表具有哪些个列族,列族中可以包含一个或多个列。列 - ColumnHBase表中列族里可以包含一个或多个列,列并不是HBase表的元数据的一部分,不需要在创建表时预先定义,而是可以在后续使用表时随时为表的列族动态的增加列。单元格和时间戳 - Cell TimeStampHBase表中,水平方向的行垂直方向的列HBase中的一个存储单元,而在这个存储单元中,可以存储数据,并且可以保存数据的多个版本,这些个版本之间通过时间戳来进行区分。单元格中的数据都以二进制形式存储,没有数据类型的区别。
Phoenix
HBase是一种非关系型的数据库不满足关系型数据库的范式所以无法使用来进行操作,而PhoenixHBase基础上架构的中间件,让我们可以通过SQL/JDBCHBase。本质上就是在HBase表的基础上,增加一定的限制,稳定表的结构,加入HBase命令的机制,从而实现了类HBase。亲测不太好用,意见仅供参考。
以上就是离线数据分析的主要技术,下一期,将会为大家介绍实时数据分析技术等
网友评论