大数据定义
指的是互联网和以大规模分布式计算为代表的平台支持下被采集,存储,分析和应用的具有产生更高决策价值的巨量,高增长率和多样化的信息资产
大数据系统的技术支撑体系
- 大数据采集
- 大数据存储
- 大数据分析(数据处理与服务)
- 大数据应用
大数据领域的主要职位
- 首席数据官
- 数据科学家
- 大数据开发工程师
- 大数据运维工程师
前言
在整个IT行业,并非只有hadoop为核心的开源大数据生态系统,但是不论怎么来说,hadoop都是最成功的,我们主要是对以hadoop为核心的开源大数据生态系统及其组件技术进行学习
架构
这一概念主要来源于建筑学,通常指的是系统的整体结构与其组成部分之间的关系
在大数据的发展史中,有大量不同类型和用途的组件的产生,实现了大数据系统的4个层次中的各种功能,但是在激烈的竞争浪潮中,最终为业界和学术界认可并得到广泛应用的组件只有20多种
大数据采集技术
可以细分为数据抽取,数据清洗,数据继承,数据转换等过程
- 内部采集
1.离线数据采集技术
各大计算机公司都开发了自己的采集技术,在基于表的批量抽取软件中广泛使用的软件是sqoop
2.在线数据采集技术
主要是基于消息的采集。数据流采集等,代表性作品是kafka
- 外部采集
1.网络爬虫类
按照一定的规则,自动抓取互联网信息的程序框架,网络搜索技术已经十分成熟,但是并不对外开放技术。开源的有代表性的技术有Apache nutch,webcollector
2.开放API类
数据源提供者开放的数据采集接口,可以用来获取限定的数据,探针
结构化数据采集工具
sqoop
,主要用来在hadoop和关系数据库之间传递数据,通过sqoop可以方便的将数据从关系数据库导入hdfs,HBASE或者hive中,或者将数据从hdfs导入到关系数据库中
日志收集工具与技术
1.日志收集
开源日志手机系统flume
,是由Cloudera开发的
2.数据分发工具kafka
是Apache开发的一个开源分布式消息订阅系统
大数据存储技术
1. 相关概念
-
列存储
传统的关系型数据库都是行存储的,如同Oracle,SqlServer等都采用行存储的方式正是由于存储方式的改变,数据仓库产品的性能提高了50倍,在已知的几种大数据处理软件中,hadoop的HBASE采用的是列存储的方式
-
key-value存储
键值对存储数据库是一种nosql模型,它的数据结构本质上是一个映射 -
NoSQL数据库(not noly SQL)
常见的nosql数据库- kv数据库,Redis
- 列存储型数据库,HBASE
-
图存储数据库
基于图理论来创建的
2. 分布式存储系统
在当前的云计算领域,Google的GFS和Hadoop的hdfs是比较流行的两种云计算分布式存储系统
-
HDFS
hdfs集群是由一个master(NameNode)和多个slvae(DataNode)组成,内部文件分块,在hdfs的集群中只能有一个NameNode,但是可以设置一个备份的secondary NameNode来保证系统的可靠性和容错性 -
分布式内存文件存储
内存为王,大数据处理对速度的追求是永无止境的,内存的速度和磁盘的速度不是一个数量级,目前发展的趋势是内存的价格越来越低,内存的容量越来越大,这就使得数据存储在内存中有了可能性
,也因为此,大量基于内存的计算框架出来了,如spark
3. 数据库HBASE和数据仓库Hive
-
HBASE
全称是Hadoop database,是一个高可靠性,高性能,基于列存储方式的分布式存储系统。利用这个技术可以在廉价计算机上搭建起大规模的结构化存储集群。
HBASE集群是由主备master进程和多个regionserver进程组成- 采用hdfs作为文件系统
- 利用spark和hadoop中的MapReduce来处理数据
- 利用zookeeper作为协同服务
-
Hive
这就hdfs和MapReduce架构的数据仓库,提供了类似SQL的hiveql预览来操作结构化数据
基本原理是将hiveql语言自动转化成为MapReduce任务
分布式计算框架
-
离线计算框架
1.mapReduce
利用局部性原理进行分而治之,利用映射和规约两种函数
2.yarn资源管理
3.spark
4.flink -
实时流计算平台
1.storm
2.spark storming
数据分析平台和工具
面向大数据的数据挖掘和分析工具
-
基础分析工具
Excel -
基于机器学习的分析工具
MATLAB -
基于可视化的大数据分析工具
tableau -
基于编程的大数据分析的编程语言
R,java,Python
总结
任重道远
革命尚未成功
同志还需努力