大数据概论

大数据技术是发现大规模数据中的规律,通过对数据的分析实现对运营层决策的支持。本质简单的说就是发现数据规律,实现商业价值。大数据技术面对的是大规模数据,不是使用Excel就可以进行数据分析的数量,而且每天还会有大批量数据的产生。

大数据定义

大数据是指无法使用现有工具提取、存储、搜索、共享、分析和处理的海量、复杂的数据集合。

大数据特征4V:数据量大Volume、类型繁多Variety、价值密度低Value、发展速度快Velocity

大数据计算模式一般可以分为批处理离线计算MapReduce、实时流计算Storm、图计算(常用于社交网络,如GraphX)和查询分析(主要针对大规模数据的存储管理和查询分析,例如Hive和Cassandra)4大类。

批处理:有界、持久、量大,计算模式为MapReduce

流式计算:对进入的数据实时计算,避免造成数据堆积和缺失,无须针对整个数据集

大数据的问题

一般网站把用户的访问行为已Apache日志形式记录下来,其中包括client_ip、user_id、access_time、url、referer、status、page_size、agent等,因为须统一对数据进行离线分析,所以常将其全局移到同一位置。

以1kw/天网站请求数,每天日志450B/行*1kw=4.2G,日志存储周期2年,2年需要3.0T

解决方案:

为方便系统查看日志,不压缩需要3T空间
为避免系统盘影响服务器使用,对系统盘左RAID1
为避免其他存放数据的盘损坏导致数据无法恢复,对剩余盘作RAID5
所有数据都汇聚到这几台LogBackup服务器。在这套架构上就可以离线统计,如wc、grep、sort等系统命令就可以完成很多统计,如统计访问频率较高的client_ip。

云计算和大数据

云计算的定义有很多,广泛接受的是美国国家标准与技术研究院所定义的,即云计算是一种按网络使用量付费的便捷模式,能进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),使资源被利用。

云计算是硬件资源的虚拟化后再分配使用,相当于计算机和操作系统,以更大限度的发挥网络的资源优势。大数据是海量数据的高效处理,相当于传统的数据库。大数据与云计算是一种不可分的、相互依存的关系。云计算作为计算资源的底层,支撑上层的大数据处理,大数据的趋势是实时交互式的查询效率和分析能力。

云计算核心是虚拟化,主要概念在于资源池化,提高资源的利用回报。若CPU利用率达到70-80%则虚拟化没有任何意义。如VMWare重点在于切分。而Hadoop可使用多个物理设备资源,重点在于聚合。

物联网是建立在互联网基础上实现的物物相连的互联网,主要有3项关键技术,即传感器技术、RFID和嵌入式系统技术。物联网是大数据(设备数据)的来源,大数据技术为物联网数据的分析提供有力的支撑,云计算为物联网提供了海量数据存储能力,大数据为云计算所产生的运营数据提供分析和决策支持。

大数据处理流程

大数据相关的技术从执行流程上可以大致分为数据收集、数据存储、资源管理、计算框架、数据分析和数据展示6个方面。

脏数据表现形式为数据缺失、数据重复、数据错误和数据不可用。数据清洗任务有填写缺失值、光滑噪声数据、删除离散点和解决属性不一致,ETL是抽取、转换和加载,大数据应用中包括ODS操作性数据、DW数据仓库、DM数据集市。

数据仓库是面向主题、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

数据抽取

数据抽取是指把ODS源数据抽取到DW中,然后处理成展示给相关人员查看的数据

源数据是用户访问日志、自定义事件日志和操作日志、业务日志、系统日志、监控日志、其它日志等

抽取频次:

如果没有特殊要求可以一天一次,但是需要避开拉去日志的高峰期
对于有实时性要求的日志,可以一小时一次或者直接使用kafka等相关工具收集,需要考虑到系统能否承受
抽取策略:

由于数据量较大,一般都是采用增量抽取,但是对于一些特殊场景的数据,比如订单数据,由于订单的状态会发生变化,并且订单的量级是可预知和相对较少的,就需要采用全量拉取的策略
对于增量拉取的日志,如果是文件类型,可以在文件名称上追加日期,例如 server_log_2018082718.log,这样就可以满足按小时拉取的需求
对于源数据的保留,考虑到突发情况,服务器上的源数据至少要保证2天以上的时间

数据转换、清洗

数据转换清洗就是把不需要的和不符合规范的数据进行处理。数据清洗最好不要放在抽取的环节进行,考虑到有时可能会查原始数据。一般各公司都会有自己的规范。

数据清洗主要包括以下几个方面:

空值处理;根据业务需要,可以将空值替换为特定的值或者直接过滤掉;
验证数据正确性;主要是把不符合​业务含义的数据做一处理,比如,把一个表示数量的字段中的字符串替换为0,把一个日期字段的非日期字符串过滤掉等等;
规范数据格式;比如,把所有的日期都格式化成yyyy-MM-dd HH:mm:ss的格式等;
​数据转码;把一个源数据中用编码表示的字段,通过关联编码表,转换成代表其真实意义的值等等;
数据标准统一;比如在源数据中表示男女的方式有很多种,在抽取的时候,直接根据模型中定义的值做转化,统一表示男女;
其他业务规则定义的数据清洗…

