初识大数据

355 阅读3分钟

什么是大数据?
大数据是一种规模大到在获取、存储、管理和分析方面大大超出了传统数据库软件工具能力范围的数据集合。 并且无法在一定时间范围内用常规软件工具进行捕捉、管理和处理,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的信息资产。

大数据的5V特性
海量性(volume):大数据的数据量很大,每天我们的行为都会产生大批量数据。

80年代,百万条记录就是VERY LARGE DATA
00年代,TB级别就是DATA INTENSIVE应用
10年代,100T以上,甚至PB级才能够算得上是大数据

多样性(variety)
数据种类的多样性:文字、语音、图片、视频等,不再是单一的“关系”数据了。 数据来源的多样性:同一个对象的数据来自不同的数据源 ,数据需要集成。

真实性(Veracity) 由于进入系统的数据缺乏控制,数据质量不高。

• 不完整数据(incomplete)
• 不正确数据(incorrectness)
• 不一致数据(inconsistency)
• 不精确数据(unprecision)

在使用数据之前,我们往往需要通过数据清洗来筛选出符合我们条件的数据。

时效性(velocity):大数据要求处理速度快,比如淘宝“双十一”需要实时显示交易数据。 时效性包括增长速度和处理速度。

价值性(value):大数据的数据价值隐藏在海量数据之中,往往表现为数据价值高但价值密度低的特点。t通过机器学习、统计模型以及算法深入复杂的数据分析,才能获得可对未来趋势和模式提供预测性分析的重要洞察力。

大数据平台架构
1.数据应用层,为应用提供数据服务与可视化,解决企业实际问题。
2.数据分析层,包含数据离线处理和实时处理、数据交互式分析以及机器学习与数据挖掘OLAP
3.资源管理层,为了支撑数据的处理,需要统一的资源管理与调度(YARN)。
4.数据存储层,存储是大数据的根基,持久化存储一般使用分布式存储组件(历史数据),非持久化存储会使用一些传统sql以及nosql数据库(短期数据)。
5.数据获取层,无论是数据存储还是数据处理,前提都是快速、高效地获取数据。
6.数据源层,包括互联网数据,日志数据,数据库数据等。 image.png

大数据技能树
大数据主流开发语言
大数据生态圈的绝大多数技术组件的源代码都是使用Java语言开发的,比如Zookeeper、Hadoop、Hive、HBase、Flume、Sqoop、Flink等,而且在大数据开发过程中经常涉及源代码的阅读与使用,所以Java语言是从事大数据项目开发的必备语言,也是大数据开发的主流语言。当然除了Java语言,Python语言也可以用于大数据开发工作,Python语言主要侧重业务数据的分析和挖掘。

大数据平台的构建
大数据平台一般是指Hadoop生态,Hadoop生态包含HDFS分布式文件系统和YARN资源管理系统。

大数据采集
数据采集来源
日志文件
采集工具: Flume, Logstash, Filebeat
数据库
采集工具: Sqoop, Canal

大数据存储与交换
HBase数据库
解决了海量数据存储的同时又提供了数据的实时随即查询与更新 Kafka
作为数据的中转和缓冲中心

大数据离线和实时计算
离线计算
MapReduce、Hive、Spark Core、SparkSQL、Flink DataSet
实时计算
Spark Streaming、Flink DataStream