大数据的4v特征:
价值高(value)
体量大(volume)
种类多(variety)
速度快(velocity)
大数据的主要来源
大数据按照数据存储的形式划分
结构化数据简单来说就是数据库,如企业ERP,财务系统,医疗HIS数据库等其他核心数据库等数据。
非结构化数据包括所有格式的办公文档,图片,xml,图像,音频,视频等信息数据。
在海量的数据中,大部分是非结构化数据。
常用的大数据获取途径
系统日志采集
互联网数据采集
app移动端数据采集i
与数据服务机构进行合作
大数据的技术支持
大数据的处理方法
大数据的采集
大数据的采集通常采用多个数据库来接收终端数据,包括智能硬件端、多种传感器端、网页端、移动APP应用端等,并且可以使用数据库进行简单的处理工作。 常用的数据采集的方式主要包括以下几种:
数据抓取
数据导入
物联网传感设备自动信息获取
导入/预处理
虽然采集端本身有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些数据导入到一个集中的大型分布式数据库或者分布式存储集群当中,同时,在导入的基础上完成数据清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。 现实世界中数据大体上都是不完整、不一致的“脏”数据,无法直接进行数据挖掘,或挖掘结果差强人意,为了提高数据挖掘的质量,产生了数据预处理技术。包括:
数据清理:主要是达到数据格式标准化,异常数据清楚,数据错误纠正,重复数据清楚等目标;
数据集成:将多个数据源中的数据结合起来统一存储,建立数据仓库;
数据变换:通过平滑聚集,数据概化,规范化等方式将数据转化为用于数据挖掘的形式;
数据归约:寻找依赖于发现目标的数据的有用特征,缩减数据规模,最大限度的精简数据量。
统计与分析
大数据的挖掘
数据挖掘是创建数据挖掘模型的一组试探法和计算方法,通过对提供的数据进行分析,查找特定类型的模式和趋势,最终形成创建模型。
hadoop概述
Hadoop起源于Google的集群系统, Google的数据中心使用廉价Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。而Hadoop就是Google集群系统的一个开源实现,是一个项目总称。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;
而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
Hadoop的框架最核心的设计就是:HDFS和MapReduce以及yarn。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算,yarn则负责资源的分配和调度。
hadoop优点:
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop主要由两部分组成,分别是分布式文件系统(HDFS)和分布式计算框架(MapReduce)。
hadoop组成
其中,分布式文件系统主要用于大规模数据的分布式存储,而MapReduce 则构建在分布式文件系统之上,对存储在分布式文件系统中的数据进行分布式计算。
Hdfs和Mapreduce的关系
在Hadoop中,MapReduce底层的分布式文件系统是独立模块, Hadoop 默认使用的分布式文件系统是Hdfs,它与MapReduce 框架紧密结合。
用户也可按照约定的一套接口实现自己的分布式文件系统,然后经过简单的配置后,存储在该文件系统上的数据便可以被 MapReduce 处理,例如Spark。
核心进程
NameNode
它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问。
DataNode
它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。
SecondaryNameNode
它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。
出于对可扩展性和容错性等考虑,我们一般将SecondaryNameNode运行在一台非NameNode的机器上。
JobTracker
JobTracker负责调度 DataNode上的工作。每个 DataNode有一个TaskTracker,它们执行实际工作。
JobTracker和 TaskTracker采用主-从形式,JobTracker跨DataNode分发工作,而 TaskTracker执行任务。
JobTracker还检查请求的工作,如果一个 DataNode由于某种原因失败,JobTracker会重新调度以前的任务。
TaskTracker
TaskTracker是在网络环境中开始和跟踪任务的核心位置。与Jobtracker连接请求执行任务而后报告任务状态。