数据加载

数据拉取,清洗完之后,就需要展示。一般是把清洗好的数据加载到mysql中,然后在各系统中使用或者使用Tableau直接给相关人员展示

ETL相关工具

ELT相关的工具有很多,这里只列举一些常用的,而且各公司的技术原型也不一样,就需要根据实际情况来选择

数据抽取工具:kafka、flume、sync

数据清洗工具:hive/tez、pig/tez、storm、spark

其它工具

数据存储:hadoop、hbase,ES、redis
任务管理:azkaban、oozie
数据同步:datax、sqoop

ETL过程中的元数据

元数据管理系统对于数据仓库来说是必须的,并且相关人员必须定时维护,如果元数据和数据仓库中的变动不同步,那么元数据系统就形同虚设。对于元数据管理不应该是规范,应该是硬性规定。

概述Hadoop

Hadoop是Apache旗下的一个使用Java语言开发的运行在大量廉价硬件设备集群上的、可靠的、可扩展的集分布式存储和分布式计算于一体的开源软件框架,是一个分布式系统基础架构,适用于分布式存储和分布式计算平台,使得用户在不了解分布式底层细节的情况下开发分布式应用、充分利用集群的分布式能力进行计算和存储,是目前分析海量数据的首选。

Hadoop是一个易于扩展的分布式文件系统;可以运行在大量普通廉价机器上,提供容错机制;可以为大量用户提供性能不错的文件存取服务。Hadoop本身被设计为能够检测和处理应用层的错误,在计算机集群的整体层面上提供了高可用性服务。

Apache软件基金会,也就是Apache Software
Foundation简称为ASF,是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证Apache
License

Hadoop提供的功能有:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。Hadoop最核心的设计是HDFS和MapReduce,HDFS对大数据存储提供支持,MapReduce则是分布式的计算框架。基于HDFS和MapReduce,hadoop还提供了类SQL分析查询工具Hive和K-V数据库HBase以及最近活跃的内存计算引擎Spark等。

官方网址为https://hadoop.apache.org/releases.html

在这里插入图片描述

Hadoop3要求最低JDK1.8,注意不要使用太高版本的JDK,例如JDK11是有兼容问题,缺少库。

Hadoop核心功能:海量数据的存储、海量数据的计算与分析

Hadoop生态圈

现在人们在谈论Hadoop的时候已经是一个广义的概念了,泛指HADOOP生态圈

Hadoop的hdfs、MapReduce、yarn是元老级大数据处理技术框架,擅长离线数据分析

HDFS即Hadoop DistributedFile System分布式文件系统,用于解决海量数据存储的文件系统。

MapReduce分布式运算程序开发框架,用于解决海量数据计算的框架。

Hive基于大数据技术的SQL数据仓库工具,使用类SQL语言,便于未接触过大数据开发但懂SQL语句的人员快速上手。使用方便,功能丰富,基于MapReduce任务,但是延迟比较大,适用于离线的数据分析

HBase是基于Hadoop的分布式海量数据库,离线分析和在线业务通吃

ZooKeeper是分布式协调服务基础组件,为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Sqoop:数据导入导出工具。便于从原始关系型数据库导入导出数据到HDFS或者Hive中。

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。

在这里插入图片描述

Hadoop3.x中最大改变的是HDFS,HDFS通过最近block块计算,根据最近计算原则,本地block块加入到内存先计算,通过IO共享内存计算区域,最后快速形成计算结果。

HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。

多NameNode支持,即支持一个集群中,一个active、多个standby namenode部署方式。

Hadoop应用场景

Hadoop提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。一般用于1、海量数据须及时分析、处理和深入挖掘。2、长期保存海量数据。

大数据处理中的Hadoop

优点:高可靠性(多副本)、高可扩展性(HDFS线性扩展)、高效性(Map/Reduce)、高容错(多副本)、低成本(使用廉价PC组成),可以自动重新部署重启应用
缺点:版本管理混乱、部署繁琐升级复杂、兼容性差、安全性低

Hadoop优点

高容错性:数据自动保存多个副本,副本丢失后,自动恢复

适合批处理:移动计算而非数据,数据位置暴露给计算框架

适合大数据处理:GB、TB、甚至PB级数据;百万规模以上的文件数量;10K+节点规模

流式文件访问:一次性写入,多次读取;保证数据一致性

可构建在廉价机器上:通过多副本提高可靠性;提供了容错和恢复机制

Hadoop缺点

不适合低延迟数据访问:比如毫秒级;低延迟与高吞吐率

不适合小文件存取:占用NameNode大量内存;寻道时间超过读取时间

不适合并发写入、文件随机修改:一个文件只能有一个写者;仅支持append

Hadoop产生背景

Hadoop最早起源于Nutch项目。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题

2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案

分布式文件系统GFS可用于处理海量网页的存储

分布式计算框架MapReduce可用于处理海量网页的索引计算问题。

Nutch的开发人员完成了相应的开源实现HDFS和MapReduce,并从Nutch中剥离成为独立项目Hadoop,到2008年1月,Hadoop成为Apache顶级项目,迎来了它的快速发展期。

Hadoop3架构

Hadoop现在的大版本号为3,它在前版本的基础上进行了的改造,增加了新的模块,无论在功能还是性能上都有了质的提升。目前发布的版本有Alpha内部测试版、Beta对外测试版、GA官方正式发布版、Release发布版。在工程上一般是要用GA版本。

Hadoop核心构成

Hadoop框架主要包括三大核心:海量数据存储的分布式文件系统HDFS、海量数据分析的分布式计算系统MapReduce、统一的资源管理调度系统YRAN。

Hadoop的数据存储依赖于HDFS,HDFS是运行在通用硬件上的分布式文件系统,解决了海量数据的分布式存储问题,适用于大数据场景的数据存储,采用master/slave结构,提供了高可靠性(通过多副本实现)、高扩展性(添加机器线性扩展实现)和高吞吐率的数据存储服务。基本原理是将数据文件以指定大小的块拆分成数据块,并将数据以多副本的方式存储到多台普通机器上,即使某个节点出现问题也不会产生数据丢失。HDFS将数据文件的切分、容错、负载均衡等功能透明化。

MapReduce用于海量数据的分析,是一个分布式、并行处理的编程模型,解决了数据分析计算问题,用以进行批处理、非实时的大数据量的计算,大致分为切分、映射、整理和归并4大步骤,讲求移动计算而不是移动数据。它可以让编程人员在不熟悉分布式计算的情况下,将应用运行在分布式系统中,它自动将任务划分到不同的节点上运行,并对运行结果自动收集、存储和分析,大幅度减少软件开发的工作量。低版本hadoop分为JobTracker和TaskTracker两部分,后引入Yarn完全重构了,资源管理器ResourceManager管理所有应用计算资源分配,启动每个Job所属的Application Master,并监控运行状况。每个应用的Application Master负责响应调度和协调,负责job所有工作。NodeManager负责Container状态的维护,并向RM保持心跳。

YARN资源管理调度是一个对分布式应用程序提供统一的资源管理和调度的通用资源管理系统,解决了在服务器集群中资源调度分配的问题。Storm/Spark对于实时性和批处理作业,一般会搭建不同的集群,这样资源利用率不高,可放在一个集群上,在运行时遵循自己的处理逻辑,互不干预,但有资源竞争,所以引入YARN为集群提供统一的资源管理和调度,在YRAN上可以运行不同类型的作业。

另外还有HBase(建立在HDFS上的面向列的数据库,用于快速读写大量数据)、Zookeeper(分布式协调服务的框架)、Hive(编写SQL数据查询语句对大数据进行离线分析操作)、Sqoop(用于在关系数据库、数据仓库Hive和Hadoop之间的数据转移的框架)、Flume(用于分布式的海量日志的高效收集、聚合、移动传输系统的框架)等技术。

对海量数据进行分布式处理指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。

备注:本篇文章转载自蓝鸥高级讲师闫峻

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据概论是指对海量的、复杂的、高维度的数据进行收集、处理和分析的一门学科。随着信息技术的快速发展,大量的数据被产生和积累,想要从这些数据获得有价值的信息和洞察力,就需要借助大数据概论的方法和技术大数据概论主要包括以下几个方面。首先是大数据的处理和存储技术,包括分布式存储系统、并行计算框架、分布式文件系统等。这些技术可以帮助我们有效地存储和处理大规模的数据。其次是数据挖掘和机器学习的方法,通过这些方法可以从大数据发现隐藏的模式和规律,并用于预测和决策。此外,数据可视化和探索性数据分析也是大数据概论的重要内容,通过可视化技术可以将复杂的数据转化为直观的图表和可视化图像,帮助人们更好地理解和分析数据。 大数据概论在各个领域都有广泛的应用。在商业领域,大数据概论可以帮助企业分析市场趋势、预测产品需求,并进行个性化推荐和营销策略优化。在金融领域,大数据概论可以用于风险控制和反欺诈,帮助银行和保险公司降低风险和损失。在医疗领域,大数据概论可以用于疾病预测和诊断,辅助医生做出更准确的诊断和治疗方案。 总之,大数据概论是一门应用于处理和分析大数据的学科。它涵盖了数据处理和存储技术、数据挖掘和机器学习方法,以及数据可视化和探索性数据分析等方面。通过应用大数据概论的方法和技术,可以从海量的数据提取有价值的信息和知识,为各个领域带来新的机遇和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值